Volume fails when assigning a group

shanefarris

01-04-2011 15:57:26

I am using 1.6, and I don't see how we can create an actor group, was that removed?

If I want to group my rigid body's by groups like vehicles, character controllers, movable shapes, etc, actor groups is the way to do it right? And use these groups to filter queries like when I'm doing ray cast tests.

I ran into trouble when assigning a group to a volume I was creating:

NxOgre::Matrix44 orien = NxOgre::Matrix44(NxOgre::Vec3(m_Package->Node->getPosition()));
NxOgre::SphereDescription sd;
sd.mRadius = m_Package->ObjEntity->getBoundingRadius() * m_Package->Scale;
sd.mGroup = Physics::VOLUME_MASK;
m_Volume = physics->GetScene()->createVolume(sd, orien, this, NxOgre::Enums::VolumeCollisionType_EnterOrExit);


This will crash on me.

Here is a stack trace:

> NxOgre.dll!NxOgre::MallocAllocator::allocateBytes(unsigned int length=124) Line 44 + 0xa bytes C++
NxOgre.dll!NxOgre::GC::safe_malloc<void,NxOgre::Allocator<NxOgre::MallocAllocator> >(unsigned int bytes=124, const char * type=0x01667340, const char * file=0x01670210, unsigned int line=64) Line 84 + 0x9 bytes C++
NxOgre.dll!NxOgre::PhysXUserAllocator::malloc(unsigned int size=1239492, NxMemoryType type=1239596) Line 64 + 0x24 bytes C++
msvcp90d.dll!_Mtxlock(_RTL_CRITICAL_SECTION * _Mtx=0x0012e9c4) Line 45 C
NxOgre.dll!NxOgre::RigidBody::_createTrigger(const NxOgre::Matrix44 & pose={...}, NxOgre::Enums::VolumeCollisionType collision_type=VolumeCollisionType_EnterOrExit, NxOgre::Scene * scene=0x029a1648, const NxOgre::ShapeDescription & shape={...}) Line 466 + 0x28 bytes C++
NxOgre.dll!NxOgre::Volume::Volume(const NxOgre::ShapeDescription & shape={...}, const NxOgre::Matrix44 & pose={...}, NxOgre::Enums::VolumeCollisionType type=VolumeCollisionType_EnterOrExit, NxOgre::Scene * scene=0x029a1648, NxOgre::Callback * callback=0x02a0cc70) Line 61 C++
NxOgre.dll!NxOgre::GC::safe_new5<NxOgre::Volume,NxOgre::ShapeDescription,NxOgre::Matrix44,enum NxOgre::Enums::VolumeCollisionType,NxOgre::Scene *,NxOgre::Callback *>(const NxOgre::ShapeDescription & v1={...}, const NxOgre::Matrix44 & v2={...}, const NxOgre::Enums::VolumeCollisionType & v3=VolumeCollisionType_EnterOrExit, NxOgre::Scene * const & v4=0x029a1648, NxOgre::Callback * const & v5=0x02a0cc70, const char * file=0x01673ff8, int line=385) Line 207 + 0x3c bytes C++
NxOgre.dll!NxOgre::Scene::createVolume(const NxOgre::ShapeDescription & shape={...}, const NxOgre::Matrix44 & pose={...}, NxOgre::Callback * callback=0x02a0cc70, NxOgre::Enums::VolumeCollisionType vct=VolumeCollisionType_EnterOrExit) Line 385 + 0x2e bytes C++



Any idea how I can use a volume to do a raycast and filter that raycast using a group?

Thanks.