Elyg
8/31/2017 - 5:30 PM

Creates quads and then makes a cube

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