// From BaseObject int TriPatchObject::HitTest(TimeValue t, INode *inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt) { HitRegion hitRegion; GraphicsWindow *gw = vpt->getGW(); Material *mtl = gw->getMaterial(); UpdatePatchMesh(t); gw->setTransform(inode->GetObjectTM(t)); MakeHitRegion(hitRegion, type, crossing, 4, p); return patch.select( gw, mtl, &hitRegion, flags & HIT_ABORTONHIT ); }
// From BaseObject int TriPatchObject::HitTest(TimeValue t, INode *inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt) { if ( ! vpt || ! vpt->IsAlive() ) { // why are we here DbgAssert(!_T("Invalid viewport!")); return FALSE; } HitRegion hitRegion; GraphicsWindow *gw = vpt->getGW(); Material *mtl = gw->getMaterial(); UpdatePatchMesh(t); gw->setTransform(inode->GetObjectTM(t)); MakeHitRegion(hitRegion, type, crossing, 4, p); return patch.select( gw, mtl, &hitRegion, flags & HIT_ABORTONHIT ); }