Panda3D
|
Public Member Functions | |
void | add_directed_force_at_pos (LPoint3f const &pos, LVector3f const &force, float radius, PhysxForceMode mode=FM_force) |
Applies a directed force (or impulse) at a particular position. More... | |
void | add_force_at_pos (LPoint3f const &pos, float magnitude, float radius, PhysxForceMode mode=FM_force) |
Applies a radial force (or impulse) at a particular position. More... | |
void | add_force_at_vertex (LVector3f const &force, int vertexId, PhysxForceMode mode=FM_force) |
Applies a force (or impulse) defined in the global coordinate frame, to a particular vertex of the cloth. More... | |
void | attach_to_colliding_shapes () |
Attaches the cloth to all shapes, currently colliding. More... | |
void | attach_to_shape (PhysxShape *shape) |
Attaches the cloth to a shape. More... | |
void | attach_vertex_to_global_pos (unsigned int vertexId, LPoint3f const &pos) |
Attaches a cloth vertex to a position in world space. More... | |
void | attach_vertex_to_shape (unsigned int vertexId, PhysxShape *shape, LPoint3f const &localPos) |
Attaches a cloth vertex to a local position within a shape. More... | |
PhysxClothNode * | create_cloth_node (const char *name) |
void | detach_from_shape (PhysxShape *shape) |
Detaches the cloth from a shape it has been attached to before. More... | |
virtual TypeHandle | force_init_type () |
void | free_vertex (unsigned int vertexId) |
Frees a previously attached cloth point. More... | |
PhysxClothNode * | get_cloth_node () const |
float | get_density () const |
Gets the cloth density. More... | |
LVector3f | get_external_acceleration () const |
Retrieves the external acceleration which affects all non attached particles of the cloth. More... | |
bool | get_flag (PhysxClothFlag flag) const |
Retrieves the value of a single flag. More... | |
unsigned int | get_group () const |
Retrieves the collision group this cloth is part of. More... | |
PhysxGroupsMask | get_groups_mask () const |
Gets the 128-bit groups mask used for collision filtering. More... | |
const char * | get_name () const |
Retrieves the name string. More... | |
unsigned int | get_num_particles () |
Gets the number of cloth particles. More... | |
float | get_relative_grid_spacing () const |
Gets the relative grid spacing for the broad phase. More... | |
PhysxScene * | get_scene () const |
Returns the scene which this cloth belongs to. More... | |
float | get_sleep_linear_velocity () const |
Returns the linear velocity below which an soft body may go to sleep. More... | |
float | get_thickness () const |
Gets the cloth thickness. More... | |
virtual TypeHandle | get_type () const |
LPoint3f | get_vertex_attachment_pos (unsigned int vertexId) const |
Returns the attachment position of the given vertex. More... | |
PhysxShape * | get_vertex_attachment_shape (unsigned int vertexId) const |
Returns the pointer to an attached shape pointer of the given vertex. More... | |
PhysxVertexAttachmentStatus | get_vertex_attachment_status (unsigned int vertexId) const |
Return the attachment status of the given vertex. More... | |
LVector3f | get_wind_acceleration () const |
Retrieves the acceleration acting normal to the cloth surface at each vertex. More... | |
bool | is_sleeping () const |
Returns true if this cloth is sleeping. More... | |
void | link (NxCloth *ptr) |
void | ls () const |
void | ls (ostream &out, int indent_level=0) const |
NxCloth * | ptr () const |
void | put_to_sleep () |
Forces the cloth to sleep. More... | |
void | release () |
void | set_external_acceleration (LVector3f const &acceleration) |
Sets an external acceleration which affects all non attached particles of the cloth. More... | |
void | set_flag (PhysxClothFlag flag, bool value) |
Sets the value of a single flag. More... | |
void | set_group (unsigned int group) |
Sets which collision group this cloth is part of. More... | |
void | set_groups_mask (const PhysxGroupsMask &mask) |
Sets 128-bit mask used for collision filtering. More... | |
void | set_name (const char *name) |
Sets a name string for the object that can be retrieved with get_name(). More... | |
void | set_sleep_linear_velocity (float threshold) |
Sets the linear velocity below which an cloth may go to sleep. More... | |
void | set_thickness (float thickness) |
Sets the cloth thickness (must be positive). More... | |
void | set_wind_acceleration (LVector3f const &acceleration) |
Sets an acceleration acting normal to the cloth surface at each vertex. More... | |
void | unlink () |
void | update () |
void | wake_up (float wakeCounterValue=NX_SLEEP_INTERVAL) |
Wakes up the cloth if it is sleeping. More... | |
![]() | |
TypedReferenceCount (const TypedReferenceCount ©) | |
void | operator= (const TypedReferenceCount ©) |
![]() | |
TypedObject (const TypedObject ©) | |
TypedObject * | as_typed_object () |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
const TypedObject * | as_typed_object () const |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
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. More... | |
bool | is_exact_type (TypeHandle handle) const |
Returns true if the current object is the indicated type exactly. More... | |
bool | is_of_type (TypeHandle handle) const |
Returns true if the current object is or derives from the indicated type. More... | |
void | operator= (const TypedObject ©) |
![]() | |
int | get_ref_count () const |
Returns the current reference count. More... | |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
void | ref () const |
Explicitly increments the reference count. More... | |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
virtual bool | unref () const |
Explicitly decrements the reference count. More... | |
void | weak_ref (WeakPointerToVoid *ptv) |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref (WeakPointerToVoid *ptv) |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
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. More... | |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
Additional Inherited Members | |
![]() | |
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 } |
Definition at line 34 of file physxCloth.h.
void PhysxCloth::add_directed_force_at_pos | ( | LPoint3f const & | pos, |
LVector3f const & | force, | ||
float | radius, | ||
PhysxForceMode | mode = FM_force |
||
) |
Applies a directed force (or impulse) at a particular position.
All vertices within radius will be affected with a quadratic drop-off.
Definition at line 668 of file physxCloth.cxx.
References PhysxManager::point3_to_nxVec3(), and PhysxManager::vec3_to_nxVec3().
Referenced by add_force_at_pos().
void PhysxCloth::add_force_at_pos | ( | LPoint3f const & | pos, |
float | magnitude, | ||
float | radius, | ||
PhysxForceMode | mode = FM_force |
||
) |
Applies a radial force (or impulse) at a particular position.
All vertices within radius will be affected with a quadratic drop-off.
Definition at line 651 of file physxCloth.cxx.
References add_directed_force_at_pos(), and PhysxManager::point3_to_nxVec3().
Referenced by add_force_at_vertex().
void PhysxCloth::add_force_at_vertex | ( | LVector3f const & | force, |
int | vertexId, | ||
PhysxForceMode | mode = FM_force |
||
) |
Applies a force (or impulse) defined in the global coordinate frame, to a particular vertex of the cloth.
Definition at line 635 of file physxCloth.cxx.
References add_force_at_pos(), and PhysxManager::vec3_to_nxVec3().
Referenced by get_wind_acceleration().
void PhysxCloth::attach_to_colliding_shapes | ( | ) |
Attaches the cloth to all shapes, currently colliding.
This method only works with primitive and convex shapes. Since the inside of a general triangle mesh is not clearly defined.
Definition at line 463 of file physxCloth.cxx.
References detach_from_shape().
Referenced by attach_to_shape().
void PhysxCloth::attach_to_shape | ( | PhysxShape * | shape | ) |
Attaches the cloth to a shape.
All cloth points currently inside the shape are attached.
This method only works with primitive and convex shapes. Since the inside of a general triangle mesh is not clearly defined.
Definition at line 443 of file physxCloth.cxx.
References attach_to_colliding_shapes().
Referenced by attach_vertex_to_global_pos().
void PhysxCloth::attach_vertex_to_global_pos | ( | unsigned int | vertexId, |
LPoint3f const & | pos | ||
) |
Attaches a cloth vertex to a position in world space.
Definition at line 424 of file physxCloth.cxx.
References attach_to_shape(), LVecBase3f::is_nan(), and PhysxManager::point3_to_nxVec3().
Referenced by get_sleep_linear_velocity().
void PhysxCloth::attach_vertex_to_shape | ( | unsigned int | vertexId, |
PhysxShape * | shape, | ||
LPoint3f const & | localPos | ||
) |
Attaches a cloth vertex to a local position within a shape.
Definition at line 508 of file physxCloth.cxx.
References get_vertex_attachment_status(), LVecBase3f::is_nan(), and PhysxManager::point3_to_nxVec3().
Referenced by free_vertex().
void PhysxCloth::detach_from_shape | ( | PhysxShape * | shape | ) |
Detaches the cloth from a shape it has been attached to before.
If the cloth has not been attached to the shape before, the call has no effect.
Definition at line 481 of file physxCloth.cxx.
References free_vertex().
Referenced by attach_to_colliding_shapes().
void PhysxCloth::free_vertex | ( | unsigned int | vertexId | ) |
Frees a previously attached cloth point.
Definition at line 495 of file physxCloth.cxx.
References attach_vertex_to_shape().
Referenced by detach_from_shape().
float PhysxCloth::get_density | ( | ) | const |
Gets the cloth density.
Definition at line 227 of file physxCloth.cxx.
References get_relative_grid_spacing().
Referenced by get_thickness().
LVector3f PhysxCloth::get_external_acceleration | ( | ) | const |
Retrieves the external acceleration which affects all non attached particles of the cloth.
Definition at line 608 of file physxCloth.cxx.
References get_wind_acceleration(), PhysxManager::nxVec3_to_vec3(), and LVector3f::zero().
Referenced by set_wind_acceleration().
bool PhysxCloth::get_flag | ( | PhysxClothFlag | flag | ) | const |
Retrieves the value of a single flag.
Definition at line 290 of file physxCloth.cxx.
References set_groups_mask().
Referenced by set_flag().
unsigned int PhysxCloth::get_group | ( | ) | const |
Retrieves the collision group this cloth is part of.
Definition at line 191 of file physxCloth.cxx.
References set_thickness().
Referenced by set_group().
PhysxGroupsMask PhysxCloth::get_groups_mask | ( | ) | const |
Gets the 128-bit groups mask used for collision filtering.
Definition at line 318 of file physxCloth.cxx.
References is_sleeping().
Referenced by set_groups_mask().
const char * PhysxCloth::get_name | ( | ) | const |
Retrieves the name string.
Definition at line 164 of file physxCloth.cxx.
References set_group().
Referenced by set_name().
unsigned int PhysxCloth::get_num_particles | ( | ) |
Gets the number of cloth particles.
Definition at line 256 of file physxCloth.cxx.
References set_flag().
Referenced by get_relative_grid_spacing().
float PhysxCloth::get_relative_grid_spacing | ( | ) | const |
Gets the relative grid spacing for the broad phase.
The cloth is represented by a set of world aligned cubical cells in broad phase. The size of these cells is determined by multiplying the length of the diagonal of the AABB of the initial soft body size with this constant.
Definition at line 244 of file physxCloth.cxx.
References get_num_particles().
Referenced by get_density().
PhysxScene * PhysxCloth::get_scene | ( | ) | const |
Returns the scene which this cloth belongs to.
Definition at line 107 of file physxCloth.cxx.
References set_name().
float PhysxCloth::get_sleep_linear_velocity | ( | ) | const |
Returns the linear velocity below which an soft body may go to sleep.
cloths whose linear velocity is above this threshold will not be put to sleep.
Definition at line 411 of file physxCloth.cxx.
References attach_vertex_to_global_pos().
Referenced by set_sleep_linear_velocity().
float PhysxCloth::get_thickness | ( | ) | const |
Gets the cloth thickness.
Definition at line 215 of file physxCloth.cxx.
References get_density().
Referenced by set_thickness().
LPoint3f PhysxCloth::get_vertex_attachment_pos | ( | unsigned int | vertexId | ) | const |
Returns the attachment position of the given vertex.
If the vertex is attached to shape, the position local to the shape's pose is returned. If the vertex is not attached, the return value is undefined.
Definition at line 563 of file physxCloth.cxx.
References PhysxManager::nxVec3_to_point3(), set_external_acceleration(), and LPoint3f::zero().
Referenced by get_vertex_attachment_shape().
PhysxShape * PhysxCloth::get_vertex_attachment_shape | ( | unsigned int | vertexId | ) | const |
Returns the pointer to an attached shape pointer of the given vertex.
If the vertex is not attached or attached to a global position, NULL is returned.
Definition at line 542 of file physxCloth.cxx.
References get_vertex_attachment_pos().
Referenced by get_vertex_attachment_status().
PhysxEnums::PhysxVertexAttachmentStatus PhysxCloth::get_vertex_attachment_status | ( | unsigned int | vertexId | ) | const |
Return the attachment status of the given vertex.
Definition at line 526 of file physxCloth.cxx.
References get_vertex_attachment_shape().
Referenced by attach_vertex_to_shape().
LVector3f PhysxCloth::get_wind_acceleration | ( | ) | const |
Retrieves the acceleration acting normal to the cloth surface at each vertex.
Definition at line 621 of file physxCloth.cxx.
References add_force_at_vertex(), PhysxManager::nxVec3_to_vec3(), and LVector3f::zero().
Referenced by get_external_acceleration().
bool PhysxCloth::is_sleeping | ( | ) | const |
Returns true if this cloth is sleeping.
When a cloth does not move for a period of time, it is no longer simulated in order to save time. This state is called sleeping. However, because the object automatically wakes up when it is either touched by an awake object, or one of its properties is changed by the user, the entire sleep mechanism should be transparent to the user.
Definition at line 344 of file physxCloth.cxx.
References wake_up().
Referenced by get_groups_mask().
void PhysxCloth::put_to_sleep | ( | ) |
Forces the cloth to sleep.
The cloth will stay asleep until the next call to simulate, and will not wake up until then even when otherwise it would (for example a force is applied to it). It can however wake up during the next do_physics call.
Definition at line 379 of file physxCloth.cxx.
References set_sleep_linear_velocity().
Referenced by wake_up().
void PhysxCloth::set_external_acceleration | ( | LVector3f const & | acceleration | ) |
Sets an external acceleration which affects all non attached particles of the cloth.
Definition at line 578 of file physxCloth.cxx.
References LVecBase3f::is_nan(), set_wind_acceleration(), and PhysxManager::vec3_to_nxVec3().
Referenced by get_vertex_attachment_pos().
void PhysxCloth::set_flag | ( | PhysxClothFlag | flag, |
bool | value | ||
) |
Sets the value of a single flag.
Definition at line 268 of file physxCloth.cxx.
References get_flag().
Referenced by get_num_particles().
void PhysxCloth::set_group | ( | unsigned int | group | ) |
Sets which collision group this cloth is part of.
Collision group must be between 0 and 31.
Definition at line 177 of file physxCloth.cxx.
References get_group().
Referenced by get_name().
void PhysxCloth::set_groups_mask | ( | const PhysxGroupsMask & | mask | ) |
Sets 128-bit mask used for collision filtering.
Definition at line 303 of file physxCloth.cxx.
References get_groups_mask().
Referenced by get_flag().
void PhysxCloth::set_name | ( | const char * | name | ) |
Sets a name string for the object that can be retrieved with get_name().
This is for debugging and is not used by the engine.
Definition at line 150 of file physxCloth.cxx.
References get_name().
Referenced by get_scene().
void PhysxCloth::set_sleep_linear_velocity | ( | float | threshold | ) |
Sets the linear velocity below which an cloth may go to sleep.
Cloths whose linear velocity is above this threshold will not be put to sleep.
Setting the sleep angular/linear velocity only makes sense when the BF_energy_sleep_test is not set.
Definition at line 397 of file physxCloth.cxx.
References get_sleep_linear_velocity().
Referenced by put_to_sleep().
void PhysxCloth::set_thickness | ( | float | thickness | ) |
Sets the cloth thickness (must be positive).
Definition at line 203 of file physxCloth.cxx.
References get_thickness().
Referenced by get_group().
void PhysxCloth::set_wind_acceleration | ( | LVector3f const & | acceleration | ) |
Sets an acceleration acting normal to the cloth surface at each vertex.
Definition at line 593 of file physxCloth.cxx.
References get_external_acceleration(), LVecBase3f::is_nan(), and PhysxManager::vec3_to_nxVec3().
Referenced by set_external_acceleration().
void PhysxCloth::wake_up | ( | float | wakeCounterValue = NX_SLEEP_INTERVAL | ) |
Wakes up the cloth if it is sleeping.
The wakeCounterValue determines how long until the body is put to sleep, a value of zero means that the body is sleeping. wake_up(0) is equivalent to PhysxCloth::put_to_sleep().
Definition at line 361 of file physxCloth.cxx.
References put_to_sleep().
Referenced by is_sleeping().