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;
}