Panda3D
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
PhysxController Class Referenceabstract

Abstract base class for character controllers. More...

#include "physxController.h"

Inheritance diagram for PhysxController:
PhysxObject PhysxEnums TypedReferenceCount TypedObject ReferenceCount MemoryBase MemoryBase PhysxBoxController PhysxCapsuleController

Public Member Functions

virtual TypeHandle force_init_type ()
 
PhysxActorget_actor () const
 Retrieves the actor which this controller is associated with.
 
float get_h () const
 Returns the heading of the controller in global space.
 
LPoint3f get_pos () const
 Retruns the position of the controller is global space.
 
float get_sharpness () const
 Returns the sharpness used to ease the motion curve when the auto-step feature is used.
 
virtual TypeHandle get_type () const
 
virtual void link (NxController *controllerPtr)=0
 
void ls () const
 
void ls (std::ostream &out, int indent_level=0) const
 
virtual NxController * ptr () const =0
 
void release ()
 
void report_scene_changed ()
 The character controller uses caching in order to speed up collision testing, this caching can not detect when static objects have changed in the scene.
 
void set_collision (bool enable)
 Enable/Disable collisions for this controller and actor.
 
void set_global_speed (const LVector3f &speed)
 Sets the linear speed of the controller in global space.
 
void set_h (float heading)
 Sets the heading of the controller is global space.
 
void set_local_speed (const LVector3f &speed)
 Sets the linear speed of the controller in local coordinates.
 
void set_min_distance (float min_dist)
 Sets the the minimum travelled distance to consider when moving the controller.
 
void set_omega (float omega)
 Sets the angular velocity (degrees per second) of the controller.
 
void set_pos (const LPoint3f &pos)
 Sets the position of the controller is global space.
 
void set_sharpness (float sharpness)
 Sharpness is used to smooth motion with a feedback filter, having a value between 0 (so smooth it doesn't move) and 1 (no smoothing = unfiltered motion).
 
void set_step_offset (float offset)
 Sets the step height/offset for the controller.
 
void start_jump (float v0)
 Enters the jump mode.
 
void stop_jump ()
 Leaves the jump mode.
 
virtual void unlink ()=0
 
void update_controller (float dt)
 
- Public Member Functions inherited from TypedReferenceCount
 TypedReferenceCount (const TypedReferenceCount &copy)
 
void operator= (const TypedReferenceCount &copy)
 
- Public Member Functions inherited from TypedObject
 TypedObject (const TypedObject &copy)=default
 
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer.
 
const TypedObjectas_typed_object () const
 Returns the object, upcast (if necessary) to a TypedObject pointer.
 
int get_best_parent_from_Set (const std::set< int > &) const
 
int get_type_index () const
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.
 
bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly.
 
bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type.
 
TypedObjectoperator= (const TypedObject &copy)=default
 
- Public Member Functions inherited from MemoryBase
void operator delete (void *, void *)
 
void operator delete (void *ptr)
 
void operator delete[] (void *, void *)
 
void operator delete[] (void *ptr)
 
void * operator new (size_t size)
 
void * operator new (size_t size, void *ptr)
 
void * operator new[] (size_t size)
 
void * operator new[] (size_t size, void *ptr)
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 
WeakReferenceListget_weak_list () const
 Returns the WeakReferenceList associated with this ReferenceCount object.
 
bool has_weak_list () const
 Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise.
 
void local_object ()
 This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack.
 
void ref () const
 Explicitly increments the reference count.
 
bool ref_if_nonzero () const
 Atomically increases the reference count of this object if it is not zero.
 
bool test_ref_count_integrity () const
 Does some easy checks to make sure that the reference count isn't completely bogus.
 
bool test_ref_count_nonzero () const
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus.
 
virtual bool unref () const
 Explicitly decrements the reference count.
 
bool unref_if_one () const
 Atomically decreases the reference count of this object if it is one.
 
WeakReferenceListweak_ref ()
 Adds the indicated PointerToVoid as a weak reference to this object.
 
void weak_unref ()
 Removes the indicated PointerToVoid as a weak reference to this object.
 

Static Public Member Functions

static PhysxControllerfactory (NxControllerType shapeType)
 
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from PhysxObject
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from TypedReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 
- Static Public Member Functions inherited from TypedObject
static TypeHandle get_class_type ()
 
static void init_type ()
 This function is declared non-inline to work around a compiler bug in g++ 2.96.
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle get_class_type ()
 
static void init_type ()
 

Additional Inherited Members

- Public Types inherited from PhysxEnums
enum  PhysxActorFlag {
  AF_disable_collision = NX_AF_DISABLE_COLLISION , AF_disable_response = NX_AF_DISABLE_RESPONSE , AF_lock_com = NX_AF_LOCK_COM , AF_fluid_disable_collision = NX_AF_FLUID_DISABLE_COLLISION ,
  AF_contact_modification = NX_AF_CONTACT_MODIFICATION , AF_force_cone_friction = NX_AF_FORCE_CONE_FRICTION , AF_user_actor_pair_filtering = NX_AF_USER_ACTOR_PAIR_FILTERING
}
 
enum  PhysxBodyFlag {
  BF_disable_gravity = NX_BF_DISABLE_GRAVITY , Bf_frozen_pos_x = NX_BF_FROZEN_POS_X , BF_frozen_pos_y = NX_BF_FROZEN_POS_Y , BF_frozen_pos_z = NX_BF_FROZEN_POS_Z ,
  BF_frozen_rot_x = NX_BF_FROZEN_ROT_X , BF_frozen_rot_y = NX_BF_FROZEN_ROT_Y , BF_frozen_rot_z = NX_BF_FROZEN_ROT_Z , BF_frozen_pos = NX_BF_FROZEN_POS ,
  BF_frozen_rot = NX_BF_FROZEN_ROT , BF_frozen = NX_BF_FROZEN , BF_kinematic = NX_BF_KINEMATIC , BF_visualization = NX_BF_VISUALIZATION ,
  BF_filter_sleep_vel = NX_BF_FILTER_SLEEP_VEL , BF_energy_sleep_test = NX_BF_ENERGY_SLEEP_TEST
}
 
enum  PhysxBroadPhaseType { BPT_sap_single = NX_BP_TYPE_SAP_SINGLE , BPT_sap_multi = NX_BP_TYPE_SAP_MULTI }
 
enum  PhysxClothFlag {
  CLF_pressure = NX_CLF_PRESSURE , CLF_static = NX_CLF_STATIC , CLF_disable_collision = NX_CLF_DISABLE_COLLISION , CLF_selfcollision = NX_CLF_SELFCOLLISION ,
  CLF_visualization = NX_CLF_VISUALIZATION , CLF_gravity = NX_CLF_GRAVITY , CLF_bending = NX_CLF_BENDING , CLF_bending_ortho = NX_CLF_BENDING_ORTHO ,
  CLF_damping = NX_CLF_DAMPING , CLF_collision_twoway = NX_CLF_COLLISION_TWOWAY , CLF_triangle_collision = NX_CLF_TRIANGLE_COLLISION , CLF_tearable = NX_CLF_TEARABLE ,
  CLF_hardware = NX_CLF_HARDWARE , CLF_comdamping = NX_CLF_COMDAMPING , CLF_validbounds = NX_CLF_VALIDBOUNDS , CLF_fluid_collision = NX_CLF_FLUID_COLLISION ,
  CLF_disable_dynamic_ccd = NX_CLF_DISABLE_DYNAMIC_CCD , CLF_adhere = NX_CLF_ADHERE
}
 
enum  PhysxCombineMode { CM_average = NX_CM_AVERAGE , CM_min = NX_CM_MIN , CM_multiply = NX_CM_MULTIPLY , CM_max = NX_CM_MAX }
 
enum  PhysxContactPairFlag {
  CPF_ignore_pair = NX_IGNORE_PAIR , CPF_notify_on_start_touch = NX_NOTIFY_ON_START_TOUCH , CPF_notify_on_end_touch = NX_NOTIFY_ON_END_TOUCH , CPF_notify_on_touch = NX_NOTIFY_ON_TOUCH ,
  CPF_notify_on_impact = NX_NOTIFY_ON_IMPACT , CPF_notify_on_roll = NX_NOTIFY_ON_ROLL , CPF_notify_on_slide = NX_NOTIFY_ON_SLIDE , CPF_notify_forces = NX_NOTIFY_FORCES ,
  CPF_notify_on_start_touch_threshold = NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD , CPF_notify_on_end_touch_threshold = NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD , CPF_notify_on_touch_threshold = NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD , CPF_notify_contact_modifications = NX_NOTIFY_CONTACT_MODIFICATION
}
 
enum  PhysxD6JointDriveType { D6_joint_drive_position = NX_D6JOINT_DRIVE_POSITION , D6_joint_drive_velocity = NX_D6JOINT_DRIVE_VELOCITY }
 
enum  PhysxD6JointFlag { D6_joint_slerp_drive = NX_D6JOINT_SLERP_DRIVE , D6_joint_gear_disabled = NX_D6JOINT_GEAR_ENABLED }
 
enum  PhysxD6JointMotion { D6_joint_motion_locked = NX_D6JOINT_MOTION_LOCKED , D6_joint_motion_limited = NX_D6JOINT_MOTION_LIMITED , D6_joint_motion_free = NX_D6JOINT_MOTION_FREE }
 
enum  PhysxDistanceJointFlag { DJF_max_distance_enabled = NX_DJF_MAX_DISTANCE_ENABLED , DJF_mix_distance_enabled = NX_DJF_MIN_DISTANCE_ENABLED , DJF_spring_enabled = NX_DJF_SPRING_ENABLED }
 
enum  PhysxFilterOp {
  FO_and = NX_FILTEROP_AND , FO_or = NX_FILTEROP_OR , FO_xor = NX_FILTEROP_XOR , FO_nand = NX_FILTEROP_NAND ,
  FO_nor = NX_FILTEROP_NOR , FO_nxor = NX_FILTEROP_NXOR , FO_swap_and = NX_FILTEROP_SWAP_AND
}
 
enum  PhysxForceFieldCoordinates { FFC_cartesian , FFC_spherical , FFC_cylindrical , FFC_toroidal }
 
enum  PhysxForceFieldShapeGroupFlag { FFSG_exclude_group = NX_FFSG_EXCLUDE_GROUP }
 
enum  PhysxForceMode {
  FM_force = NX_FORCE , FM_impulse = NX_IMPULSE , FM_velocity_change = NX_VELOCITY_CHANGE , FM_smooth_impulse = NX_SMOOTH_IMPULSE ,
  FM_smooth_velocity_change = NX_SMOOTH_VELOCITY_CHANGE , FM_acceleration = NX_ACCELERATION
}
 
enum  PhysxJointFlag { JF_collision_enabled = NX_JF_COLLISION_ENABLED , JF_visualization = NX_JF_VISUALIZATION }
 
enum  PhysxMaterialFlag { MF_anisotropic = NX_MF_ANISOTROPIC , MF_disable_friction = NX_MF_DISABLE_FRICTION , MF_disable_strong_friction = NX_MF_DISABLE_STRONG_FRICTION }
 
enum  PhysxParameter {
  P_penalty_force = NX_PENALTY_FORCE , P_skin_width = NX_SKIN_WIDTH , P_default_sleep_lin_vel_squared = NX_DEFAULT_SLEEP_LIN_VEL_SQUARED , P_default_sleep_ang_vel_squared = NX_DEFAULT_SLEEP_ANG_VEL_SQUARED ,
  P_bounce_threshold = NX_BOUNCE_THRESHOLD , P_dyn_frict_scaling = NX_DYN_FRICT_SCALING , P_sta_frict_scaling = NX_STA_FRICT_SCALING , P_max_angular_velocity = NX_MAX_ANGULAR_VELOCITY ,
  P_continuous_cd = NX_CONTINUOUS_CD , P_visualization_scale = NX_VISUALIZATION_SCALE , P_adaptive_force = NX_ADAPTIVE_FORCE , P_coll_veta_jointed = NX_COLL_VETO_JOINTED ,
  P_trigger_trigger_callback = NX_TRIGGER_TRIGGER_CALLBACK , P_select_hw_algo = NX_SELECT_HW_ALGO , P_ccd_epsilon = NX_CCD_EPSILON , P_solver_convergence_threshold = NX_SOLVER_CONVERGENCE_THRESHOLD ,
  P_bbox_noise_level = NX_BBOX_NOISE_LEVEL , P_implicit_sweep_cache_size = NX_IMPLICIT_SWEEP_CACHE_SIZE , P_default_sleep_energy = NX_DEFAULT_SLEEP_ENERGY , P_constant_fluid_max_packets = NX_CONSTANT_FLUID_MAX_PACKETS ,
  P_constant_fluid_max_particles_per_step = NX_CONSTANT_FLUID_MAX_PARTICLES_PER_STEP , P_asynchronous_mesh_creation = NX_ASYNCHRONOUS_MESH_CREATION , P_force_field_custom_kernel_epsilon = NX_FORCE_FIELD_CUSTOM_KERNEL_EPSILON , P_improved_spring_solver = NX_IMPROVED_SPRING_SOLVER ,
  P_visualize_world_axes = NX_VISUALIZE_WORLD_AXES , P_visualize_body_axes = NX_VISUALIZE_BODY_AXES , P_visualize_body_mass_axes = NX_VISUALIZE_BODY_MASS_AXES , P_visualize_body_lin_velocity = NX_VISUALIZE_BODY_LIN_VELOCITY ,
  P_visualize_body_ang_velocity = NX_VISUALIZE_BODY_ANG_VELOCITY , P_visualize_body_joint_groups = NX_VISUALIZE_BODY_JOINT_GROUPS , P_visualize_joint_local_axes = NX_VISUALIZE_JOINT_LOCAL_AXES , P_visualize_joint_world_axes = NX_VISUALIZE_JOINT_WORLD_AXES ,
  P_visualize_joint_limits = NX_VISUALIZE_JOINT_LIMITS , P_visualize_contact_point = NX_VISUALIZE_CONTACT_POINT , P_visualize_contact_normal = NX_VISUALIZE_CONTACT_NORMAL , P_visualize_contact_error = NX_VISUALIZE_CONTACT_ERROR ,
  P_visualize_contact_force = NX_VISUALIZE_CONTACT_FORCE , P_visualize_actor_axes = NX_VISUALIZE_ACTOR_AXES , P_visualize_collision_aabbs = NX_VISUALIZE_COLLISION_AABBS , P_visualize_collision_shapes = NX_VISUALIZE_COLLISION_SHAPES ,
  P_visualize_collision_axes = NX_VISUALIZE_COLLISION_AXES , P_visualize_collision_compounds = NX_VISUALIZE_COLLISION_COMPOUNDS , P_visualize_collision_vnormals = NX_VISUALIZE_COLLISION_VNORMALS , P_visualize_collision_fnormals = NX_VISUALIZE_COLLISION_FNORMALS ,
  P_visualize_collision_edges = NX_VISUALIZE_COLLISION_EDGES , P_visualize_collision_spheres = NX_VISUALIZE_COLLISION_SPHERES , P_visualize_collision_static = NX_VISUALIZE_COLLISION_STATIC , P_visualize_collision_dynamic = NX_VISUALIZE_COLLISION_DYNAMIC ,
  P_visualize_collision_free = NX_VISUALIZE_COLLISION_FREE , P_visualize_collision_ccd = NX_VISUALIZE_COLLISION_CCD , P_visualize_collision_skeletons = NX_VISUALIZE_COLLISION_SKELETONS , P_visualize_fluid_emitters = NX_VISUALIZE_FLUID_EMITTERS ,
  P_visualize_fluid_position = NX_VISUALIZE_FLUID_POSITION , P_visualize_fluid_velocity = NX_VISUALIZE_FLUID_VELOCITY , P_visualize_fluid_kernel_radius = NX_VISUALIZE_FLUID_KERNEL_RADIUS , P_visualize_fluid_bounds = NX_VISUALIZE_FLUID_BOUNDS ,
  P_visualize_fluid_packets = NX_VISUALIZE_FLUID_PACKETS , P_visualize_fluid_motion_limit = NX_VISUALIZE_FLUID_MOTION_LIMIT , P_visualize_fluid_dyn_collision = NX_VISUALIZE_FLUID_DYN_COLLISION , P_visualize_fluid_stc_collision = NX_VISUALIZE_FLUID_STC_COLLISION ,
  P_visualize_fluid_mesh_packets = NX_VISUALIZE_FLUID_MESH_PACKETS , P_visualize_fluid_drains = NX_VISUALIZE_FLUID_DRAINS , P_visualize_fluid_packet_data = NX_VISUALIZE_FLUID_PACKET_DATA , P_visualize_cloth_mesh = NX_VISUALIZE_CLOTH_MESH ,
  P_visualize_cloth_collisions = NX_VISUALIZE_CLOTH_COLLISIONS , P_visualize_cloth_selfcollisions = NX_VISUALIZE_CLOTH_SELFCOLLISIONS , P_visualize_cloth_workpackets = NX_VISUALIZE_CLOTH_WORKPACKETS , P_visualize_cloth_sleep = NX_VISUALIZE_CLOTH_SLEEP ,
  P_visualize_cloth_sleep_vertex = NX_VISUALIZE_CLOTH_SLEEP_VERTEX , P_visualize_cloth_tearable_vertices = NX_VISUALIZE_CLOTH_TEARABLE_VERTICES , P_visualize_cloth_tearing = NX_VISUALIZE_CLOTH_TEARING , P_visualize_cloth_attachment = NX_VISUALIZE_CLOTH_ATTACHMENT ,
  P_visualize_cloth_validbounds = NX_VISUALIZE_CLOTH_VALIDBOUNDS , P_visualize_softbody_mesh = NX_VISUALIZE_SOFTBODY_MESH , P_visualize_softbody_collisions = NX_VISUALIZE_SOFTBODY_COLLISIONS , P_visualize_softbody_workpackets = NX_VISUALIZE_SOFTBODY_WORKPACKETS ,
  P_visualize_softbody_sleep = NX_VISUALIZE_SOFTBODY_SLEEP , P_visualize_softbody_sleep_vertex = NX_VISUALIZE_SOFTBODY_SLEEP_VERTEX , P_visualize_softbody_tearable_vertices = NX_VISUALIZE_SOFTBODY_TEARABLE_VERTICES , P_visualize_softbody_tearing = NX_VISUALIZE_SOFTBODY_TEARING ,
  P_visualize_softbody_attachment = NX_VISUALIZE_SOFTBODY_ATTACHMENT , P_visualize_softbody_validbounds = NX_VISUALIZE_SOFTBODY_VALIDBOUNDS , P_visualize_active_vertices = NX_VISUALIZE_ACTIVE_VERTICES , P_visualize_force_fields = NX_VISUALIZE_FORCE_FIELDS
}
 
enum  PhysxProjectionMode { PM_none = NX_JPM_NONE , PM_point_mindist = NX_JPM_POINT_MINDIST , PM_linear_mindist = NX_JPM_LINEAR_MINDIST }
 
enum  PhysxPruningStructure {
  PS_none = NX_PRUNING_NONE , PS_octree = NX_PRUNING_OCTREE , PS_quadtree = NX_PRUNING_QUADTREE , PS_dynamic_aabb_tree = NX_PRUNING_DYNAMIC_AABB_TREE ,
  PS_static_aabb_tree = NX_PRUNING_STATIC_AABB_TREE
}
 
enum  PhysxPulleyJointFlag { PJF_is_rigid = NX_PJF_IS_RIGID , PJF_motor_enabled = NX_PJF_MOTOR_ENABLED }
 
enum  PhysxRevoluteJointFlag { RJF_limit_enabled = NX_RJF_LIMIT_ENABLED , RJF_motor_enabled = NX_RJF_MOTOR_ENABLED , RJF_spring_enabled = NX_RJF_SPRING_ENABLED }
 
enum  PhysxSceneFlag {
  SF_disable_sse = NX_SF_DISABLE_SSE , SF_disable_collisions = NX_SF_DISABLE_COLLISIONS , SF_restricted_scene = NX_SF_RESTRICTED_SCENE , SF_disable_scene_mutex = NX_SF_DISABLE_SCENE_MUTEX ,
  SF_force_cone_friction = NX_SF_FORCE_CONE_FRICTION , SF_sequential_primary = NX_SF_SEQUENTIAL_PRIMARY , SF_fluid_performance_hint = NX_SF_FLUID_PERFORMANCE_HINT
}
 
enum  PhysxShapeFlag {
  SF_trigger_on_enter = NX_TRIGGER_ON_ENTER , SF_trigger_on_leave = NX_TRIGGER_ON_LEAVE , SF_trigger_on_stay = NX_TRIGGER_ON_STAY , SF_trigger_enable = NX_TRIGGER_ENABLE ,
  SF_visualization = NX_SF_VISUALIZATION , SF_disable_collision = NX_SF_DISABLE_COLLISION , SF_disable_raycasting = NX_SF_DISABLE_RAYCASTING , SF_disable_response = NX_SF_DISABLE_RESPONSE ,
  SF_disable_scene_queries = NX_SF_DISABLE_SCENE_QUERIES , SF_point_contact_force = NX_SF_POINT_CONTACT_FORCE , SF_feature_indices = NX_SF_FEATURE_INDICES , SF_dynamic_dynamic_ccd = NX_SF_DYNAMIC_DYNAMIC_CCD ,
  SF_fluid_drain = NX_SF_FLUID_DRAIN , SF_fluid_disable_collision = NX_SF_FLUID_DISABLE_COLLISION , SF_fluid_twoway = NX_SF_FLUID_TWOWAY , SF_cloth_drain = NX_SF_CLOTH_DRAIN ,
  SF_cloth_disable_collision = NX_SF_CLOTH_DISABLE_COLLISION , SF_cloth_twoway = NX_SF_CLOTH_TWOWAY , SF_softbody_drain = NX_SF_SOFTBODY_DRAIN , SF_softbody_disable_collision = NX_SF_SOFTBODY_DISABLE_COLLISION ,
  SF_softbody_twoway = NX_SF_SOFTBODY_TWOWAY
}
 
enum  PhysxShapesType { ST_static = NX_STATIC_SHAPES , ST_dynamic = NX_DYNAMIC_SHAPES , ST_all = NX_ALL_SHAPES }
 
enum  PhysxSoftBodyFlag {
  SBF_static = NX_SBF_STATIC , SBF_disable_collision = NX_SBF_DISABLE_COLLISION , SBF_selfcollision = NX_SBF_SELFCOLLISION , SBF_visualization = NX_SBF_VISUALIZATION ,
  SBF_gravity = NX_SBF_GRAVITY , SBF_volume_conservtion = NX_SBF_VOLUME_CONSERVATION , SBF_damping = NX_SBF_DAMPING , SBF_collision_twoway = NX_SBF_COLLISION_TWOWAY ,
  SBF_tearable = NX_SBF_TEARABLE , SBF_hardware = NX_SBF_HARDWARE , SBF_comdamping = NX_SBF_COMDAMPING , SBF_validbounds = NX_SBF_VALIDBOUNDS ,
  SBF_fluid_collision = NX_SBF_FLUID_COLLISION , SBF_disable_dynamic_ccd = NX_SBF_DISABLE_DYNAMIC_CCD , SBF_adhere = NX_SBF_ADHERE
}
 
enum  PhysxSphericalJointFlag {
  SJF_twist_limit_enabled = NX_SJF_TWIST_LIMIT_ENABLED , SJF_swing_limit_enabled = NX_SJF_SWING_LIMIT_ENABLED , SJF_twist_spring_enabled = NX_SJF_TWIST_SPRING_ENABLED , SJF_swing_spring_enabled = NX_SJF_SWING_SPRING_ENABLED ,
  SJF_joint_spring_enabled = NX_SJF_JOINT_SPRING_ENABLED , SJF_perpendicular_dir_constraints = NX_SJF_PERPENDICULAR_DIR_CONSTRAINTS
}
 
enum  PhysxUpAxis { X_up = NX_X , Y_up = NX_Y , Z_up = NX_Z }
 
enum  PhysxVertexAttachmentStatus { VAS_none = NX_CLOTH_VERTEX_ATTACHMENT_NONE , VAS_global = NX_CLOTH_VERTEX_ATTACHMENT_GLOBAL , VAS_shape = NX_CLOTH_VERTEX_ATTACHMENT_SHAPE }
 
enum  PhysxWheelFlag { WF_steerable_input = 1<<0 , WF_steerable_auto = 1<<1 , WF_affected_by_handbrake = 1<<2 , WF_accelerated = 1<<3 }
 
enum  PhysxWheelShapeFlag {
  WSF_wheel_axis_contact_normal = NX_WF_WHEEL_AXIS_CONTACT_NORMAL , WSF_input_lat_slipvelocity = NX_WF_INPUT_LAT_SLIPVELOCITY , WSF_input_lng_slipvelocity = NX_WF_INPUT_LNG_SLIPVELOCITY , WSF_unscaled_spring_behavior = NX_WF_UNSCALED_SPRING_BEHAVIOR ,
  WSF_axle_speed_override = NX_WF_AXLE_SPEED_OVERRIDE , WSF_emulate_legacy_wheel = NX_WF_EMULATE_LEGACY_WHEEL , WSF_clamped_friction = NX_WF_CLAMPED_FRICTION
}
 
- Public Attributes inherited from TypedObject
 get_type
 
- Public Attributes inherited from ReferenceCount
 get_ref_count
 Returns the current reference count.
 

Detailed Description

Abstract base class for character controllers.

Definition at line 30 of file physxController.h.

Member Function Documentation

◆ factory()

PhysxController * PhysxController::factory ( NxControllerType shapeType)
static

Definition at line 42 of file physxController.cxx.

◆ force_init_type()

virtual TypeHandle PhysxController::force_init_type ( )
inlinevirtual

Reimplemented from PhysxObject.

Definition at line 103 of file physxController.h.

◆ get_actor()

PhysxActor * PhysxController::get_actor ( ) const

Retrieves the actor which this controller is associated with.

Definition at line 65 of file physxController.cxx.

Referenced by PhysxScene::create_controller(), and set_local_speed().

◆ get_class_type()

static TypeHandle PhysxController::get_class_type ( )
inlinestatic

Definition at line 92 of file physxController.h.

◆ get_h()

float PhysxController::get_h ( ) const

Returns the heading of the controller in global space.

Definition at line 216 of file physxController.cxx.

◆ get_pos()

LPoint3f PhysxController::get_pos ( ) const

Retruns the position of the controller is global space.

Definition at line 86 of file physxController.cxx.

References PhysxManager::nxExtVec3_to_point3().

◆ get_sharpness()

float PhysxController::get_sharpness ( ) const

Returns the sharpness used to ease the motion curve when the auto-step feature is used.

Default value is 1.0.

Definition at line 113 of file physxController.cxx.

◆ get_type()

virtual TypeHandle PhysxController::get_type ( ) const
inlinevirtual

Reimplemented from PhysxObject.

Definition at line 100 of file physxController.h.

◆ init_type()

static void PhysxController::init_type ( )
inlinestatic

Definition at line 95 of file physxController.h.

◆ ls() [1/2]

void PhysxController::ls ( ) const
inlinevirtual

Implements PhysxObject.

Definition at line 52 of file physxController.I.

◆ ls() [2/2]

void PhysxController::ls ( std::ostream & out,
int indent_level = 0 ) const
inlinevirtual

Implements PhysxObject.

Definition at line 61 of file physxController.I.

◆ release()

void PhysxController::release ( )

Definition at line 29 of file physxController.cxx.

◆ report_scene_changed()

void PhysxController::report_scene_changed ( )

The character controller uses caching in order to speed up collision testing, this caching can not detect when static objects have changed in the scene.

You need to call this method when such changes have been made.

Definition at line 228 of file physxController.cxx.

◆ set_collision()

void PhysxController::set_collision ( bool enable)

Enable/Disable collisions for this controller and actor.

Definition at line 123 of file physxController.cxx.

◆ set_global_speed()

void PhysxController::set_global_speed ( const LVector3f & speed)

Sets the linear speed of the controller in global space.

Definition at line 160 of file physxController.cxx.

◆ set_h()

void PhysxController::set_h ( float heading)

Sets the heading of the controller is global space.

Note: only heading is supported. Pitch and roll are constrained by PhysX in order to alyways keep the character upright.

Definition at line 203 of file physxController.cxx.

◆ set_local_speed()

void PhysxController::set_local_speed ( const LVector3f & speed)

Sets the linear speed of the controller in local coordinates.

Definition at line 172 of file physxController.cxx.

References get_actor(), PhysxActor::get_node_path(), and NodePath::is_empty().

◆ set_min_distance()

void PhysxController::set_min_distance ( float min_dist)

Sets the the minimum travelled distance to consider when moving the controller.

If travelled distance is smaller, the character doesn't move. This is used to stop the recursive motion algorithm when remaining distance to travel is small. The default value is 0.0001.

Definition at line 136 of file physxController.cxx.

◆ set_omega()

void PhysxController::set_omega ( float omega)

Sets the angular velocity (degrees per second) of the controller.

The angular velocity is used to compute the new heading when updating the controller.

Definition at line 191 of file physxController.cxx.

◆ set_pos()

void PhysxController::set_pos ( const LPoint3f & pos)

Sets the position of the controller is global space.

This can be used for initial placement or for teleporting the character.

Definition at line 76 of file physxController.cxx.

References PhysxManager::point3_to_nxExtVec3().

◆ set_sharpness()

void PhysxController::set_sharpness ( float sharpness)

Sharpness is used to smooth motion with a feedback filter, having a value between 0 (so smooth it doesn't move) and 1 (no smoothing = unfiltered motion).

Sharpness can ease the motion curve when the auto-step feature is used with boxes. Default value is 1.0.

Definition at line 99 of file physxController.cxx.

◆ set_step_offset()

void PhysxController::set_step_offset ( float offset)

Sets the step height/offset for the controller.

Definition at line 148 of file physxController.cxx.

◆ start_jump()

void PhysxController::start_jump ( float v0)

Enters the jump mode.

The parameter is the intial upward velocity of the character.

Definition at line 297 of file physxController.cxx.

◆ stop_jump()

void PhysxController::stop_jump ( )

Leaves the jump mode.

This method is automatically called if a ground collision is detected. Usually users need not call this method.

Definition at line 315 of file physxController.cxx.

References EventQueue::get_global_event_queue().

◆ update_controller()

void PhysxController::update_controller ( float dt)

Definition at line 238 of file physxController.cxx.


The documentation for this class was generated from the following files: