def render(self): """ This is the method to call to render the node and its child nodes. It calls self.renderNode() to render the current node. Usually, this method is unchanged in subclasses. """ if not self.is_visible: return #Also applies to subtree rooted at this node if self.transform.is_identity(): GL.glPushName(self.intname) self.renderNode() for child in self.children: child.render() GL.glPopName() else: GL.glPushMatrix() GL.glPushName(self.intname) GLUtil.glMultMatrix(self.transform) #apply the transformation self.renderNode() for child in self.children: child.render() GL.glPopName() GL.glPopMatrix() if self.item_inspector != None and self.is_selected: self.item_inspector.updateItemControls()
def render_node(self): # So I can see the box glPushMatrix() GLUtil.glMultMatrix(self.nodematrix) # Material properties of the box glMaterialfv(GL_FRONT, GL_DIFFUSE, [0.5,0.5,0.5,1.0]) glMaterialfv(GL_FRONT, GL_SPECULAR, [1.0,1.0,1.0,1.0]) glMaterialf(GL_FRONT, GL_SHININESS, 25.0) glMaterialfv(GL_FRONT, GL_AMBIENT, [1.0, 1.0, 1.0, 1.0]) # The box itself anlong with normal vectors glBegin(GL_QUADS) glNormal3f(self.xi, self.yi, self.zi + 1) glVertex3f(self.xi, self.yi, self.zi) glNormal3f(self.xf, self.yi, self.zi + 1) glVertex3f(self.xf, self.yi, self.zi) glNormal3f(self.xf, self.yf, self.zi + 1) glVertex3f(self.xf, self.yf, self.zi) glNormal3f(self.xi, self.yf, self.zi + 1) glVertex3f(self.xi, self.yf, self.zi) glNormal3f(self.xi - 1, self.yi, self.zi) glVertex3f(self.xi, self.yi, self.zi) glNormal3f(self.xi - 1, self.yi, self.zf) glVertex3f(self.xi, self.yi, self.zf) glNormal3f(self.xi - 1, self.yf, self.zf) glVertex3f(self.xi, self.yf, self.zf) glNormal3f(self.xi - 1, self.yf, self.zi) glVertex3f(self.xi, self.yf, self.zi) glNormal3f(self.xi, self.yi, self.zf - 1) glVertex3f(self.xi, self.yi, self.zf) glNormal3f(self.xi, self.yf, self.zf - 1) glVertex3f(self.xi, self.yf, self.zf) glNormal3f(self.xf, self.yf, self.zf - 1) glVertex3f(self.xf, self.yf, self.zf) glNormal3f(self.xf, self.yi, self.zf - 1) glVertex3f(self.xf, self.yi, self.zf) glNormal3f(self.xf + 1, self.yf, self.zf) glVertex3f(self.xf, self.yf, self.zf) glNormal3f(self.xf + 1, self.yf, self.zi) glVertex3f(self.xf, self.yf, self.zi) glNormal3f(self.xf + 1, self.yi, self.zi) glVertex3f(self.xf, self.yi, self.zi) glNormal3f(self.xf + 1, self.yi, self.zf) glVertex3f(self.xf, self.yi, self.zf) glNormal3f(self.xi, self.yf + 1, self.zi) glVertex3f(self.xi, self.yf, self.zi) glNormal3f(self.xi, self.yf + 1, self.zf) glVertex3f(self.xi, self.yf, self.zf) glNormal3f(self.xf, self.yf + 1, self.zf) glVertex3f(self.xf, self.yf, self.zf) glNormal3f(self.xf, self.yf + 1, self.zi) glVertex3f(self.xf, self.yf, self.zi) glNormal3f(self.xi, self.yi - 1, self.zi) glVertex3f(self.xi, self.yi, self.zi) glNormal3f(self.xi, self.yi - 1, self.zf) glVertex3f(self.xi, self.yi, self.zf) glNormal3f(self.xf, self.yi - 1, self.zf) glVertex3f(self.xf, self.yi, self.zf) glNormal3f(self.xf, self.yi - 1, self.zi) glVertex3f(self.xf, self.yi, self.zi) glEnd() glPopMatrix()