float plMaxNodeBase::RegionPriority() { TimeValue currTime = 0;//hsConverterUtils::Instance().GetTime(GetInterface()); Object *obj = EvalWorldState(currTime).obj; if( !obj ) return 0; Matrix3 l2w = GetObjectTM(currTime); if( obj->ClassID() == Class_ID(DUMMY_CLASS_ID,0) ) { DummyObject* dummy = (DummyObject*)obj; Box3 bnd = dummy->GetBox(); return BoxVolume(bnd, l2w); } if( obj->CanConvertToType(triObjectClassID) ) { TriObject *meshObj = (TriObject *)obj->ConvertToType(currTime, triObjectClassID); if( !meshObj ) return 0; Mesh& mesh = meshObj->mesh; Box3 bnd = mesh.getBoundingBox(); if( meshObj != obj ) meshObj->DeleteThis(); return BoxVolume(bnd, l2w); } // Don't know how to interpret other, it's not contained. return 0; }
int main() { std::cout<<"[3, 3, 3] : "<<BoxVolume(3, 3, 3)<<std::endl; std::cout<<"[5, 5, def] : "<<BoxVolume(5, 5)<<std::endl; std::cout<<"[7, def, def] : "<<BoxVolume(7)<<std::endl; return 0; }