Duke Wiki  logo
Skip to end of metadata
Go to start of metadata


TCube>>initBounds
 boundSphere  := TBoundSphere  localPosition:  location radius:  (extent length)/2.

boundSphere  frame:  self.



The boundSphere is constructed using the TBoundSphere class with arguments of location - the same location described above - an the radius of the resulting sphere, which in this case will be the same as from the center of the box to any one of the corners. Finally, we set: boundSphere frame: self to have the new boundSphere point back to the original TFrame object.

5. We set the changed variable to be true to indicate that we have modified the shape of the TCube.

6. Finally, we send: self update to construct the structure of the TCube to prepare it to be rendered. The #update method, though somewhat long, does nothing more than constructs the vertices, faces, normals and texture coordinates required to render the new TCube.

TCube>>#update




  dx dy  dz x y  z



dx  := extent x/2.0. dy  := extent y/2.0. dz  := extent z/2.0. x := location  x.

y  := location y. z  :=  location z.
 
vertices := Vector3Array  new:  8.

vertices at:  1  put:  (Vector3 x:  x+(dx negated)  y: y+(dy negated)  z: z+dz).

vertices at:  2  put:  (Vector3 x:  x+dx y:  y+(dy  negated)  z: z+dz).
 
vertices at:  3  put:  (Vector3 x:  x+dx y:  y+ dy  z: z+dz).

vertices at:  4  put:  (Vector3 x:  x+(dx negated)  y: y+dy  z: z+dz).

dz  := dz negated.

vertices at:  5  put:  (Vector3 x:  x+(dx negated)  y: y+(dy negated)  z: z+dz).

vertices at:  6  put:  (Vector3 x:  x+dx y:  y+(dy  negated)  z: z+



  • No labels