int TriPatchObject::Display(TimeValue t, INode* inode, ViewExp *vpt, int flags) { if ( ! vpt || ! vpt->IsAlive() ) { // why are we here DbgAssert(!_T("Invalid viewport!")); return FALSE; } Matrix3 tm; GraphicsWindow *gw = vpt->getGW(); gw->setTransform(inode->GetObjectTM(t)); UpdatePatchMesh(t); if(!MaxSDK::Graphics::IsRetainedModeEnabled()) { if(!(gw->getRndMode() & GW_BOX_MODE)) { PrepareMesh(t); Mesh& mesh = patch.GetMesh(); if(mesh.getNumVerts()) { mesh.render( gw, inode->Mtls(), (flags&USE_DAMAGE_RECT) ? &vpt->GetDammageRect() : NULL, COMP_ALL | (inode->Selected()?COMP_OBJSELECTED:0), inode->NumMtls()); } } } patch.render( gw, inode->Mtls(), (flags&USE_DAMAGE_RECT) ? &vpt->GetDammageRect() : NULL, COMP_ALL | (inode->Selected()?COMP_OBJSELECTED:0), inode->NumMtls()); return(0); }
int TriPatchObject::Display(TimeValue t, INode* inode, ViewExp *vpt, int flags) { Matrix3 tm; GraphicsWindow *gw = vpt->getGW(); gw->setTransform(inode->GetObjectTM(t)); UpdatePatchMesh(t); if(!(gw->getRndMode() & GW_BOX_MODE)) { PrepareMesh(t); Mesh& mesh = patch.GetMesh(); if(mesh.getNumVerts()) { mesh.render( gw, inode->Mtls(), (flags&USE_DAMAGE_RECT) ? &vpt->GetDammageRect() : NULL, COMP_ALL | (inode->Selected()?COMP_OBJSELECTED:0), inode->NumMtls()); } } patch.render( gw, inode->Mtls(), (flags&USE_DAMAGE_RECT) ? &vpt->GetDammageRect() : NULL, COMP_ALL | (inode->Selected()?COMP_OBJSELECTED:0), inode->NumMtls()); return(0); }