The following 135 words could not be found in the dictionary of 615 words (including 615 LocalSpellingWords) and are highlighted below:

allows   and   another   arbitrarily   assignment   be   being   between   bounding   box   but   by   call   Child   clock   comments   commutative   diagonal   different   differently   differing   draw   Drawable   drawn   driven   each   entire   fact   For   for   framebuffer   from   generalized   Get   glut   home   identical   in   independently   Init   Instances   its   just   known   Last   last   like   likely   ll   look   mark   matrices   matrix   matters   member   model   models   more   most   multiplication   must   next   Node   Nodes   nothing   Object   of   omitted   on   one   only   Open   order   origin   orthogonal   other   parameters   performs   pixels   Place   place   possible   possibly   precedence   preserved   preventing   Question   read   region   relative   relevant   repeatedly   Rotate   same   Scale   Scaling   scene   Scene   shearing   size   Size   skewing   source   store   taken   that   The   the   their   there   they   This   this   thus   Thus   to   top   Transform   transform   transformation   transformed   transforms   Translate   two   under   untransformed   us   use   used   useful   want   we   Window   would   you  

    MichaelPabst/Assignment2

Question 1

The transform omitted by STTransform but possible under a more generalized orthogonal transform is that of skewing, also known as shearing. STTransform performs its transforms in the order: 1) Translate, 2) Rotate, 3) Scale. The order matters, as matrix multiplication is only commutative for diagonal matrices. Thus, as Scaling's matrix of transformation is diagonal, we may place it arbitrarily (as is driven home by the relevant source differing from the comments in STSceneNode.cpp), but the relative precedence between Translate and Rotate must be preserved.

= Question 2 =

Instances of STSceneNode each store their member STDrawable independently from one another, thus there's nothing preventing two STSceneNodes from being used to draw the same model, possibly under different transforms (in fact, it's most likely that they'll be differently transformed, as two identical models drawn untransformed would be on top of each other, and would look like just one). This is useful as it allows us to use the same model data repeatedly in a scene.

= Question 3 =

As the first: n.PlaceObject(NULL, s);

As the last: n.PlaceObject(n.GetLastChild(), s);

= Question 4 =

The four parameters are the bounding box, in pixels, of the region of the OpenGL framebuffer you want to read: the first two mark the origin, and the next two the size. For this assignment, I'll use the entire framebuffer, thus (0, 0, 650, 650) -- the last two parameters are taken from the call to glutInitWindowSize in clock.cpp.

Recent