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