void SceneNode::Render() { glPushMatrix(); glTranslatef(Translation.X,Translation.Y,0.0f); glRotatef(Rotation,0.0f,0.0f,1.0f); if (!PropagateScaling) { glPushMatrix(); glScalef(Scale.X,Scale.Y,1.0f); BeginRealization(); glPopMatrix(); } else { glScalef(Scale.X,Scale.Y,1.0f); BeginRealization(); } for (unsigned int i=0;i<ChildrenCount();i++) (*this)[i]->Render(); EndRealization(); glPopMatrix(); }
SceneNode::~SceneNode(void) { printf("Delete SceneNode\n"); for (unsigned int i=0;i<ChildrenCount();i++) delete (*this)[i]; }
void GraphItem::InsertChild(GraphItem *child, int32 pos) { DVASSERT(child && "child can't be NULL."); DVASSERT((0 <= pos && pos < ChildrenCount()) && "Wrong position of insertion"); Vector<GraphItem *>::iterator it = children.begin(); std::advance(it, pos); children.insert(it, child); }
void GraphItem::RemoveChild(int32 row) { DVASSERT((0 <= row) && (row < ChildrenCount()) && "Wrong index"); SafeRelease(children[row]); Vector<GraphItem *>::iterator rowIt = children.begin(); std::advance(rowIt, row); children.erase(rowIt); }