IrrPhysx 0.2 - Nvidia Physx 2.8.1 wrapper

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
rootroot1
Posts: 44
Joined: Wed Nov 25, 2009 6:42 pm
Location: Odessa, Ukraine

Post by rootroot1 »

Hello to ALL !!!!!!!!!!!

Here is my FluidEmitterSceneNode class/
Maybe it will be usefull for someone

I'm not sio2, I can share :lol:

Code: Select all

#define MAX_PARTICLES 10000 
class CFluidEmitterSceneNode : public scene::ISceneNode 
{ 
private: 

   MyFluid         *m_fluid; 
   NxFluidEmitter   *m_emitter; 
   SMeshBuffer      *Buffer; 
   NxReal         m_particleSize; 


public: 
   CFluidEmitterSceneNode(f32 size, Physx* physx, 
      ISceneNode* parent, ISceneManager* mgr, s32 id): 
      ISceneNode(parent, mgr, id), m_particleSize(size) 
   { 
      // 
      //create particles mesh buffer 
      // 
      Buffer = new SMeshBuffer(); 

      // 
      //setup fluid descriptor 
      // 
      NxFluidDesc fluidDesc; 
      fluidDesc.maxParticles                  = MAX_PARTICLES; 
      fluidDesc.kernelRadiusMultiplier      = 2.0f; 
      fluidDesc.restParticlesPerMeter         = 7.0f; 
      fluidDesc.motionLimitMultiplier         = 3.0f; 
      fluidDesc.packetSizeMultiplier         = 8; 
      fluidDesc.collisionDistanceMultiplier   = 0.1; 
      fluidDesc.stiffness                  = 50.0f; 
      fluidDesc.viscosity                  = 40.0f; 
      fluidDesc.restDensity               = 1000.0f; 
      fluidDesc.damping                  = 0.0f; 
      fluidDesc.restitutionForStaticShapes   = 0.2f; 
      fluidDesc.dynamicFrictionForStaticShapes= 0.05f; 
      fluidDesc.simulationMethod            = NX_F_SPH; 
      if (!physx->isHardware()) 
         fluidDesc.flags &= ~NX_FF_HARDWARE; 

      //Create user fluid. 
      //- create NxFluid in NxScene 
      //- setup the buffers to read from data from the SDK 
      //- set NxFluid::userData field to MyFluid instance 
      bool trackUserData = false; 
      bool provideCollisionNormals = false; 
      m_fluid = new MyFluid 
      ( 
         physx->getPhysxScene(), 
         fluidDesc, trackUserData, 
         provideCollisionNormals, 
         NxVec3(0.4f,0.5f,0.9f), 
         m_particleSize 
      ); 
      assert(m_fluid); 
       
      // 
      //create emitter object 
      // 
      PhysXNode * frameActor = physx->addBoxNode(vector3df(), vector3df(40,40,40)); 

      //fill emitter description 
      NxFluidEmitterDesc emitterDesc; 
      emitterDesc.maxParticles = 0; 
      emitterDesc.randomAngle = 0.001f; 
      emitterDesc.randomPos = NxVec3(0.0f,0.0f,0.0f); 
      emitterDesc.dimensionX = 0.3f; 
      emitterDesc.dimensionY = 0.3f; 
      emitterDesc.type = NX_FE_CONSTANT_FLOW_RATE; 
      //The rate has no effect with type NX_FE_CONSTANT_PRESSURE 
      emitterDesc.rate = 300.0f; 
      emitterDesc.fluidVelocityMagnitude = 100.0f; 
      emitterDesc.particleLifetime = 5.0f; 
      emitterDesc.shape = NX_FE_RECTANGULAR; 

      //attach to actor 
      emitterDesc.flags |= NX_FEF_ADD_BODY_VELOCITY; 
      emitterDesc.repulsionCoefficient = 0.02f; 

      emitterDesc.relPose.M.id(); 
      emitterDesc.relPose.M.rotX(-NxHalfPiF32); 
      emitterDesc.relPose.t = NxVec3(0,20.1f,0); 

      emitterDesc.frameShape = frameActor->GetActor()->getShapes()[0]; 
      m_emitter = m_fluid->getNxFluid()->createEmitter(emitterDesc); 
    
      setAutomaticCulling(EAC_OFF); 
    
   } 

   unsigned getNbParticles() 
   { 
      return m_fluid->getParticlesNum(); 
   } 

   void reallocateBuffers() 
   { 
      IVideoDriver* driver = SceneManager->getVideoDriver(); 

      if (m_fluid->mParticleBufferNum * 4 > Buffer->getVertexCount() || 
         m_fluid->mParticleBufferNum * 6 > Buffer->getIndexCount()) 
      { 
         u32 oldSize = Buffer->getVertexCount(); 
         Buffer->Vertices.set_used(m_fluid->mParticleBufferNum * 4); 

         u32 i; 

         //SColor clr = SColor(255,255,255,255); // ARGB 
         SColor clr = SColor(0,0,0,0); 

         // fill remaining vertices 
         for (i=oldSize; i<Buffer->Vertices.size(); i+=4) 
         { 
            Buffer->Vertices[0+i].TCoords.set(0.0f, 0.0f); 
            Buffer->Vertices[0+i].Color = clr; 
            Buffer->Vertices[1+i].TCoords.set(0.0f, 1.0f); 
            Buffer->Vertices[0+i].Color = clr; 
            Buffer->Vertices[2+i].TCoords.set(1.0f, 1.0f); 
            Buffer->Vertices[0+i].Color = clr; 
            Buffer->Vertices[3+i].TCoords.set(1.0f, 0.0f); 
            Buffer->Vertices[0+i].Color = clr; 
         } 

         // fill remaining indices 
         u32 oldIdxSize = Buffer->getIndexCount(); 
         u32 oldvertices = oldSize; 
         Buffer->Indices.set_used(m_fluid->mParticleBufferNum * 6); 

         for (i=oldIdxSize; i<Buffer->Indices.size(); i+=6) 
         { 
            Buffer->Indices[0+i] = (u16)0+oldvertices; 
            Buffer->Indices[1+i] = (u16)2+oldvertices; 
            Buffer->Indices[2+i] = (u16)1+oldvertices; 
            Buffer->Indices[3+i] = (u16)0+oldvertices; 
            Buffer->Indices[4+i] = (u16)3+oldvertices; 
            Buffer->Indices[5+i] = (u16)2+oldvertices; 
            oldvertices += 4; 
         } 
      } 
    
      Buffer->Material.Wireframe = false; 
      Buffer->Material.Lighting = false; 
      Buffer->Material.setTexture(0, driver->getTexture("billboard_texture_alpha_green.tga")); 
      Buffer->Material.MaterialType = EMT_TRANSPARENT_ALPHA_CHANNEL; 
      //Buffer->Material.MaterialType = EMT_TRANSPARENT_ADD_COLOR; 
   } 

   virtual void OnRegisterSceneNode() 
   { 
      if (IsVisible) 
         SceneManager->registerNodeForRendering(this); 

      ISceneNode::OnRegisterSceneNode(); 
   } 

   virtual void render() 
   { 
      IVideoDriver* driver = SceneManager->getVideoDriver(); 
      ICameraSceneNode* camera = SceneManager->getActiveCamera(); 

      if (!driver || !camera) 
         return; 
    
      const matrix4 &m = camera->getViewFrustum()->getTransform( ETS_VIEW ); 
      const vector3df view ( -m[2], -m[6] , -m[10] ); 

      f32 f; 

      f = 0.5f * m_particleSize * 0.5; 
      const vector3df horizontal ( m[0] * f, m[4] * f, m[8] * f ); 

      f = -0.5f * m_particleSize * 0.5; 
      const vector3df vertical ( m[1] * f, m[5] * f, m[9] * f ); 

      reallocateBuffers(); 

      // create particle vertex data 
      s32 idx = 0; 
      for (u32 i=0; i<m_fluid->mParticleBufferNum; ++i) 
      { 
         ParticleSDK& particle = m_fluid->mParticleBuffer[i]; 

         Buffer->Vertices[0+idx].Pos = vector3df(particle.position.x, particle.position.y, particle.position.z) + horizontal + vertical; 
         Buffer->Vertices[0+idx].Normal = view; 

         Buffer->Vertices[1+idx].Pos = vector3df(particle.position.x, particle.position.y, particle.position.z) + horizontal - vertical; 
         Buffer->Vertices[1+idx].Normal = view; 

         Buffer->Vertices[2+idx].Pos = vector3df(particle.position.x, particle.position.y, particle.position.z) - horizontal - vertical; 
         Buffer->Vertices[2+idx].Normal = view; 

         Buffer->Vertices[3+idx].Pos = vector3df(particle.position.x, particle.position.y, particle.position.z) - horizontal + vertical; 
         Buffer->Vertices[3+idx].Normal = view; 

         idx +=4; 
      } 

      matrix4 mat; 
      driver->setTransform(ETS_WORLD, mat); 
      driver->setMaterial(Buffer->Material); 

      driver->drawVertexPrimitiveList(Buffer->getVertices(), m_fluid->mParticleBufferNum*4, 
         Buffer->getIndices(), m_fluid->mParticleBufferNum*2, EVT_STANDARD, EPT_TRIANGLES);//EIT_32BIT 

   } 

   virtual const aabbox3d<f32>& getBoundingBox() const 
   { 
      return Buffer->getBoundingBox(); 
       
   } 

   virtual u32 getMaterialCount() const 
   { 
      return 1; 
   } 

   virtual SMaterial& getMaterial(u32 i) 
   { 
      return Buffer->getMaterial(); 
   }    
};  
grumpymonkey
Posts: 222
Joined: Mon Jan 19, 2009 10:03 pm
Location: Miami, Florida
Contact:

Post by grumpymonkey »

JP wrote:In the IrrPhysx Game Example i did a very simple character controller made from a sphere which worked roughly ok so you might want to look at that. The next version of IrrPhysx will have character controllers in it (dread to think how long i've been saying that for...) but i'm not sure when that release will make it out... we've got some nasty bugs and little time to work on them :(
Damn, the game example doesnt work for me >.<
After I try to run it I get an error..its one of the things thats kept me away from irrphysx

You should make it so that the user can get the NxActor and all that good stuff from IPhysxObject, that way we can make our own character controllers and a bunch of other stuff without using the source
Image
rootroot1
Posts: 44
Joined: Wed Nov 25, 2009 6:42 pm
Location: Odessa, Ukraine

Post by rootroot1 »

Just add this method by your own

Look:

Code: Select all

virtual NxActor* getActor() = 0; //to IPhysxObject.h

inline NxActor* getActor() { return Actor; } //to CPhysxObject.h
It's very simple :wink:

Currently I made my own flexible PhysX wrapper for DirectX 10 with activetransforms and paging, with methods to get all needed pointers at runtime. I'm not using Irrlicht now, but I like this forum,... It's just for fun
afecelis
Admin
Posts: 3075
Joined: Sun Feb 22, 2004 10:44 pm
Location: Colombia
Contact:

Post by afecelis »

@rootroot1: We've received some complaints about the code you're using not being fully yours but based on someone else's work. If such is the case we appreciate you offer the proper credits, as it's usual in these open-sourced projects.

regards,
Alvaro
Image
rootroot1
Posts: 44
Joined: Wed Nov 25, 2009 6:42 pm
Location: Odessa, Ukraine

Post by rootroot1 »

I'm using only Class from Irrlicht sources like someone else,
I'm using this code only for introductory purposes/

Thank's to Irrlicht team.

I will not using Irrlicht any more, because I've created my own little DX10 engine with my own PhysX wrapper.....
ilovechocolat
Posts: 2
Joined: Sun Mar 28, 2010 10:34 pm

Post by ilovechocolat »

Hello !

First, sorry if there are some gramaticals error in my post, i'm a french collegian so i dont speak english very well (thanks google translation) .

I work on Linux (last version of Kubuntu), i tried to compile IrrPhysx on Linux with a makefile, but i have some error . Because i never used Physx (i don't found any tutorial in french), i dont understand the errors .

Here, is my Makefile :

Code: Select all

#--------------------------------------------------------------
# Makefile generated with cmak version 0.9.6 (4/2006).
# Date: 6/7/2010 16:3:45
#--------------------------------------------------------------

PREFIX  = /usr/local
CFLAGS  = -l"usr/local/lib/libIrrlicht.a" -I"usr/include"
LDFLAGS = 

CC = g++
RM = rm -f
INSTALL_PROG = install -m 755 -s

EXE = IrrPhysx.a

OBJS = CBufferSceneNode.o CCloth.o CClothPhysxMesh.o CClothPhysxObject.o CConvexPhysxMesh.o CDebugRenderer.o Cooking.o CPhysxManager.o CPhysxMesh.o CPhysxObject.o CTrianglePhysxMesh.o IrrPhysx.o MathConversion.o Streams.o

ALL : $(EXE)

CBufferSceneNode.o : CBufferSceneNode.cpp
	$(CC) -c CBufferSceneNode.cpp $(CFLAGS) -o CBufferSceneNode.o

CCloth.o : CCloth.cpp
	$(CC) -c CCloth.cpp $(CFLAGS) -o CCloth.o

CClothPhysxMesh.o : CClothPhysxMesh.cpp
	$(CC) -c CClothPhysxMesh.cpp $(CFLAGS) -o CClothPhysxMesh.o

CClothPhysxObject.o : CClothPhysxObject.cpp
	$(CC) -c CClothPhysxObject.cpp $(CFLAGS) -o CClothPhysxObject.o

CConvexPhysxMesh.o : CConvexPhysxMesh.cpp
	$(CC) -c CConvexPhysxMesh.cpp $(CFLAGS) -o CConvexPhysxMesh.o

CDebugRenderer.o : CDebugRenderer.cpp
	$(CC) -c CDebugRenderer.cpp $(CFLAGS) -o CDebugRenderer.o

Cooking.o : Cooking.cpp
	$(CC) -c Cooking.cpp $(CFLAGS) -o Cooking.o

CPhysxManager.o : CPhysxManager.cpp
	$(CC) -c CPhysxManager.cpp $(CFLAGS) -o CPhysxManager.o

CPhysxMesh.o : CPhysxMesh.cpp
	$(CC) -c CPhysxMesh.cpp $(CFLAGS) -o CPhysxMesh.o

CPhysxObject.o : CPhysxObject.cpp
	$(CC) -c CPhysxObject.cpp $(CFLAGS) -o CPhysxObject.o

CTrianglePhysxMesh.o : CTrianglePhysxMesh.cpp
	$(CC) -c CTrianglePhysxMesh.cpp $(CFLAGS) -o CTrianglePhysxMesh.o

IrrPhysx.o : IrrPhysx.cpp
	$(CC) -c IrrPhysx.cpp $(CFLAGS) -o IrrPhysx.o

MathConversion.o : MathConversion.cpp
	$(CC) -c MathConversion.cpp $(CFLAGS) -o MathConversion.o

Streams.o : Streams.cpp
	$(CC) -c Streams.cpp $(CFLAGS) -o Streams.o

$(EXE) : $(OBJS)
	ar -q $(EXE)  $(OBJS)

install : $(EXE)
	$(INSTALL_PROG) $(EXE) $(PREFIX)/bin

uninstall :
	$(RM) $(PREFIX)/bin/$(EXE)

clean :
	$(RM) $(OBJS) $(EXE)
And this is the errors (i give you only a part because there is a lot but the errors are same) :

Code: Select all

g++ -c CCloth.cpp -l"usr/local/lib/libIrrlicht.a" -I"usr/include" -o CCloth.o
In file included from /usr/local/include/NxFoundation.h:19,
                 from /usr/local/include/NxPhysics.h:21,
                 from CPhysxMesh.h:5,
                 from CClothPhysxMesh.h:4,
                 from CCloth.h:5,
                 from CCloth.cpp:3:
/usr/local/include/Nx.h:34:4: error: #error custom definition of NX_CALL_CONV for your OS needed!
/usr/local/include/Nx.h:61:3: error: #error PhysX SDK: Platforms pointer size ambiguous. Please define NX32 or Nx64 in the compiler settings!
In file included from /usr/local/include/Nx.h:246,
                 from /usr/local/include/NxFoundation.h:19,
                 from /usr/local/include/NxPhysics.h:21,
                 from CPhysxMesh.h:5,
                 from CClothPhysxMesh.h:4,
                 from CCloth.h:5,
                 from CCloth.cpp:3:
/usr/local/include/NxSimpleTypes.h:89:3: error: #error Unknown platform!
In file included from /usr/local/include/Nx.h:246,
                 from /usr/local/include/NxFoundation.h:19,
                 from /usr/local/include/NxPhysics.h:21,
                 from CPhysxMesh.h:5,
                 from CClothPhysxMesh.h:4,
                 from CCloth.h:5,
                 from CCloth.cpp:3:
/usr/local/include/NxSimpleTypes.h:94: error: ‘NxU32’ does not name a type
/usr/local/include/NxSimpleTypes.h:95: error: ‘NxF32’ does not name a type
/usr/local/include/NxSimpleTypes.h:103: error: ‘NxI8’ was not declared in this scope
/usr/local/include/NxSimpleTypes.h:104: error: ‘NxU8’ was not declared in this scope
/usr/local/include/NxSimpleTypes.h:105: error: ‘NxI16’ was not declared in this scope
/usr/local/include/NxSimpleTypes.h:106: error: ‘NxU16’ was not declared in this scope
/usr/local/include/NxSimpleTypes.h:107: error: ‘NxI32’ was not declared in this scope
/usr/local/include/NxSimpleTypes.h:108: error: ‘NxU32’ was not declared in this scope
/usr/local/include/NxSimpleTypes.h:109: error: ‘NxI64’ was not declared in this scope
/usr/local/include/NxSimpleTypes.h:110: error: ‘NxU64’ was not declared in this scope
In file included from /usr/local/include/NxFoundationSDK.h:14,
                 from /usr/local/include/NxFoundation.h:22,
                 from /usr/local/include/NxPhysics.h:21,
                 from CPhysxMesh.h:5,
                 from CClothPhysxMesh.h:4,
                 from CCloth.h:5,
                 from CCloth.cpp:3:
/usr/local/include/Nxf.h:20: error: ‘NxF32’ does not name a type
In file included from /usr/local/include/NxFoundation.h:22,
                 from /usr/local/include/NxPhysics.h:21,
                 from CPhysxMesh.h:5,
                 from CClothPhysxMesh.h:4,
                 from CCloth.h:5,
                 from CCloth.cpp:3:
/usr/local/include/NxFoundationSDK.h:92: error: ‘NxU32’ has not been declared
In file included from /usr/local/include/NxFoundation.h:23,
                 from /usr/local/include/NxPhysics.h:21,
                 from CPhysxMesh.h:5,
                 from CClothPhysxMesh.h:4,
                 from CCloth.h:5,
                 from CCloth.cpp:3:
/usr/local/include/NxArray.h: In member function ‘bool NxArray<ElemType, AllocType>::deleteEntry(const ElemType&)’:
/usr/local/include/NxArray.h:295: error: ‘NxU32’ was not declared in this scope
/usr/local/include/NxArray.h:295: error: expected ‘;’ before ‘s’
/usr/local/include/NxArray.h:296: error: expected ‘;’ before ‘i’
/usr/local/include/NxArray.h:296: error: ‘i’ was not declared in this scope
/usr/local/include/NxArray.h:296: error: ‘s’ was not declared in this scope
In file included from /usr/local/include/NxFoundation.h:24,
                 from /usr/local/include/NxPhysics.h:21,
                 from CPhysxMesh.h:5,
                 from CClothPhysxMesh.h:4,
                 from CCloth.h:5,
                 from CCloth.cpp:3:
/usr/local/include/NxBitField.h: At global scope:
/usr/local/include/NxBitField.h:29: error: ‘NxU32’ does not name a type
In file included from /usr/local/include/NxFoundation.h:24,
                 from /usr/local/include/NxPhysics.h:21,
                 from CPhysxMesh.h:5,
                 from CClothPhysxMesh.h:4,
                 from CCloth.h:5,
                 from CCloth.cpp:3:
/usr/local/include/NxBitField.h:31: error: ‘NxU32’ does not name a type
/usr/local/include/NxBitField.h:32: error: ‘NxU32’ does not name a type
/usr/local/include/NxBitField.h:33: error: ‘NxU32’ does not name a type
/usr/local/include/NxBitField.h:34: error: ‘NxU32’ does not name a type
/usr/local/include/NxBitField.h:42: error: ‘NxU32’ has not been declared
/usr/local/include/NxBitField.h:43: error: declaration of ‘operator=’ as non-function
/usr/local/include/NxBitField.h:43: error: expected ‘;’ before ‘(’ token
/usr/local/include/NxBitField.h:48: error: expected ‘;’ before ‘inline’
/usr/local/include/NxBitField.h:48: error: expected type-specifier before ‘Flag’
/usr/local/include/NxBitField.h:55: error: ‘NxU32’ does not name a type
/usr/local/include/NxBitField.h:63: error: field ‘IntType’ has incomplete type
/usr/local/include/NxBitField.h:65: error: expected type-specifier before ‘IntType’
/usr/local/include/NxBitField.h:68: error: declaration of ‘operator=’ as non-function
/usr/local/include/NxBitField.h:68: error: expected ‘;’ before ‘(’ token
/usr/local/include/NxBitField.h:71: error: ‘NxU32’ has not been declared
/usr/local/include/NxBitField.h:71: error: ‘Flag’ has not been declared
/usr/local/include/NxBitField.h:72: error: ‘NxU32’ has not been declared
/usr/local/include/NxBitField.h:73: error: ‘NxU32’ has not been declared
/usr/local/include/NxBitField.h:74: error: ‘Flag’ does not name a type
/usr/local/include/NxBitField.h:78: error: ‘Mask’ has not been declared
/usr/local/include/NxBitField.h:78: error: ‘Flag’ has not been declared
/usr/local/include/NxBitField.h:79: error: ‘Mask’ has not been declared
/usr/local/include/NxBitField.h:80: error: ‘Mask’ has not been declared
/usr/local/include/NxBitField.h:82: error: ‘Mask’ has not been declared
/usr/local/include/NxBitField.h:96: error: ‘Field’ does not name a type
/usr/local/include/NxBitField.h:97: error: ‘Shift’ has not been declared
/usr/local/include/NxBitField.h:97: error: ‘Mask’ has not been declared
/usr/local/include/NxBitField.h:97: error: ‘Field’ has not been declared
/usr/local/include/NxBitField.h:98: error: ‘Mask’ has not been declared
/usr/local/include/NxBitField.h:101: error: ‘NxU32’ has not been declared
/usr/local/include/NxBitField.h:104: error: ‘Mask’ does not name a type
/usr/local/include/NxBitField.h:105: error: ‘Shift’ does not name a type
/usr/local/include/NxBitField.h:108: error: ‘IntType’ does not name a type
/usr/local/include/NxBitField.h: In constructor ‘NxBitField::FlagRef::FlagRef(NxBitField&, int)’:
/usr/local/include/NxBitField.h:42: error: class ‘NxBitField::FlagRef’ does not have any field named ‘bitIndex’
/usr/local/include/NxBitField.h: At global scope:
/usr/local/include/NxBitField.h:115: error: expected ‘)’ before ‘v’
/usr/local/include/NxBitField.h: In copy constructor ‘NxBitField::NxBitField(const NxBitField&)’:
/usr/local/include/NxBitField.h:123: error: ‘bitField’ was not declared in this scope
/usr/local/include/NxBitField.h:123: error: ‘const class NxBitField’ has no member named ‘bitField’
/usr/local/include/NxBitField.h: At global scope:
/usr/local/include/NxBitField.h:127: error: variable or field ‘setFlag’ declared void
/usr/local/include/NxBitField.h:127: error: ‘NxU32’ was not declared in this scope
/usr/local/include/NxBitField.h:127: error: ‘Flag’ was not declared in this scope
/usr/local/include/NxBitField.h:136: error: variable or field ‘raiseFlag’ declared void
/usr/local/include/NxBitField.h:136: error: ‘NxU32’ was not declared in this scope
/usr/local/include/NxBitField.h:142: error: variable or field ‘lowerFlag’ declared void
/usr/local/include/NxBitField.h:142: error: ‘NxU32’ was not declared in this scope
/usr/local/include/NxBitField.h:148: error: ‘Flag’ in class ‘NxBitField’ does not name a type
/usr/local/include/NxBitField.h:155: error: variable or field ‘setFlagMask’ declared void
/usr/local/include/NxBitField.h:155: error: ‘Mask’ was not declared in this scope
/usr/local/include/NxBitField.h:155: error: ‘Flag’ was not declared in this scope
/usr/local/include/NxBitField.h:164: error: variable or field ‘raiseFlagMask’ declared void
/usr/local/include/NxBitField.h:164: error: ‘Mask’ was not declared in this scope
/usr/local/include/NxBitField.h:170: error: variable or field ‘lowerFlagMask’ declared void
/usr/local/include/NxBitField.h:170: error: ‘Mask’ was not declared in this scope
/usr/local/include/NxBitField.h:177: error: ‘NxBitField::getFlagMask’ declared as an ‘inline’ variable
/usr/local/include/NxBitField.h:177: error: ‘bool NxBitField::getFlagMask’ is not a static member of ‘class NxBitField’
/usr/local/include/NxBitField.h:177: error: ‘Mask’ was not declared in this scope
/usr/local/include/NxBitField.h:177: error: expected ‘,’ or ‘;’ before ‘const’
/usr/local/include/NxBitField.h:183: error: ‘Field’ in class ‘NxBitField’ does not name a type
/usr/local/include/NxBitField.h:189: error: variable or field ‘setField’ declared void
/usr/local/include/NxBitField.h:189: error: ‘Shift’ was not declared in this scope
/usr/local/include/NxBitField.h:189: error: ‘Mask’ was not declared in this scope
/usr/local/include/NxBitField.h:189: error: ‘Field’ was not declared in this scope
/usr/local/include/NxBitField.h:196: error: variable or field ‘clearField’ declared void
/usr/local/include/NxBitField.h:196: error: ‘Mask’ was not declared in this scope
/usr/local/include/NxBitField.h:202: error: declaration of ‘operator[]’ as non-function
/usr/local/include/NxBitField.h:202: error: ‘NxU32’ was not declared in this scope
/usr/local/include/NxBitField.h: In member function ‘const NxBitField& NxBitField::operator=(const NxBitField&)’:
/usr/local/include/NxBitField.h:210: error: ‘bitField’ was not declared in this scope
/usr/local/include/NxBitField.h:210: error: ‘const class NxBitField’ has no member named ‘bitField’
/usr/local/include/NxBitField.h: At global scope:
/usr/local/include/NxBitField.h:215: error: declaration of ‘operator=’ as non-function
/usr/local/include/NxBitField.h:215: error: ‘IntType’ was not declared in this scope
[EDIT]
I know it is incredible but the Physx's headers are invalid, i had to change some file, the errors was caused by the lines "#ifdef" follow by "#elif", to fix it, replace "#ifdef" by "#if define" .
Now i have some errors with IrrPhysx's source, when i am going to fix it, i am going to upload an archive .

[EDIT]
Yes, it work fine
IrrPhysx For Linux
Post Reply