18 #include "pandabase.h" 20 #include "physx_includes.h" 25 #define NX_PENALTY_FORCE 0 26 #define NX_SKIN_WIDTH 1 27 #define NX_DEFAULT_SLEEP_LIN_VEL_SQUARED 2 28 #define NX_DEFAULT_SLEEP_ANG_VEL_SQUARED 3 29 #define NX_BOUNCE_THRESHOLD 4 30 #define NX_DYN_FRICT_SCALING 5 31 #define NX_STA_FRICT_SCALING 6 32 #define NX_MAX_ANGULAR_VELOCITY 7 33 #define NX_CONTINUOUS_CD 8 34 #define NX_VISUALIZATION_SCALE 9 35 #define NX_VISUALIZE_WORLD_AXES 10 36 #define NX_VISUALIZE_BODY_AXES 11 37 #define NX_VISUALIZE_BODY_MASS_AXES 12 38 #define NX_VISUALIZE_BODY_LIN_VELOCITY 13 39 #define NX_VISUALIZE_BODY_ANG_VELOCITY 14 40 #define NX_VISUALIZE_BODY_JOINT_GROUPS 22 41 #define NX_VISUALIZE_JOINT_LOCAL_AXES 27 42 #define NX_VISUALIZE_JOINT_WORLD_AXES 28 43 #define NX_VISUALIZE_JOINT_LIMITS 29 44 #define NX_VISUALIZE_CONTACT_POINT 33 45 #define NX_VISUALIZE_CONTACT_NORMAL 34 46 #define NX_VISUALIZE_CONTACT_ERROR 35 47 #define NX_VISUALIZE_CONTACT_FORCE 36 48 #define NX_VISUALIZE_ACTOR_AXES 37 49 #define NX_VISUALIZE_COLLISION_AABBS 38 50 #define NX_VISUALIZE_COLLISION_SHAPES 39 51 #define NX_VISUALIZE_COLLISION_AXES 40 52 #define NX_VISUALIZE_COLLISION_COMPOUNDS 41 53 #define NX_VISUALIZE_COLLISION_VNORMALS 42 54 #define NX_VISUALIZE_COLLISION_FNORMALS 43 55 #define NX_VISUALIZE_COLLISION_EDGES 44 56 #define NX_VISUALIZE_COLLISION_SPHERES 45 57 #define NX_VISUALIZE_COLLISION_STATIC 47 58 #define NX_VISUALIZE_COLLISION_DYNAMIC 48 59 #define NX_VISUALIZE_COLLISION_FREE 49 60 #define NX_VISUALIZE_COLLISION_CCD 50 61 #define NX_VISUALIZE_COLLISION_SKELETONS 51 62 #define NX_VISUALIZE_FLUID_EMITTERS 52 63 #define NX_VISUALIZE_FLUID_POSITION 53 64 #define NX_VISUALIZE_FLUID_VELOCITY 54 65 #define NX_VISUALIZE_FLUID_KERNEL_RADIUS 55 66 #define NX_VISUALIZE_FLUID_BOUNDS 56 67 #define NX_VISUALIZE_FLUID_PACKETS 57 68 #define NX_VISUALIZE_FLUID_MOTION_LIMIT 58 69 #define NX_VISUALIZE_FLUID_DYN_COLLISION 59 70 #define NX_VISUALIZE_FLUID_STC_COLLISION 60 71 #define NX_VISUALIZE_FLUID_MESH_PACKETS 61 72 #define NX_VISUALIZE_FLUID_DRAINS 62 73 #define NX_VISUALIZE_FLUID_PACKET_DATA 90 74 #define NX_VISUALIZE_CLOTH_MESH 63 75 #define NX_VISUALIZE_CLOTH_COLLISIONS 64 76 #define NX_VISUALIZE_CLOTH_SELFCOLLISIONS 65 77 #define NX_VISUALIZE_CLOTH_WORKPACKETS 66 78 #define NX_VISUALIZE_CLOTH_SLEEP 67 79 #define NX_VISUALIZE_CLOTH_SLEEP_VERTEX 94 80 #define NX_VISUALIZE_CLOTH_TEARABLE_VERTICES 80 81 #define NX_VISUALIZE_CLOTH_TEARING 81 82 #define NX_VISUALIZE_CLOTH_ATTACHMENT 82 83 #define NX_VISUALIZE_CLOTH_VALIDBOUNDS 92 84 #define NX_VISUALIZE_SOFTBODY_MESH 83 85 #define NX_VISUALIZE_SOFTBODY_COLLISIONS 84 86 #define NX_VISUALIZE_SOFTBODY_WORKPACKETS 85 87 #define NX_VISUALIZE_SOFTBODY_SLEEP 86 88 #define NX_VISUALIZE_SOFTBODY_SLEEP_VERTEX 95 89 #define NX_VISUALIZE_SOFTBODY_TEARABLE_VERTICES 87 90 #define NX_VISUALIZE_SOFTBODY_TEARING 88 91 #define NX_VISUALIZE_SOFTBODY_ATTACHMENT 89 92 #define NX_VISUALIZE_SOFTBODY_VALIDBOUNDS 93 93 #define NX_ADAPTIVE_FORCE 68 94 #define NX_COLL_VETO_JOINTED 69 95 #define NX_TRIGGER_TRIGGER_CALLBACK 70 96 #define NX_SELECT_HW_ALGO 71 97 #define NX_VISUALIZE_ACTIVE_VERTICES 72 98 #define NX_CCD_EPSILON 73 99 #define NX_SOLVER_CONVERGENCE_THRESHOLD 74 100 #define NX_BBOX_NOISE_LEVEL 75 101 #define NX_IMPLICIT_SWEEP_CACHE_SIZE 76 102 #define NX_DEFAULT_SLEEP_ENERGY 77 103 #define NX_CONSTANT_FLUID_MAX_PACKETS 78 104 #define NX_CONSTANT_FLUID_MAX_PARTICLES_PER_STEP 79 105 #define NX_VISUALIZE_FORCE_FIELDS 91 106 #define NX_ASYNCHRONOUS_MESH_CREATION 96 107 #define NX_FORCE_FIELD_CUSTOM_KERNEL_EPSILON 97 108 #define NX_IMPROVED_SPRING_SOLVER 98 110 #if NX_SDK_VERSION_NUMBER > 281 111 #define NX_FAST_MASSIVE_BP_VOLUME_DELETION 99 112 #define NX_LEGACY_JOINT_DRIVE 100 116 #define NX_AF_DISABLE_COLLISION 1<<0 117 #define NX_AF_DISABLE_RESPONSE 1<<1 118 #define NX_AF_LOCK_COM 1<<2 119 #define NX_AF_FLUID_DISABLE_COLLISION 1<<3 120 #define NX_AF_CONTACT_MODIFICATION 1<<4 121 #define NX_AF_FORCE_CONE_FRICTION 1<<5 122 #define NX_AF_USER_ACTOR_PAIR_FILTERING 1<<6 125 #define NX_BF_DISABLE_GRAVITY 1<<0 126 #define NX_BF_FROZEN_POS_X 1<<1 127 #define NX_BF_FROZEN_POS_Y 1<<2 128 #define NX_BF_FROZEN_POS_Z 1<<3 129 #define NX_BF_FROZEN_ROT_X 1<<4 130 #define NX_BF_FROZEN_ROT_Y 1<<5 131 #define NX_BF_FROZEN_ROT_Z 1<<6 132 #define NX_BF_FROZEN_POS 256 133 #define NX_BF_FROZEN_ROT 131072 134 #define NX_BF_FROZEN 131328 135 #define NX_BF_KINEMATIC 1<<7 136 #define NX_BF_VISUALIZATION 1<<8 137 #define NX_BF_FILTER_SLEEP_VEL 1<<10 138 #define NX_BF_ENERGY_SLEEP_TEST 1<<11 141 #define NX_BP_TYPE_SAP_SINGLE 0 142 #define NX_BP_TYPE_SAP_MULTI 1 145 #define NX_CLF_PRESSURE 1<<0 146 #define NX_CLF_STATIC 1<<1 147 #define NX_CLF_DISABLE_COLLISION 1<<2 148 #define NX_CLF_SELFCOLLISION 1<<3 149 #define NX_CLF_VISUALIZATION 1<<4 150 #define NX_CLF_GRAVITY 1<<5 151 #define NX_CLF_BENDING 1<<6 152 #define NX_CLF_BENDING_ORTHO 1<<7 153 #define NX_CLF_DAMPING 1<<8 154 #define NX_CLF_COLLISION_TWOWAY 1<<9 155 #define NX_CLF_TRIANGLE_COLLISION 1<<11 156 #define NX_CLF_TEARABLE 1<<12 157 #define NX_CLF_HARDWARE 1<<13 158 #define NX_CLF_COMDAMPING 1<<14 159 #define NX_CLF_VALIDBOUNDS 1<<15 160 #define NX_CLF_FLUID_COLLISION 1<<16 161 #define NX_CLF_DISABLE_DYNAMIC_CCD 1<<17 162 #define NX_CLF_ADHERE 1<<18 165 #define NX_IGNORE_PAIR 1<<0 166 #define NX_NOTIFY_ON_START_TOUCH 1<<1 167 #define NX_NOTIFY_ON_END_TOUCH 1<<2 168 #define NX_NOTIFY_ON_TOUCH 1<<3 169 #define NX_NOTIFY_ON_IMPACT 1<<4 170 #define NX_NOTIFY_ON_ROLL 1<<5 171 #define NX_NOTIFY_ON_SLIDE 1<<6 172 #define NX_NOTIFY_FORCES 1<<7 173 #define NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD 1<<8 174 #define NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD 1<<9 175 #define NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD 1<<10 176 #define NX_NOTIFY_CONTACT_MODIFICATION 1<<16 179 #define NX_CM_AVERAGE 0 181 #define NX_CM_MULTIPLY 2 185 #define NX_D6JOINT_DRIVE_POSITION 1<<0 186 #define NX_D6JOINT_DRIVE_VELOCITY 1<<1 189 #define NX_D6JOINT_SLERP_DRIVE 1<<0 190 #define NX_D6JOINT_GEAR_ENABLED 1<<1 193 #define NX_D6JOINT_MOTION_LOCKED 0 194 #define NX_D6JOINT_MOTION_LIMITED 1 195 #define NX_D6JOINT_MOTION_FREE 2 198 #define NX_DJF_MAX_DISTANCE_ENABLED 1<<0 199 #define NX_DJF_MIN_DISTANCE_ENABLED 1<<1 200 #define NX_DJF_SPRING_ENABLED 1<<2 203 #define NX_FILTEROP_AND 0 204 #define NX_FILTEROP_OR 1 205 #define NX_FILTEROP_XOR 2 206 #define NX_FILTEROP_NAND 3 207 #define NX_FILTEROP_NOR 4 208 #define NX_FILTEROP_NXOR 5 209 #define NX_FILTEROP_SWAP_AND 6 212 #define NX_FFC_CARTESIAN 0 213 #define NX_FFC_SPHERICAL 1 214 #define NX_FFC_CYLINDRICAL 2 215 #define NX_FFC_TOROIDAL 3 218 #define NX_FFSG_EXCLUDE_GROUP 1 221 #define NX_MF_ANISOTROPIC 1<<0 222 #define NX_MF_DISABLE_FRICTION 1<<4 223 #define NX_MF_DISABLE_STRONG_FRICTION 1<<5 228 #define NX_VELOCITY_CHANGE 2 229 #define NX_SMOOTH_IMPULSE 3 230 #define NX_SMOOTH_VELOCITY_CHANGE 4 231 #define NX_ACCELERATION 5 234 #define NX_JF_COLLISION_ENABLED 1<<0 235 #define NX_JF_VISUALIZATION 1<<1 238 #define NX_JPM_NONE 0 239 #define NX_JPM_POINT_MINDIST 1 240 #define NX_JPM_LINEAR_MINDIST 2 243 #define NX_PRUNING_NONE 0 244 #define NX_PRUNING_OCTREE 1 245 #define NX_PRUNING_QUADTREE 2 246 #define NX_PRUNING_DYNAMIC_AABB_TREE 3 247 #define NX_PRUNING_STATIC_AABB_TREE 4 250 #define NX_PJF_IS_RIGID 1<<0 251 #define NX_PJF_MOTOR_ENABLED 1<<1 254 #define NX_RJF_LIMIT_ENABLED 1<<0 255 #define NX_RJF_MOTOR_ENABLED 1<<1 256 #define NX_RJF_SPRING_ENABLED 1<<2 259 #define NX_SF_DISABLE_SSE 0x1 260 #define NX_SF_DISABLE_COLLISIONS 0x2 261 #define NX_SF_SIMULATE_SEPARATE_THREAD 0x4 262 #define NX_SF_ENABLE_MULTITHREAD 0x8 263 #define NX_SF_ENABLE_ACTIVETRANSFORMS 0x10 264 #define NX_SF_RESTRICTED_SCENE 0x20 265 #define NX_SF_DISABLE_SCENE_MUTEX 0x40 266 #define NX_SF_FORCE_CONE_FRICTION 0x80 267 #define NX_SF_SEQUENTIAL_PRIMARY 0x80*2 268 #define NX_SF_FLUID_PERFORMANCE_HINT 0x80*4 269 #define NX_SF_ALTERNATIVE_FLUID_TRIANGLE_COLLISION 0x80*8 270 #define NX_SF_MULTITHREADED_FORCEFIELD 0x80*16 273 #define NX_TRIGGER_ON_ENTER 1<<0 274 #define NX_TRIGGER_ON_LEAVE 1<<1 275 #define NX_TRIGGER_ON_STAY 1<<2 276 #define NX_TRIGGER_ENABLE 7 277 #define NX_SF_VISUALIZATION 1<<3 278 #define NX_SF_DISABLE_COLLISION 1<<4 279 #define NX_SF_FEATURE_INDICES 1<<5 280 #define NX_SF_DISABLE_RAYCASTING 1<<6 281 #define NX_SF_POINT_CONTACT_FORCE 1<<7 282 #define NX_SF_FLUID_DRAIN 1<<8 283 #define NX_SF_FLUID_DISABLE_COLLISION 1<<10 284 #define NX_SF_FLUID_TWOWAY 1<<11 285 #define NX_SF_DISABLE_RESPONSE 1<<12 286 #define NX_SF_DYNAMIC_DYNAMIC_CCD 1<<13 287 #define NX_SF_DISABLE_SCENE_QUERIES 1<<14 288 #define NX_SF_CLOTH_DRAIN 1<<15 289 #define NX_SF_CLOTH_DISABLE_COLLISION 1<<16 290 #define NX_SF_CLOTH_TWOWAY 1<<17 291 #define NX_SF_SOFTBODY_DRAIN 1<<18 292 #define NX_SF_SOFTBODY_DISABLE_COLLISION 1<<19 293 #define NX_SF_SOFTBODY_TWOWAY 1<<20 296 #define NX_STATIC_SHAPES 1<<0 297 #define NX_DYNAMIC_SHAPES 1<<1 298 #define NX_ALL_SHAPES (1<<0|1<<1) 301 #define NX_SBF_STATIC 1<<1 302 #define NX_SBF_DISABLE_COLLISION 1<<2 303 #define NX_SBF_SELFCOLLISION 1<<3 304 #define NX_SBF_VISUALIZATION 1<<4 305 #define NX_SBF_GRAVITY 1<<5 306 #define NX_SBF_VOLUME_CONSERVATION 1<<6 307 #define NX_SBF_DAMPING 1<<7 308 #define NX_SBF_COLLISION_TWOWAY 1<<8 309 #define NX_SBF_TEARABLE 1<<9 310 #define NX_SBF_HARDWARE 1<<10 311 #define NX_SBF_COMDAMPING 1<<11 312 #define NX_SBF_VALIDBOUNDS 1<<12 313 #define NX_SBF_FLUID_COLLISION 1<<13 314 #define NX_SBF_DISABLE_DYNAMIC_CCD 1<<14 315 #define NX_SBF_ADHERE 1<<15 318 #define NX_SJF_TWIST_LIMIT_ENABLED 1<<0 319 #define NX_SJF_SWING_LIMIT_ENABLED 1<<1 320 #define NX_SJF_TWIST_SPRING_ENABLED 1<<2 321 #define NX_SJF_SWING_SPRING_ENABLED 1<<3 322 #define NX_SJF_JOINT_SPRING_ENABLED 1<<4 323 #define NX_SJF_PERPENDICULAR_DIR_CONSTRAINTS 1<<5 331 #define NX_CLOTH_VERTEX_ATTACHMENT_NONE 0 332 #define NX_CLOTH_VERTEX_ATTACHMENT_GLOBAL 1 333 #define NX_CLOTH_VERTEX_ATTACHMENT_SHAPE 2 336 #define NX_WF_WHEEL_AXIS_CONTACT_NORMAL 1<<0 337 #define NX_WF_INPUT_LAT_SLIPVELOCITY 1<<1 338 #define NX_WF_INPUT_LNG_SLIPVELOCITY 1<<2 339 #define NX_WF_UNSCALED_SPRING_BEHAVIOR 1<<3 340 #define NX_WF_AXLE_SPEED_OVERRIDE 1<<4 341 #define NX_WF_EMULATE_LEGACY_WHEEL 1<<5 342 #define NX_WF_CLAMPED_FRICTION 1<<6 347 #define NX_WF_STEERABLE_INPUT 1<<0 348 #define NX_WF_STEERABLE_AUTO 1<<1 349 #define NX_WF_AFFECTED_BY_HANDBRAKE 1<<2 350 #define NX_WF_ACCELERATED 1<<3 360 enum PhysxParameter {
361 P_penalty_force = NX_PENALTY_FORCE,
362 P_skin_width = NX_SKIN_WIDTH,
363 P_default_sleep_lin_vel_squared = NX_DEFAULT_SLEEP_LIN_VEL_SQUARED,
364 P_default_sleep_ang_vel_squared = NX_DEFAULT_SLEEP_ANG_VEL_SQUARED,
365 P_bounce_threshold = NX_BOUNCE_THRESHOLD,
366 P_dyn_frict_scaling = NX_DYN_FRICT_SCALING,
367 P_sta_frict_scaling = NX_STA_FRICT_SCALING,
368 P_max_angular_velocity = NX_MAX_ANGULAR_VELOCITY,
369 P_continuous_cd = NX_CONTINUOUS_CD,
370 P_visualization_scale = NX_VISUALIZATION_SCALE,
371 P_adaptive_force = NX_ADAPTIVE_FORCE,
372 P_coll_veta_jointed = NX_COLL_VETO_JOINTED,
373 P_trigger_trigger_callback = NX_TRIGGER_TRIGGER_CALLBACK,
374 P_select_hw_algo = NX_SELECT_HW_ALGO,
375 P_ccd_epsilon = NX_CCD_EPSILON,
376 P_solver_convergence_threshold = NX_SOLVER_CONVERGENCE_THRESHOLD,
377 P_bbox_noise_level = NX_BBOX_NOISE_LEVEL,
378 P_implicit_sweep_cache_size = NX_IMPLICIT_SWEEP_CACHE_SIZE,
379 P_default_sleep_energy = NX_DEFAULT_SLEEP_ENERGY,
380 P_constant_fluid_max_packets = NX_CONSTANT_FLUID_MAX_PACKETS,
381 P_constant_fluid_max_particles_per_step = NX_CONSTANT_FLUID_MAX_PARTICLES_PER_STEP,
382 P_asynchronous_mesh_creation = NX_ASYNCHRONOUS_MESH_CREATION,
383 P_force_field_custom_kernel_epsilon = NX_FORCE_FIELD_CUSTOM_KERNEL_EPSILON,
384 P_improved_spring_solver = NX_IMPROVED_SPRING_SOLVER,
386 #if NX_SDK_VERSION_NUMBER > 281 387 P_fast_massive_bp_volume_deletion = NX_FAST_MASSIVE_BP_VOLUME_DELETION,
388 P_legacy_joint_drive = NX_LEGACY_JOINT_DRIVE,
391 P_visualize_world_axes = NX_VISUALIZE_WORLD_AXES,
392 P_visualize_body_axes = NX_VISUALIZE_BODY_AXES,
393 P_visualize_body_mass_axes = NX_VISUALIZE_BODY_MASS_AXES,
394 P_visualize_body_lin_velocity = NX_VISUALIZE_BODY_LIN_VELOCITY,
395 P_visualize_body_ang_velocity = NX_VISUALIZE_BODY_ANG_VELOCITY,
396 P_visualize_body_joint_groups = NX_VISUALIZE_BODY_JOINT_GROUPS,
397 P_visualize_joint_local_axes = NX_VISUALIZE_JOINT_LOCAL_AXES,
398 P_visualize_joint_world_axes = NX_VISUALIZE_JOINT_WORLD_AXES,
399 P_visualize_joint_limits = NX_VISUALIZE_JOINT_LIMITS,
400 P_visualize_contact_point = NX_VISUALIZE_CONTACT_POINT,
401 P_visualize_contact_normal = NX_VISUALIZE_CONTACT_NORMAL,
402 P_visualize_contact_error = NX_VISUALIZE_CONTACT_ERROR,
403 P_visualize_contact_force = NX_VISUALIZE_CONTACT_FORCE,
404 P_visualize_actor_axes = NX_VISUALIZE_ACTOR_AXES,
405 P_visualize_collision_aabbs = NX_VISUALIZE_COLLISION_AABBS,
406 P_visualize_collision_shapes = NX_VISUALIZE_COLLISION_SHAPES,
407 P_visualize_collision_axes = NX_VISUALIZE_COLLISION_AXES,
408 P_visualize_collision_compounds = NX_VISUALIZE_COLLISION_COMPOUNDS,
409 P_visualize_collision_vnormals = NX_VISUALIZE_COLLISION_VNORMALS,
410 P_visualize_collision_fnormals = NX_VISUALIZE_COLLISION_FNORMALS,
411 P_visualize_collision_edges = NX_VISUALIZE_COLLISION_EDGES,
412 P_visualize_collision_spheres = NX_VISUALIZE_COLLISION_SPHERES,
413 P_visualize_collision_static = NX_VISUALIZE_COLLISION_STATIC,
414 P_visualize_collision_dynamic = NX_VISUALIZE_COLLISION_DYNAMIC,
415 P_visualize_collision_free = NX_VISUALIZE_COLLISION_FREE,
416 P_visualize_collision_ccd = NX_VISUALIZE_COLLISION_CCD,
417 P_visualize_collision_skeletons = NX_VISUALIZE_COLLISION_SKELETONS,
418 P_visualize_fluid_emitters = NX_VISUALIZE_FLUID_EMITTERS,
419 P_visualize_fluid_position = NX_VISUALIZE_FLUID_POSITION,
420 P_visualize_fluid_velocity = NX_VISUALIZE_FLUID_VELOCITY,
421 P_visualize_fluid_kernel_radius = NX_VISUALIZE_FLUID_KERNEL_RADIUS,
422 P_visualize_fluid_bounds = NX_VISUALIZE_FLUID_BOUNDS,
423 P_visualize_fluid_packets = NX_VISUALIZE_FLUID_PACKETS,
424 P_visualize_fluid_motion_limit = NX_VISUALIZE_FLUID_MOTION_LIMIT,
425 P_visualize_fluid_dyn_collision = NX_VISUALIZE_FLUID_DYN_COLLISION,
426 P_visualize_fluid_stc_collision = NX_VISUALIZE_FLUID_STC_COLLISION,
427 P_visualize_fluid_mesh_packets = NX_VISUALIZE_FLUID_MESH_PACKETS,
428 P_visualize_fluid_drains = NX_VISUALIZE_FLUID_DRAINS,
429 P_visualize_fluid_packet_data = NX_VISUALIZE_FLUID_PACKET_DATA,
430 P_visualize_cloth_mesh = NX_VISUALIZE_CLOTH_MESH,
431 P_visualize_cloth_collisions = NX_VISUALIZE_CLOTH_COLLISIONS,
432 P_visualize_cloth_selfcollisions = NX_VISUALIZE_CLOTH_SELFCOLLISIONS,
433 P_visualize_cloth_workpackets = NX_VISUALIZE_CLOTH_WORKPACKETS,
434 P_visualize_cloth_sleep = NX_VISUALIZE_CLOTH_SLEEP,
435 P_visualize_cloth_sleep_vertex = NX_VISUALIZE_CLOTH_SLEEP_VERTEX,
436 P_visualize_cloth_tearable_vertices = NX_VISUALIZE_CLOTH_TEARABLE_VERTICES,
437 P_visualize_cloth_tearing = NX_VISUALIZE_CLOTH_TEARING,
438 P_visualize_cloth_attachment = NX_VISUALIZE_CLOTH_ATTACHMENT,
439 P_visualize_cloth_validbounds = NX_VISUALIZE_CLOTH_VALIDBOUNDS,
440 P_visualize_softbody_mesh = NX_VISUALIZE_SOFTBODY_MESH,
441 P_visualize_softbody_collisions = NX_VISUALIZE_SOFTBODY_COLLISIONS,
442 P_visualize_softbody_workpackets = NX_VISUALIZE_SOFTBODY_WORKPACKETS,
443 P_visualize_softbody_sleep = NX_VISUALIZE_SOFTBODY_SLEEP,
444 P_visualize_softbody_sleep_vertex = NX_VISUALIZE_SOFTBODY_SLEEP_VERTEX,
445 P_visualize_softbody_tearable_vertices = NX_VISUALIZE_SOFTBODY_TEARABLE_VERTICES,
446 P_visualize_softbody_tearing = NX_VISUALIZE_SOFTBODY_TEARING,
447 P_visualize_softbody_attachment = NX_VISUALIZE_SOFTBODY_ATTACHMENT,
448 P_visualize_softbody_validbounds = NX_VISUALIZE_SOFTBODY_VALIDBOUNDS,
449 P_visualize_active_vertices = NX_VISUALIZE_ACTIVE_VERTICES,
450 P_visualize_force_fields = NX_VISUALIZE_FORCE_FIELDS,
453 enum PhysxActorFlag {
454 AF_disable_collision = NX_AF_DISABLE_COLLISION,
455 AF_disable_response = NX_AF_DISABLE_RESPONSE,
456 AF_lock_com = NX_AF_LOCK_COM,
457 AF_fluid_disable_collision = NX_AF_FLUID_DISABLE_COLLISION,
458 AF_contact_modification = NX_AF_CONTACT_MODIFICATION,
459 AF_force_cone_friction = NX_AF_FORCE_CONE_FRICTION,
460 AF_user_actor_pair_filtering = NX_AF_USER_ACTOR_PAIR_FILTERING
464 BF_disable_gravity = NX_BF_DISABLE_GRAVITY,
465 Bf_frozen_pos_x = NX_BF_FROZEN_POS_X,
466 BF_frozen_pos_y = NX_BF_FROZEN_POS_Y,
467 BF_frozen_pos_z = NX_BF_FROZEN_POS_Z,
468 BF_frozen_rot_x = NX_BF_FROZEN_ROT_X,
469 BF_frozen_rot_y = NX_BF_FROZEN_ROT_Y,
470 BF_frozen_rot_z = NX_BF_FROZEN_ROT_Z,
471 BF_frozen_pos = NX_BF_FROZEN_POS,
472 BF_frozen_rot = NX_BF_FROZEN_ROT,
473 BF_frozen = NX_BF_FROZEN,
474 BF_kinematic = NX_BF_KINEMATIC,
475 BF_visualization = NX_BF_VISUALIZATION,
476 BF_filter_sleep_vel = NX_BF_FILTER_SLEEP_VEL,
477 BF_energy_sleep_test = NX_BF_ENERGY_SLEEP_TEST
480 enum PhysxBroadPhaseType {
481 BPT_sap_single = NX_BP_TYPE_SAP_SINGLE,
482 BPT_sap_multi = NX_BP_TYPE_SAP_MULTI
485 enum PhysxClothFlag {
486 CLF_pressure = NX_CLF_PRESSURE,
487 CLF_static = NX_CLF_STATIC,
488 CLF_disable_collision = NX_CLF_DISABLE_COLLISION,
489 CLF_selfcollision = NX_CLF_SELFCOLLISION,
490 CLF_visualization = NX_CLF_VISUALIZATION,
491 CLF_gravity = NX_CLF_GRAVITY,
492 CLF_bending = NX_CLF_BENDING,
493 CLF_bending_ortho = NX_CLF_BENDING_ORTHO,
494 CLF_damping = NX_CLF_DAMPING,
495 CLF_collision_twoway = NX_CLF_COLLISION_TWOWAY,
496 CLF_triangle_collision = NX_CLF_TRIANGLE_COLLISION,
497 CLF_tearable = NX_CLF_TEARABLE,
498 CLF_hardware = NX_CLF_HARDWARE,
499 CLF_comdamping = NX_CLF_COMDAMPING,
500 CLF_validbounds = NX_CLF_VALIDBOUNDS,
501 CLF_fluid_collision = NX_CLF_FLUID_COLLISION,
502 CLF_disable_dynamic_ccd = NX_CLF_DISABLE_DYNAMIC_CCD,
503 CLF_adhere = NX_CLF_ADHERE
506 enum PhysxContactPairFlag {
507 CPF_ignore_pair = NX_IGNORE_PAIR,
508 CPF_notify_on_start_touch = NX_NOTIFY_ON_START_TOUCH,
509 CPF_notify_on_end_touch = NX_NOTIFY_ON_END_TOUCH,
510 CPF_notify_on_touch = NX_NOTIFY_ON_TOUCH,
511 CPF_notify_on_impact = NX_NOTIFY_ON_IMPACT,
512 CPF_notify_on_roll = NX_NOTIFY_ON_ROLL,
513 CPF_notify_on_slide = NX_NOTIFY_ON_SLIDE,
514 CPF_notify_forces = NX_NOTIFY_FORCES,
515 CPF_notify_on_start_touch_threshold = NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD,
516 CPF_notify_on_end_touch_threshold = NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD,
517 CPF_notify_on_touch_threshold = NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD,
518 CPF_notify_contact_modifications = NX_NOTIFY_CONTACT_MODIFICATION
521 enum PhysxCombineMode {
522 CM_average = NX_CM_AVERAGE,
524 CM_multiply = NX_CM_MULTIPLY,
528 enum PhysxD6JointDriveType {
529 D6_joint_drive_position = NX_D6JOINT_DRIVE_POSITION,
530 D6_joint_drive_velocity = NX_D6JOINT_DRIVE_VELOCITY
533 enum PhysxD6JointFlag {
534 D6_joint_slerp_drive = NX_D6JOINT_SLERP_DRIVE,
535 D6_joint_gear_disabled = NX_D6JOINT_GEAR_ENABLED
538 enum PhysxD6JointMotion {
539 D6_joint_motion_locked = NX_D6JOINT_MOTION_LOCKED,
540 D6_joint_motion_limited = NX_D6JOINT_MOTION_LIMITED,
541 D6_joint_motion_free = NX_D6JOINT_MOTION_FREE
544 enum PhysxDistanceJointFlag {
545 DJF_max_distance_enabled = NX_DJF_MAX_DISTANCE_ENABLED,
546 DJF_mix_distance_enabled = NX_DJF_MIN_DISTANCE_ENABLED,
547 DJF_spring_enabled = NX_DJF_SPRING_ENABLED
551 FO_and = NX_FILTEROP_AND,
552 FO_or = NX_FILTEROP_OR,
553 FO_xor = NX_FILTEROP_XOR,
554 FO_nand = NX_FILTEROP_NAND,
555 FO_nor = NX_FILTEROP_NOR,
556 FO_nxor = NX_FILTEROP_NXOR,
557 FO_swap_and = NX_FILTEROP_SWAP_AND
560 enum PhysxForceFieldCoordinates {
567 enum PhysxForceFieldShapeGroupFlag {
568 FFSG_exclude_group = NX_FFSG_EXCLUDE_GROUP
571 enum PhysxForceMode {
573 FM_impulse = NX_IMPULSE,
574 FM_velocity_change = NX_VELOCITY_CHANGE,
575 FM_smooth_impulse = NX_SMOOTH_IMPULSE,
576 FM_smooth_velocity_change = NX_SMOOTH_VELOCITY_CHANGE,
577 FM_acceleration = NX_ACCELERATION
580 enum PhysxJointFlag {
581 JF_collision_enabled = NX_JF_COLLISION_ENABLED,
582 JF_visualization = NX_JF_VISUALIZATION
585 enum PhysxMaterialFlag {
586 MF_anisotropic = NX_MF_ANISOTROPIC,
587 MF_disable_friction = NX_MF_DISABLE_FRICTION,
588 MF_disable_strong_friction = NX_MF_DISABLE_STRONG_FRICTION
591 enum PhysxProjectionMode {
592 PM_none = NX_JPM_NONE,
593 PM_point_mindist = NX_JPM_POINT_MINDIST,
594 PM_linear_mindist = NX_JPM_LINEAR_MINDIST
597 enum PhysxPruningStructure {
598 PS_none = NX_PRUNING_NONE,
599 PS_octree = NX_PRUNING_OCTREE,
600 PS_quadtree = NX_PRUNING_QUADTREE,
601 PS_dynamic_aabb_tree = NX_PRUNING_DYNAMIC_AABB_TREE,
602 PS_static_aabb_tree = NX_PRUNING_STATIC_AABB_TREE
605 enum PhysxPulleyJointFlag {
606 PJF_is_rigid = NX_PJF_IS_RIGID,
607 PJF_motor_enabled = NX_PJF_MOTOR_ENABLED
610 enum PhysxRevoluteJointFlag {
611 RJF_limit_enabled = NX_RJF_LIMIT_ENABLED,
612 RJF_motor_enabled = NX_RJF_MOTOR_ENABLED,
613 RJF_spring_enabled = NX_RJF_SPRING_ENABLED
616 enum PhysxSceneFlag {
617 SF_disable_sse = NX_SF_DISABLE_SSE,
618 SF_disable_collisions = NX_SF_DISABLE_COLLISIONS,
619 SF_restricted_scene = NX_SF_RESTRICTED_SCENE,
620 SF_disable_scene_mutex = NX_SF_DISABLE_SCENE_MUTEX,
621 SF_force_cone_friction = NX_SF_FORCE_CONE_FRICTION,
622 SF_sequential_primary = NX_SF_SEQUENTIAL_PRIMARY,
623 SF_fluid_performance_hint = NX_SF_FLUID_PERFORMANCE_HINT,
630 enum PhysxShapeFlag {
631 SF_trigger_on_enter = NX_TRIGGER_ON_ENTER,
632 SF_trigger_on_leave = NX_TRIGGER_ON_LEAVE,
633 SF_trigger_on_stay = NX_TRIGGER_ON_STAY,
634 SF_trigger_enable = NX_TRIGGER_ENABLE,
635 SF_visualization = NX_SF_VISUALIZATION,
636 SF_disable_collision = NX_SF_DISABLE_COLLISION,
637 SF_disable_raycasting = NX_SF_DISABLE_RAYCASTING,
638 SF_disable_response = NX_SF_DISABLE_RESPONSE,
639 SF_disable_scene_queries = NX_SF_DISABLE_SCENE_QUERIES,
640 SF_point_contact_force = NX_SF_POINT_CONTACT_FORCE,
641 SF_feature_indices = NX_SF_FEATURE_INDICES,
642 SF_dynamic_dynamic_ccd = NX_SF_DYNAMIC_DYNAMIC_CCD,
643 SF_fluid_drain = NX_SF_FLUID_DRAIN,
644 SF_fluid_disable_collision = NX_SF_FLUID_DISABLE_COLLISION,
645 SF_fluid_twoway = NX_SF_FLUID_TWOWAY,
646 SF_cloth_drain = NX_SF_CLOTH_DRAIN,
647 SF_cloth_disable_collision = NX_SF_CLOTH_DISABLE_COLLISION,
648 SF_cloth_twoway = NX_SF_CLOTH_TWOWAY,
649 SF_softbody_drain = NX_SF_SOFTBODY_DRAIN,
650 SF_softbody_disable_collision = NX_SF_SOFTBODY_DISABLE_COLLISION,
651 SF_softbody_twoway = NX_SF_SOFTBODY_TWOWAY
654 enum PhysxSoftBodyFlag {
655 SBF_static = NX_SBF_STATIC,
656 SBF_disable_collision = NX_SBF_DISABLE_COLLISION,
657 SBF_selfcollision = NX_SBF_SELFCOLLISION,
658 SBF_visualization = NX_SBF_VISUALIZATION,
659 SBF_gravity = NX_SBF_GRAVITY,
660 SBF_volume_conservtion = NX_SBF_VOLUME_CONSERVATION,
661 SBF_damping = NX_SBF_DAMPING,
662 SBF_collision_twoway = NX_SBF_COLLISION_TWOWAY,
663 SBF_tearable = NX_SBF_TEARABLE,
664 SBF_hardware = NX_SBF_HARDWARE,
665 SBF_comdamping = NX_SBF_COMDAMPING,
666 SBF_validbounds = NX_SBF_VALIDBOUNDS,
667 SBF_fluid_collision = NX_SBF_FLUID_COLLISION,
668 SBF_disable_dynamic_ccd = NX_SBF_DISABLE_DYNAMIC_CCD,
669 SBF_adhere = NX_SBF_ADHERE
672 enum PhysxShapesType {
673 ST_static = NX_STATIC_SHAPES ,
674 ST_dynamic = NX_DYNAMIC_SHAPES ,
675 ST_all = NX_ALL_SHAPES
678 enum PhysxSphericalJointFlag {
679 SJF_twist_limit_enabled = NX_SJF_TWIST_LIMIT_ENABLED,
680 SJF_swing_limit_enabled = NX_SJF_SWING_LIMIT_ENABLED,
681 SJF_twist_spring_enabled = NX_SJF_TWIST_SPRING_ENABLED,
682 SJF_swing_spring_enabled = NX_SJF_SWING_SPRING_ENABLED,
683 SJF_joint_spring_enabled = NX_SJF_JOINT_SPRING_ENABLED,
684 SJF_perpendicular_dir_constraints = NX_SJF_PERPENDICULAR_DIR_CONSTRAINTS
693 enum PhysxVertexAttachmentStatus {
694 VAS_none = NX_CLOTH_VERTEX_ATTACHMENT_NONE,
695 VAS_global = NX_CLOTH_VERTEX_ATTACHMENT_GLOBAL,
696 VAS_shape = NX_CLOTH_VERTEX_ATTACHMENT_SHAPE
699 enum PhysxWheelFlag {
700 WF_steerable_input = NX_WF_STEERABLE_INPUT,
701 WF_steerable_auto = NX_WF_STEERABLE_AUTO,
702 WF_affected_by_handbrake = NX_WF_AFFECTED_BY_HANDBRAKE,
703 WF_accelerated = NX_WF_ACCELERATED
706 enum PhysxWheelShapeFlag {
707 WSF_wheel_axis_contact_normal = NX_WF_WHEEL_AXIS_CONTACT_NORMAL,
708 WSF_input_lat_slipvelocity = NX_WF_INPUT_LAT_SLIPVELOCITY,
709 WSF_input_lng_slipvelocity = NX_WF_INPUT_LNG_SLIPVELOCITY,
710 WSF_unscaled_spring_behavior = NX_WF_UNSCALED_SPRING_BEHAVIOR,
711 WSF_axle_speed_override = NX_WF_AXLE_SPEED_OVERRIDE,
712 WSF_emulate_legacy_wheel = NX_WF_EMULATE_LEGACY_WHEEL,
713 WSF_clamped_friction = NX_WF_CLAMPED_FRICTION
718 EXPCL_PANDAPHYSX ostream &operator << (ostream &out, PhysxEnums::PhysxUpAxis axis);
719 EXPCL_PANDAPHYSX istream &operator >> (istream &in, PhysxEnums::PhysxUpAxis &axis);
This class exists just to provide scoping for the enums shared by PhysX classes.