void Transform_Object (ObjectPtr Object, const TRANSFORM *Trans) { if (Object == NULL) return; for(vector<ObjectPtr>::iterator Sib = Object->Bound.begin(); Sib != Object->Bound.end(); Sib++) { Transform_Object(*Sib, Trans); } if (Object->Clip != Object->Bound) { for(vector<ObjectPtr>::iterator Sib = Object->Clip.begin(); Sib != Object->Clip.end(); Sib++) { Transform_Object(*Sib, Trans); } } /* NK 1998 added if */ if (!Test_Flag(Object, UV_FLAG)) { Transform_Textures(Object->Texture, Trans); Transform_Textures(Object->Interior_Texture, Trans); } if(Object->interior != NULL) Object->interior->Transform(Trans); Object->Transform(Trans); }
void Transform_Object (OBJECT *Object, TRANSFORM *Trans) { OBJECT *Sib; if (Object == NULL) { return; } for (Sib = Object->Bound; Sib != NULL; Sib = Sib->Sibling) { Transform_Object(Sib, Trans); } if (Object->Clip != Object->Bound) { for (Sib = Object->Clip; Sib != NULL; Sib = Sib->Sibling) { Transform_Object(Sib, Trans); } } /* NK 1998 added if */ if (!Test_Flag(Object, UV_FLAG)) { Transform_Textures(Object->Texture, Trans); Transform_Textures(Object->Interior_Texture, Trans); } if (Object->UV_Trans == NULL) Object->UV_Trans = Create_Transform(); Compose_Transforms(Object->UV_Trans, Trans); Transform_Interior(Object->Interior, Trans); Transform(Object,Trans); }
void LightSource::Transform(const TRANSFORM *tr) { DBL len; MTransPoint(Center, Center, tr); MTransPoint(Points_At, Points_At, tr); MTransDirection(Axis1, Axis1, tr); MTransDirection(Axis2, Axis2, tr); MTransDirection(Direction, Direction, tr); /* Make sure direction has unit length. */ len = Direction.length(); if(len > EPSILON) Direction /= len; if(!children.empty()) Transform_Object(children[0], tr); if(Projected_Through_Object != NULL) Transform_Object(Projected_Through_Object, tr); }