Run Over: DETAIL creates quads and then makes a cube
void makeQuad(vector translate; vector rotate; vector scale; matrix offTm)
{
vector size = 1.0;
matrix tm = maketransform(0,0,translate,rotate,scale);
int pt0 = addpoint(geoself(), set(size.x,0,size.z)*tm*offTm);
int pt1 = addpoint(geoself(), set(-size.x,0,size.z)*tm*offTm);
int pt2 = addpoint(geoself(), set(size.x,0,-size.z)*tm*offTm);
int pt3 = addpoint(geoself(), set(-size.x,0,-size.z)*tm*offTm);
int prim0 = addprim(geoself(), "poly");
int prim1 = addprim(geoself(), "poly");
addvertex(geoself(), prim0, pt0);
addvertex(geoself(), prim0, pt1);
addvertex(geoself(), prim0, pt2);
addvertex(geoself(), prim1, pt3);
addvertex(geoself(), prim1, pt2);
addvertex(geoself(), prim1, pt1);
}
void makeCube(float size; matrix tm)
{
vector s = size/2;
makeQuad(set(1,0,0)*s,set(0,0,90),s,tm);
makeQuad(set(-1,0,0)*s,set(0,0,90),s,tm);
makeQuad(set(0,1,0)*s,set(0,0,0),s,tm);
makeQuad(set(0,-1,0)*s,set(0,0,0),s,tm);
makeQuad(set(0,0, 1)*s,set(90,0,0),s,tm);
makeQuad(set(0,0,-1)*s,set(90,0,0),s,tm);
}
vector t = set(0,0,0);
vector r = set(0,0,0);
vector s = set(1,1,1);
matrix tm = maketransform(0,0,t,r,s);
makeCube(1, tm);