[SOLVED] FLOATNAME(LVecBase2) & p3bullet_composite compi

Just encountered an error while building Panda 1.8 CVS

seems to be related to FLOATNAME(LVecBase2) ?

Ah, looks like the bullet source files are including the individual linmath components directly, like “lvector3.h”. That’s not supported; you’re supposed to include only “luse.h”, but that’s not obvious to new developers and I imagine the person who wrote this code didn’t know that rule. Then, the code was broken when I added some recent changes to the linmath library.

I’ll make the necessary changes to the include files in panda/src/bullet. However, I can’t easily test these changes, as I don’t have the bullet libraries installed and I don’t normally compile with bullet.

David

Just happen to find it out too!

quick fix comment out //#include “lpoint3.h” and //#include “lvector3.h” in bullet_utils.h

My fault. I didn’t know about this rule. Maybe it’s a good idea to put those rules somewhere in panda/src/doc.

I checked in fixes for the PhysX module. Unfortunately I can’t test if something is broken, so we will have to wait for the next buildbot run.

By the way: searching through the rest of panda3d/src/ brings up a few more includes of lpoint/lvector/lmatrix (excluding hits in linear math module):

collide/collisionLevelStateBase.h:#include "lvector3.h"
egg/eggGroup.cxx:#include "lmatrix.h"
egg/eggMiscFuncs.h:#include "lmatrix.h"
egg/eggNode.h:#include "lmatrix.h"
egg/eggVertex.cxx:#include "lmatrix.h"
egg/eggVertexPool.h:#include "lmatrix.h"
egg/eggXfmAnimData.cxx:#include "lmatrix.h"
egg/parser.cxx.prebuilt:#include "lmatrix.h"
egg/parser.yxx:#include "lmatrix.h"
egg2pg/eggLoader.h:#include "lmatrix.h"
grutil/heightfieldTesselator.cxx:#include "lvector3.h"
grutil/meshDrawer.cxx:#include "lvecBase4.h"
grutil/meshDrawer.cxx:#include "lvector3.h"
grutil/meshDrawer.h:#include "lpoint2.h"
grutil/meshDrawer.h:#include "lvecBase2.h"
grutil/meshDrawer.I:#include "lpoint2.h"
grutil/meshDrawer2D.cxx:#include "lvecBase4.h"
grutil/meshDrawer2D.cxx:#include "lvector3.h"
grutil/meshDrawer2D.h:#include "lpoint2.h"
grutil/meshDrawer2D.h:#include "lvecBase2.h"
grutil/meshDrawer2D.I:#include "lpoint2.h"
mathutil/geometricBoundingVolume.h:#include "lmatrix.h"
particlesystem/particleSystem.cxx:#include "lmat_ops.h"
pgraphnodes/shaderGenerator.cxx:#include "lvector4.h"
vision/arToolKit.cxx:#include "lvecBase3.h"