int SimpleWSMObject::Display(TimeValue t, INode* inode, ViewExp *vpt, int flags) { if ( ! vpt || ! vpt->IsAlive() ) { // why are we here DbgAssert(!_T("Invalid viewport!")); return FALSE; } if (!OKtoDisplay(t)) return 0; GraphicsWindow *gw = vpt->getGW(); Matrix3 mat = inode->GetObjectTM(t); UpdateMesh(t); gw->setTransform(mat); //mesh.render(gw, inode->Mtls(), DWORD rlim = gw->getRndLimits(); gw->setRndLimits(GW_WIREFRAME|GW_EDGES_ONLY|/*GW_BACKCULL|*/(rlim&GW_Z_BUFFER?GW_Z_BUFFER:0)); if (inode->Selected()) gw->setColor( LINE_COLOR, GetSelColor()); else if(!inode->IsFrozen()) //gw->setColor( LINE_COLOR, wsmMtl.Kd[0], wsmMtl.Kd[1], wsmMtl.Kd[2]); gw->setColor(LINE_COLOR,GetUIColor(COLOR_SPACE_WARPS)); mesh.render(gw, &wsmMtl, (flags&USE_DAMAGE_RECT) ? &vpt->GetDammageRect() : NULL, COMP_ALL); gw->setRndLimits(rlim); return(0); }
int SimpleParticle::Display(TimeValue t, INode* inode, ViewExp *vpt, int flags) { if (!OKtoDisplay(t)) return 0; Update(t,inode); GraphicsWindow *gw = vpt->getGW(); DWORD rlim = gw->getRndLimits(); // Draw emitter gw->setRndLimits(GW_WIREFRAME|GW_EDGES_ONLY|GW_BACKCULL| (rlim&GW_Z_BUFFER) ); if (inode->Selected()) gw->setColor( LINE_COLOR, GetSelColor()); else if(!inode->IsFrozen()) //gw->setColor( LINE_COLOR, particleMtl.Kd[0], particleMtl.Kd[1], particleMtl.Kd[2]); gw->setColor(LINE_COLOR,GetUIColor(COLOR_PARTICLE_EM)); if (EmitterVisible()) { gw->setTransform(inode->GetObjTMBeforeWSM(t)); mesh.render(gw, &particleMtl, (flags&USE_DAMAGE_RECT) ? &vpt->GetDammageRect() : NULL, COMP_ALL); } // Draw particles gw->setRndLimits(GW_WIREFRAME|GW_EDGES_ONLY|GW_BACKCULL| (rlim&(GW_Z_BUFFER|GW_BOX_MODE)) ); Material *mtl = gw->getMaterial(); if (!inode->Selected() && !inode->IsFrozen()) gw->setColor( LINE_COLOR, mtl->Kd[0], mtl->Kd[1], mtl->Kd[2]); gw->setTransform(ident); parts.Render(gw,GetMarkerType()); gw->setRndLimits(rlim); return(0); }
int RainParticle::Display( TimeValue t, INode* inode, ViewExp *vpt, int flags ) { if (!OKtoDisplay(t)) return 0; GraphicsWindow *gw = vpt->getGW(); DWORD rlim = gw->getRndLimits(); // Draw emitter gw->setRndLimits(GW_WIREFRAME | GW_EDGES_ONLY | (rlim & GW_Z_BUFFER) ); if (inode->Selected()) { gw->setColor( LINE_COLOR, GetSelColor()); } else if(!inode->IsFrozen()) { gw->setColor(LINE_COLOR,GetUIColor(COLOR_PARTICLE_EM)); } Material *mtl = gw->getMaterial(); if (mtl && !inode->Selected() && !inode->IsFrozen()) { gw->setColor(LINE_COLOR, mtl->Kd[0], mtl->Kd[1], mtl->Kd[2]); } gw->setTransform(inode->GetObjTMBeforeWSM(t)); mesh.render(gw, mtl, (flags & USE_DAMAGE_RECT) ? &vpt->GetDammageRect() : NULL, COMP_ALL); return 0; }
int SimpleObject::Display(TimeValue t, INode* inode, ViewExp *vpt, int flags) { if (!OKtoDisplay(t)) return 0; GraphicsWindow *gw = vpt->getGW(); Matrix3 mat = inode->GetObjectTM(t); UpdateMesh(t); gw->setTransform(mat); mesh.render(gw, inode->Mtls(), (flags&USE_DAMAGE_RECT) ? &vpt->GetDammageRect() : NULL, COMP_ALL, inode->NumMtls()); return(0); }
int SimpleObject::Display(TimeValue t, INode* inode, ViewExp *vpt, int flags) { if ( ! vpt || ! vpt->IsAlive() ) { // why are we here DbgAssert(!_T("Invalid viewport!")); return FALSE; } if (!OKtoDisplay(t)) return 0; GraphicsWindow *gw = vpt->getGW(); Matrix3 mat = inode->GetObjectTM(t); UpdateMesh(t); gw->setTransform(mat); mesh.render(gw, inode->Mtls(), (flags&USE_DAMAGE_RECT) ? &vpt->GetDammageRect() : NULL, COMP_ALL, inode->NumMtls()); return(0); }