Panda3D

config_physx.cxx

00001 // Filename: config_physx.cxx
00002 // Created by:  enn0x (01Sep09)
00003 //
00004 ////////////////////////////////////////////////////////////////////
00005 //
00006 // PANDA 3D SOFTWARE
00007 // Copyright (c) Carnegie Mellon University.  All rights reserved.
00008 //
00009 // All use of this software is subject to the terms of the revised BSD
00010 // license.  You should have received a copy of this license along
00011 // with this source code in a file named "LICENSE."
00012 //
00013 ////////////////////////////////////////////////////////////////////
00014 
00015 #include "config_physx.h"
00016 #include "pandaSystem.h"
00017 
00018 #include "physxActor.h"
00019 #include "physxBoxController.h"
00020 #include "physxBoxForceFieldShape.h"
00021 #include "physxBoxShape.h"
00022 #include "physxCapsuleController.h"
00023 #include "physxCapsuleForceFieldShape.h"
00024 #include "physxCapsuleShape.h"
00025 #include "physxCloth.h"
00026 #include "physxClothMesh.h"
00027 #include "physxClothNode.h"
00028 #include "physxContactPair.h"
00029 #include "physxContactPoint.h"
00030 #include "physxController.h"
00031 #include "physxConvexMesh.h"
00032 #include "physxConvexForceFieldShape.h"
00033 #include "physxConvexShape.h"
00034 #include "physxCylindricalJoint.h"
00035 #include "physxD6Joint.h"
00036 #include "physxDebugGeomNode.h"
00037 #include "physxDistanceJoint.h"
00038 #include "physxFixedJoint.h"
00039 #include "physxForceField.h"
00040 #include "physxForceFieldShape.h"
00041 #include "physxForceFieldShapeGroup.h"
00042 #include "physxHeightField.h"
00043 #include "physxHeightFieldShape.h"
00044 #include "physxJoint.h"
00045 #include "physxMaterial.h"
00046 #include "physxObject.h"
00047 #include "physxPlaneShape.h"
00048 #include "physxPointInPlaneJoint.h"
00049 #include "physxPointOnLineJoint.h"
00050 #include "physxPrismaticJoint.h"
00051 #include "physxPulleyJoint.h"
00052 #include "physxRevoluteJoint.h"
00053 #include "physxScene.h"
00054 #include "physxShape.h"
00055 #include "physxSoftBody.h"
00056 #include "physxSoftBodyMesh.h"
00057 #include "physxSoftBodyNode.h"
00058 #include "physxSphereForceFieldShape.h"
00059 #include "physxSphereShape.h"
00060 #include "physxSphericalJoint.h"
00061 #include "physxTriangleMesh.h"
00062 #include "physxTriangleMeshShape.h"
00063 #include "physxVehicle.h"
00064 #include "physxWheel.h"
00065 #include "physxWheelShape.h"
00066 
00067 ConfigureDef(config_physx);
00068 NotifyCategoryDef(physx, "");
00069 
00070 ConfigureFn(config_physx) {
00071   init_libphysx();
00072 }
00073 
00074 ConfigVariableBool physx_want_vrd
00075 ("physx-want-vrd", false,
00076 PRC_DESC("Specified wether the manager should try to connect to the NVIDIA "
00077          "PhysX visual debugger or not. Connection is established when "
00078          "the first instance of PhysxManager is created."));
00079 
00080 ConfigVariableString physx_vrd_host
00081 ("physx-vrd-host", "localhost",
00082 PRC_DESC("Specified the host where the NVIDIA PhysX visual debugger is running "
00083          "on. Only used if the config-varibale 'physx-want-visual-debugger' "
00084          "is set to 'true'."));
00085 
00086 ConfigVariableInt physx_vrd_port
00087 ("physx-visual-debugger-port", 5425,
00088 PRC_DESC("Specified the port where the NVIDIA PhysX visual debugger is running "
00089          "on. Only used if the config-varibale 'physx-want-visual-debugger' "
00090          "is set to 'true'."));
00091 
00092 ConfigVariableEnum<PhysxEnums::PhysxUpAxis> physx_up_axis
00093 ("physx-up-axis", PhysxEnums::Z_up,
00094 PRC_DESC("Set the up direction for controllers and heightfields."));
00095 
00096 ConfigVariableInt physx_internal_threads
00097 ("physx-internal-threads", 0,
00098 PRC_DESC("Specified the number of internal threads to be created by the "
00099          "PhysX engine. The threads will be moved to different cores, if "
00100          "possible. Default value is '0'. PhysX then runs in an external "
00101          "thread, but no additional internal threads will be created."));
00102 
00103 ////////////////////////////////////////////////////////////////////
00104 //     Function: init_libphysx
00105 //  Description: Initializes the library.  This must be called at
00106 //               least once before any of the functions or classes in
00107 //               this library can be used.  Normally it will be
00108 //               called by the static initializers and need not be
00109 //               called explicitly, but special cases exist.
00110 ////////////////////////////////////////////////////////////////////
00111 void
00112 init_libphysx() {
00113   static bool initialized = false;
00114   if (initialized) {
00115     return;
00116   }
00117   initialized = true;
00118 
00119   PhysxActor::init_type();
00120   PhysxBoxController::init_type();
00121   PhysxBoxForceFieldShape::init_type();
00122   PhysxBoxShape::init_type();
00123   PhysxCapsuleController::init_type();
00124   PhysxCapsuleForceFieldShape::init_type();
00125   PhysxCapsuleShape::init_type();
00126   PhysxCloth::init_type();
00127   PhysxClothMesh::init_type();
00128   PhysxClothNode::init_type();
00129   PhysxContactPair::init_type();
00130   PhysxContactPoint::init_type();
00131   PhysxController::init_type();
00132   PhysxConvexMesh::init_type();
00133   PhysxConvexForceFieldShape::init_type();
00134   PhysxConvexShape::init_type();
00135   PhysxCylindricalJoint::init_type();
00136   PhysxD6Joint::init_type();
00137   PhysxDebugGeomNode::init_type();
00138   PhysxDistanceJoint::init_type();
00139   PhysxFixedJoint::init_type();
00140   PhysxForceField::init_type();
00141   PhysxForceFieldShape::init_type();
00142   PhysxForceFieldShapeGroup::init_type();
00143   PhysxHeightField::init_type();
00144   PhysxHeightFieldShape::init_type();
00145   PhysxJoint::init_type();
00146   PhysxMaterial::init_type();
00147   PhysxObject::init_type();
00148   PhysxPlaneShape::init_type();
00149   PhysxPointInPlaneJoint::init_type();
00150   PhysxPointOnLineJoint::init_type();
00151   PhysxPrismaticJoint::init_type();
00152   PhysxPulleyJoint::init_type();
00153   PhysxRevoluteJoint::init_type();
00154   PhysxScene::init_type();
00155   PhysxShape::init_type();
00156   PhysxSoftBody::init_type();
00157   PhysxSoftBodyMesh::init_type();
00158   PhysxSoftBodyNode::init_type();
00159   PhysxSphereForceFieldShape::init_type();
00160   PhysxSphereShape::init_type();
00161   PhysxSphericalJoint::init_type();
00162   PhysxTriangleMesh::init_type();
00163   PhysxTriangleMeshShape::init_type();
00164   PhysxVehicle::init_type();
00165   PhysxWheel::init_type();
00166   PhysxWheelShape::init_type();
00167 
00168   PandaSystem *ps = PandaSystem::get_global_ptr();
00169   ps->add_system("PhysX");
00170 }
00171 
 All Classes Functions Variables Enumerations