Gradnja primitivov je tesno povezano z vnosom podatkov, ker se funkcije klièejo neposredno (za izgradnjo predstavitve z mejami za kocko se poklièe funkcija, ki to naredi). Potek gradnje primitiva ka¾e slika 6.4. Za vsak primitiv sem v modelirniku napisal dve funkciji in sicer:
Slika 6.4: Potek izgradnje primitiva
Izgradnja primitiva je sestavljeno iz treh korakov:
Izgradnjo kocke kot primitiva ka¾e naslednji del programske kode, vzet iz programske kode modelirnika.
/*\ *------------------------------------------------------------------------- * FUNCTION: CreateCube *------------------------------------------------------------------------- * DESCRITPION: * Function creates new solid primitive - cube with given name and material * * RETURN VALUE: * Id number of created cube *------------------------------------------------------------------------- * CALLS FUNCTIONS: * CreateNewObject(), CreateSolid(), CubeBrep() *------------------------------------------------------------------------- \*/ int CreateCube( char *name, char *material, double x, double y, double z, double a ) { int ID; CSG *cube; /* create new node in CSG tree */ cube = CreateNewObject(); /* create new solid in list of solids */ ID = CreateSolid( cube, name, material ); /* create Brep of cube */ CubeBrep( cube->solid->brep, x, y, z, a ); return ID; }