8#ifndef _GDSPARSER_GDSWRITER_H
9#define _GDSPARSER_GDSWRITER_H
111 void write_boundary(
int layer,
int datatype, std::vector<int>
const& vx, std::vector<int>
const& vy,
bool has_last =
true);
116 void write_box(
int layer,
int datatype,
int xl,
int yl,
int xh,
int yh);
122 void create_lib(
const char* libname,
double dbu_uu,
double dbu_m);
132 void gds_bindump(
BYTE x );
134 void gds_write_float(
double x );
215 void gds_write_xy(
const int *x,
const int *y,
int n,
bool has_last =
true);
mathematical utilities such as abs
Check string is integer, floating point, number... Convert string to upper/lower cases.
namespace for Limbo.GdsParser
int BOOL
use integer as bool
unsigned char BYTE
use unsigned char as byte
void gds_create_text(const char *str, int x, int y, int layer, int size)
wrapper to create text
void gds_write_bgnextn(int bgnextn)
write BGNEXTN
void gds_write_layer(short int layer)
write LAYER
void gds_write_libname(const char *name)
write LIBNAME
void gds_swap2bytes(BYTE *two)
swap bytes
void gds_write_angle(double angle)
write ANGLE
void gds_write_texttype(short int dt)
write TEXTTYPE
void gds_write_units(double dbu_uu, double dbu_m)
write UNITS
void gds_write_strans(BOOL reflect, BOOL abs_angle, BOOL abs_mag)
write STRANS
void gds_write_width(int width)
write WIDTH
void gds_write_endextn(int endextn)
write ENDEXTN
void gds_write_bgnstr()
write BGNSTR
void gds_write_colrow(int ncols, int nrows)
write COLROW
void gds_write_endlib()
write ENDLIB
void gds_create_lib(const char *libname, double dbu_um)
create library with name and unit
void gds_write_sname(const char *s)
write SNAME
std::size_t m_size
output buffer size
void gds_write_generations(short int gens)
write GENERATIONS
GdsStream * m_os
output stream
void gds_write_bgnlib()
write BGNLIB
void gds_write_strname(const char *name)
write STRNAME
void gds_write_box()
write BOX
void gds_write_datatype(short int dt)
write DATATYPE
void gds_write_string(const char *s)
write STRING
void create_lib(const char *libname, double dbu_uu, double dbu_m)
create GDSII library
void gds_write_endstr()
write ENDSTR
int gds_write(const char *b, std::size_t n)
void gds_swap4bytes(BYTE *four)
swap bytes
BYTE gdsswap
moved from global variables
std::size_t m_capacity
output buffer capacity
void write_box(int layer, int datatype, int xl, int yl, int xh, int yh)
write a box object
void gds_write_text()
write TEXT
void write_boundary(int layer, int datatype, std::vector< int > const &vx, std::vector< int > const &vy, bool has_last=true)
write a boundary object
void gds_write_boxtype(short int dt)
write BOXTYPE
void gds_write_aref()
write AREF
char * gds_adjust_string(const char *input, int *output_length)
char * m_buffer
output buffer
void gds_write_sref()
write SREF
void gds_flush()
flush all contents in the buffer
void gds_write_path()
write PATH
void gds_write_endel()
write ENDEL
void gds_write_pathtype(short int pt)
write PATHTYPE
GdsWriter(const char *filename)
constructor
short gdsword
move from global variables
void gds_write_presentation(int font, int vp, int hp)
write PRESENTATION
void gds_write_header()
write HEADER
void gds_write_xy(const int *x, const int *y, int n, bool has_last=true)
write XY
void gds_write_boundary()
write BOUNDARY
void gds_write_mag(double mag)
write MAG
struct gds_itemtype * item
struct gds_celltype * nextcell
struct gds_itemtype * nextitem