Panda3D
Public Member Functions | Static Public Member Functions | List of all members
PhysxCloth Class Reference
Inheritance diagram for PhysxCloth:
PhysxObject PhysxEnums TypedReferenceCount TypedObject ReferenceCount MemoryBase MemoryBase

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...
 
PhysxClothNodecreate_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...
 
PhysxClothNodeget_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...
 
PhysxSceneget_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...
 
PhysxShapeget_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 (std::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...
 
- 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. More...
 
const TypedObjectas_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...
 
TypedObjectoperator= (const TypedObject &copy)=default
 
- Public Member Functions inherited from ReferenceCount
int get_ref_count () const
 
WeakReferenceListget_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 ref_if_nonzero () const
 Atomically increases the reference count of this object if it is not zero. 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...
 
WeakReferenceListweak_ref ()
 Adds the indicated PointerToVoid as a weak reference to this object. More...
 
void weak_unref ()
 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 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. More...
 
- 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. More...
 

Detailed Description

Definition at line 32 of file physxCloth.h.

Member Function Documentation

◆ add_directed_force_at_pos()

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 561 of file physxCloth.cxx.

◆ 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 547 of file physxCloth.cxx.

◆ 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 534 of file physxCloth.cxx.

◆ attach_to_colliding_shapes()

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 389 of file physxCloth.cxx.

◆ 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 373 of file physxCloth.cxx.

◆ 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 357 of file physxCloth.cxx.

◆ attach_vertex_to_shape()

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 426 of file physxCloth.cxx.

◆ detach_from_shape()

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 404 of file physxCloth.cxx.

◆ free_vertex()

void PhysxCloth::free_vertex ( unsigned int  vertexId)

Frees a previously attached cloth point.

Definition at line 416 of file physxCloth.cxx.

◆ get_density()

float PhysxCloth::get_density ( ) const

Gets the cloth density.

Definition at line 195 of file physxCloth.cxx.

◆ get_external_acceleration()

LVector3f PhysxCloth::get_external_acceleration ( ) const

Retrieves the external acceleration which affects all non attached particles of the cloth.

Definition at line 512 of file physxCloth.cxx.

◆ get_flag()

bool PhysxCloth::get_flag ( PhysxClothFlag  flag) const

Retrieves the value of a single flag.

Definition at line 248 of file physxCloth.cxx.

◆ get_group()

unsigned int PhysxCloth::get_group ( ) const

Retrieves the collision group this cloth is part of.

Definition at line 165 of file physxCloth.cxx.

◆ get_groups_mask()

PhysxGroupsMask PhysxCloth::get_groups_mask ( ) const

Gets the 128-bit groups mask used for collision filtering.

Definition at line 271 of file physxCloth.cxx.

◆ get_name()

const char * PhysxCloth::get_name ( ) const

Retrieves the name string.

Definition at line 143 of file physxCloth.cxx.

◆ get_num_particles()

unsigned int PhysxCloth::get_num_particles ( )

Gets the number of cloth particles.

Definition at line 218 of file physxCloth.cxx.

◆ 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 208 of file physxCloth.cxx.

◆ get_scene()

PhysxScene * PhysxCloth::get_scene ( ) const

Returns the scene which this cloth belongs to.

Definition at line 96 of file physxCloth.cxx.

◆ get_sleep_linear_velocity()

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 347 of file physxCloth.cxx.

◆ get_thickness()

float PhysxCloth::get_thickness ( ) const

Gets the cloth thickness.

Definition at line 185 of file physxCloth.cxx.

◆ get_vertex_attachment_pos()

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 473 of file physxCloth.cxx.

◆ 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 456 of file physxCloth.cxx.

◆ 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 442 of file physxCloth.cxx.

◆ get_wind_acceleration()

LVector3f PhysxCloth::get_wind_acceleration ( ) const

Retrieves the acceleration acting normal to the cloth surface at each vertex.

Definition at line 523 of file physxCloth.cxx.

◆ is_sleeping()

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 293 of file physxCloth.cxx.

◆ put_to_sleep()

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 321 of file physxCloth.cxx.

◆ set_external_acceleration()

void PhysxCloth::set_external_acceleration ( LVector3f const &  acceleration)

Sets an external acceleration which affects all non attached particles of the cloth.

Definition at line 487 of file physxCloth.cxx.

◆ set_flag()

void PhysxCloth::set_flag ( PhysxClothFlag  flag,
bool  value 
)

Sets the value of a single flag.

Definition at line 228 of file physxCloth.cxx.

◆ set_group()

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 154 of file physxCloth.cxx.

◆ set_groups_mask()

void PhysxCloth::set_groups_mask ( const PhysxGroupsMask mask)

Sets 128-bit mask used for collision filtering.

Definition at line 259 of file physxCloth.cxx.

◆ set_name()

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 131 of file physxCloth.cxx.

◆ set_sleep_linear_velocity()

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 335 of file physxCloth.cxx.

◆ set_thickness()

void PhysxCloth::set_thickness ( float  thickness)

Sets the cloth thickness (must be positive).

Definition at line 175 of file physxCloth.cxx.

◆ set_wind_acceleration()

void PhysxCloth::set_wind_acceleration ( LVector3f const &  acceleration)

Sets an acceleration acting normal to the cloth surface at each vertex.

Definition at line 499 of file physxCloth.cxx.

◆ wake_up()

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 307 of file physxCloth.cxx.


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