var searchIndex = {}; searchIndex["nphysics2d"] = {"doc":"nphysics\n========\n**nphysics** is a 2 and 3-dimensional physics engine for games and animations.\nIt uses [ncollide](http://ncollide.org) for collision detection, and\n[nalgebra](http://nalgebra.org) for vector/matrix math. 2D and 3D\nimplementations both share the same code!","items":[[0,"aliases","nphysics2d","Aliases for complicated parameterized types.",null,null],[6,"DefaultBroadPhase","nphysics2d::aliases","The type of the broad phase used by the world by default.",null,null],[0,"integration","nphysics2d","Position and orientation update of rigid bodies.",null,null],[3,"BodyExpEulerIntegrator","nphysics2d::integration","An explicit Euler integrator.",null,null],[3,"BodySmpEulerIntegrator","","A semi-implicit Euler integrator.",null,null],[3,"BodyForceGenerator","","A constant linear and angular force generator.",null,null],[3,"BodyDamping","","A linear and angular velocity damper.",null,null],[3,"TranslationalCCDMotionClamping","","Handles Continuous Collision Detection.",null,null],[0,"integrator","","Trait implemented by every integrators.",null,null],[8,"Integrator","nphysics2d::integration::integrator","Trait implemented by every integrator.",null,null],[10,"update","","Updates the position and orientation of the object `o` after a time step of `dt`.",0,null],[11,"new","nphysics2d::integration","Creates a new `BodyExpEulerIntegrator`.",1,{"inputs":[],"output":{"name":"bodyexpeulerintegrator"}}],[11,"update","","",1,null],[11,"new","","Creates a new `BodySmpEulerIntegrator`.",2,{"inputs":[],"output":{"name":"bodysmpeulerintegrator"}}],[11,"update","","",2,null],[11,"new","","Creates a new `BodyForceGenerator`.",3,{"inputs":[{"name":"vector"},{"name":"orientation"}],"output":{"name":"bodyforcegenerator"}}],[11,"lin_acc","","The linear acceleration applied by this force generator.",3,null],[11,"set_lin_acc","","Sets the linear acceleration applied by this force generator.",3,null],[11,"ang_acc","","The angular acceleration applied by this force generator.",3,null],[11,"set_ang_acc","","Sets the angular acceleration applied by this force generator.",3,null],[11,"update","","",3,null],[11,"new","","Creates a new `BodyDamping`.",4,{"inputs":[{"name":"n"},{"name":"n"}],"output":{"name":"bodydamping"}}],[11,"update","","",4,null],[11,"new","","Creates a new `TranslationalCCDMotionClamping` to enable continuous collision detection to\nfast-moving rigid bodies.",5,{"inputs":[],"output":{"name":"translationalccdmotionclamping"}}],[11,"add_ccd_to","","Enables continuous collision for the given rigid body.",5,null],[11,"remove_ccd_from","","Enables continuous collision for the given rigid body.",5,null],[11,"update","","Update the time of impacts and apply motion clamping when necessary.",5,null],[0,"euler","","Euler integration functions.",null,null],[5,"explicit_integrate","nphysics2d::integration::euler","Explicit Euler integrator.",null,null],[5,"explicit_integrate_wo_rotation","","Explicit Euler integrator. This will not update the rotational components.",null,null],[5,"semi_implicit_integrate","","Semi-implicit Euler integrator.",null,null],[5,"semi_implicit_integrate_wo_rotation","","Semi-implicit Euler integrator. This will not update the rotational components.",null,null],[5,"displacement","","Computes the transformation matrix required to move an object with a `lin_vel` linear velocity,\na `ang_vil` angular velocity, and a center of mass `center_of_mass`, during the time step `dt`.",null,{"inputs":[{"name":"n"},{"name":"matrix"},{"name":"point"},{"name":"vector"},{"name":"orientation"}],"output":{"name":"matrix"}}],[0,"detection","nphysics2d","Collision detection and joints.",null,null],[3,"ActivationManager","nphysics2d::detection","Structure that monitors island-based activation/deactivation of objects.",null,null],[0,"constraint","","Data structure to describe a constraint between two rigid bodies.",null,null],[4,"Constraint","nphysics2d::detection::constraint","A constraint between two rigid bodies.",null,null],[13,"RBRB","","A contact.",6,null],[13,"BallInSocket","","A ball-in-socket joint.",6,null],[13,"Fixed","","A fixed joint.",6,null],[11,"clone","","",6,null],[0,"detector","nphysics2d::detection","Collision detector.",null,null],[8,"Detector","nphysics2d::detection::detector","Trait implemented by collision detectors.",null,null],[10,"update","","Updates the collision detector, given an (already updated) broad-phase, and an activation\nmanager.",7,null],[10,"interferences","","Collects every interferences detected by this collision detector.",7,null],[0,"joint","nphysics2d::detection","Joint handling.",null,null],[3,"Anchor","nphysics2d::detection::joint","One of the two end points of a joint.",null,null],[12,"body","","The body attached to this anchor.",8,null],[12,"position","","The attach position, in local coordinates of the attached body.",8,null],[3,"BallInSocket","","A ball-in-socket joint.",null,null],[3,"Fixed","","A joint that prevents any relative movement (linear and angular) between two objects.",null,null],[3,"JointManager","","Structure that handles creation and removal of joints.",null,null],[11,"new","","Creates a new `JointManager`.",9,{"inputs":[],"output":{"name":"jointmanager"}}],[11,"joints","","Joints handled by this manager.",9,null],[11,"joints_with_body","","List of joints attached to a specific body.",9,null],[11,"add_ball_in_socket","","Add a `BallInSocket` joint to this manager.",9,null],[11,"remove_ball_in_socket","","Removes a `BallInSocket` joint from this manager.",9,null],[11,"add_fixed","","Add a `Fixed` joint to this manager.",9,null],[11,"remove_joint","","Removes a joint from this manager.",9,null],[11,"remove","","Removes every joint attached to a given rigid body.",9,null],[11,"update","","Activates the objects that interact with an activated object through a joint.",9,null],[11,"constraints","","Collects all the constraints caused by joints.",9,null],[11,"new","","Creates a new `Anchor` at a given `position` on a `body` local space.",8,{"inputs":[{"name":"option"},{"name":"p"}],"output":{"name":"anchor"}}],[11,"center_of_mass","","The center of mass of the body attached to this anchor.",8,null],[11,"new","","Creates a ball-in-socket joint.",10,{"inputs":[{"name":"anchor"},{"name":"anchor"}],"output":{"name":"ballinsocket"}}],[11,"up_to_date","","Tells if this joint has been modified by the user.",10,null],[11,"set_local1","","Sets the the second anchor position.",10,null],[11,"set_local2","","Sets the the second anchor position.",10,null],[11,"anchor1","","The first anchor affected by this joint.",10,null],[11,"anchor2","","The second anchor affected by this joint.",10,null],[11,"anchor1_pos","","The first attach point in global coordinates.",10,null],[11,"anchor2_pos","","The second attach point in global coordinates.",10,null],[11,"new","","Creates a new `Fixed` joint.",11,{"inputs":[{"name":"anchor"},{"name":"anchor"}],"output":{"name":"fixed"}}],[11,"up_to_date","","Tells if the joint has been modified by the user.",11,null],[11,"set_local1","","Sets the the second anchor position.",11,null],[11,"set_local2","","Sets the the second anchor position.",11,null],[11,"anchor1","","The first anchor affected by this joint.",11,null],[11,"anchor2","","The second anchor affected by this joint.",11,null],[11,"anchor1_pos","","The first attach point in global coordinates.",11,null],[11,"anchor2_pos","","The second attach point in global coordinates.",11,null],[0,"joint","","",null,null],[8,"Joint","nphysics2d::detection::joint::joint","Trait implemented by every joint.",null,null],[10,"anchor1","","The first anchor affected by this joint.",12,null],[10,"anchor2","","The second anchor affected by this joint.",12,null],[10,"anchor1_pos","","The first attach point in global coordinates.",12,null],[10,"anchor2_pos","","The second attach point in global coordinates.",12,null],[11,"new","nphysics2d::detection","Creates a new `ActivationManager`.",13,{"inputs":[{"name":"n"}],"output":{"name":"activationmanager"}}],[11,"deferred_activate","","Notify the `ActivationManager` that is has to activate an object at the next update.",13,null],[11,"update","","Update the activation manager, activating and deactivating objects when needed.",13,null],[0,"resolution","nphysics2d","Constraint resolution.",null,null],[3,"AccumulatedImpulseSolver","nphysics2d::resolution","Constraint solver using the projected gauss seidel algorithm and warm-starting.",null,null],[3,"Velocities","","Structure holding the result of the projected gauss seidel solver.",null,null],[12,"lv","","Linear velocity.",14,null],[12,"av","","Angular velocity.",14,null],[3,"ImpulseCache","","",null,null],[3,"ContactIdentifier","","The identifier of a contact stored in the impulse cache.",null,null],[3,"VelocityConstraint","","A constraint of velocity at a point of contact.",null,null],[12,"normal","","The contact normal.",15,null],[12,"weighted_normal1","","The contact normal multiplied by the first body's inverse mass.",15,null],[12,"weighted_normal2","","The contact normal multiplied by the second body's inverse mass.",15,null],[12,"rot_axis1","","The first body rotation axis.",15,null],[12,"weighted_rot_axis1","","The first body rotation axis multiplied by its inverse inertia.",15,null],[12,"rot_axis2","","The second body rotation axis.",15,null],[12,"weighted_rot_axis2","","The second body rotation axis multiplied by its inverse inertia.",15,null],[12,"inv_projected_mass","","The inverse of the sum of linear and angular inertia of both bodies.",15,null],[12,"impulse","","The total impulse applied.",15,null],[12,"lobound","","The lower bound of the impulse.",15,null],[12,"hibound","","The upper bound of the impulse.",15,null],[12,"objective","","The target delta velocity.",15,null],[12,"id1","","The id of the first body.",15,null],[12,"id2","","The id of the second body.",15,null],[12,"friction_limit_id","","The id of the friction constraint.",15,null],[12,"friction_coeff","","The friction coefficient on this contact.",15,null],[4,"CorrectionMode","","The correction coefficient used by the constraint solver.",null,null],[13,"Velocity","","Penetration are solved by the penalty method.",16,null],[13,"VelocityAndPosition","","Penetration are solved by the penalty method together with a hard repositioning.",16,null],[13,"VelocityAndPositionThresold","","Penetration are solved by the penalty method together with a hard repositioning.",16,null],[5,"projected_gauss_seidel_solve","","Solve a set of velocity constraints using the projected gauss seidel solver.",null,null],[0,"solver","","",null,null],[8,"Solver","nphysics2d::resolution::solver","Trait implemented by constraint solvers.",null,null],[10,"solve","","Solve the set of constraints of type `I`.",17,null],[11,"eq","nphysics2d::resolution","",18,null],[11,"ne","","",18,null],[11,"hash","","",18,null],[11,"new","","",18,{"inputs":[{"name":"usize"},{"name":"usize"},{"name":"point"},{"name":"n"}],"output":{"name":"contactidentifier"}}],[11,"new","","",19,{"inputs":[{"name":"n"},{"name":"usize"}],"output":{"name":"impulsecache"}}],[11,"insert","","",19,null],[11,"hash","","",19,null],[11,"hash_mut","","",19,null],[11,"push_impulsions","","",19,null],[11,"reserved_impulse_offset","","",19,null],[11,"impulsions_at","","",19,null],[11,"len","","",19,null],[11,"clear","","",19,null],[11,"swap","","",19,null],[11,"new","","Creates a new `AccumulatedImpulseSolver`.",20,{"inputs":[{"name":"n"},{"name":"correctionmode"},{"name":"n"},{"name":"n"},{"name":"usize"},{"name":"usize"}],"output":{"name":"accumulatedimpulsesolver"}}],[11,"num_first_order_iter","","Gets the number of iteration done by the penetration depth correction solver.",20,null],[11,"set_num_first_order_iter","","Sets the number of iteration done by the penetration depth correction solver.",20,null],[11,"num_second_order_iter","","Gets the number of iteration done by the velocity constraint solver.",20,null],[11,"set_num_second_order_iter","","Sets the number of iteration done by the velocity constraint solver.",20,null],[11,"solve","","",20,null],[11,"clone","","",14,null],[11,"fmt","","",14,null],[11,"eq","","",14,null],[11,"ne","","",14,null],[11,"new","","Creates a new `Velocities`.",14,{"inputs":[],"output":{"name":"velocities"}}],[11,"reset","","Reset this structure to zero.",14,null],[11,"clone","","",15,null],[11,"fmt","","",15,null],[11,"eq","","",15,null],[11,"ne","","",15,null],[11,"new","","Creates a new velocity constraint with all terms initialized to zero.",15,{"inputs":[],"output":{"name":"velocityconstraint"}}],[11,"vel_corr_factor","","The velocity correction coefficient.",16,null],[11,"pos_corr_factor","","The position correction coefficient.",16,null],[11,"min_depth_for_pos_corr","","The minimum penetration depth required to switch on the hard repositioning based method.",16,null],[11,"max_depth_for_vel_corr","","The max penetration depth the velocity correction will attempt to correct.",16,null],[0,"world","nphysics2d","The physics world.",null,null],[3,"World","nphysics2d::world","The physical world.",null,null],[11,"new","","Creates a new physics world.",21,{"inputs":[],"output":{"name":"world"}}],[11,"step","","Updates the physics world.",21,null],[11,"add_rigid_body","","Adds a rigid body to the physics world.",21,null],[11,"add_sensor","","Adds a sensor to the physics world.",21,null],[11,"remove_rigid_body","","Remove a rigid body from the physics world.",21,null],[11,"remove_sensor","","Remove a sensor from the physics world.",21,null],[11,"forces_generator","","Gets a mutable reference to the force generator.",21,null],[11,"integrator","","Gets a mutable reference to the position and orientation integrator.",21,null],[11,"ccd_manager","","Gets a mutable reference to the CCD manager.",21,null],[11,"joint_manager","","Gets a mutable reference to the joint manager.",21,null],[11,"constraints_solver","","Gets a mutable reference to the constraint solver.",21,null],[11,"collision_world","","Gets the underlying collision world.",21,null],[11,"set_gravity","","Sets the linear acceleration afecting every dynamic rigid body.",21,null],[11,"gravity","","Gets the linear acceleration afecting every dynamic rigid body.",21,null],[11,"add_ccd_to","","Adds continuous collision detection to the given rigid body.",21,null],[11,"add_ball_in_socket","","Adds a ball-in-socket joint to the world.",21,null],[11,"remove_ball_in_socket","","Removes a ball-in-socket joint from the world.",21,null],[11,"add_fixed","","Adds a fixed joint to the world.",21,null],[11,"remove_fixed","","Removes a fixed joint from the world.",21,null],[11,"constraints","","Collects every constraincts detected since the last update.",21,null],[11,"rigid_bodies","","An iterator visiting all rigid bodies on this world.",21,null],[11,"sensors","","An iterator visiting all sensors on this world.",21,null],[11,"register_broad_phase_pair_filter","","Adds a filter that tells if a potential collision pair should be ignored or not.",21,null],[11,"unregister_broad_phase_pair_filter","","Removes the pair filter named `name`.",21,null],[11,"register_contact_handler","","Registers a handler for contact start/stop events.",21,null],[11,"unregister_contact_handler","","Unregisters a handler for contact start/stop events.",21,null],[11,"register_proximity_handler","","Registers a handler for proximity status change events.",21,null],[11,"unregister_proximity_handler","","Unregisters a handler for proximity status change events.",21,null],[6,"WorldBroadPhase","","The default broad phase.",null,null],[6,"RigidBodies","","An iterator visiting rigid bodies.",null,null],[6,"RigidBodyCollisionWorld","","Type of the collision world containing rigid bodies.",null,null],[6,"WorldCollisionObject","","Type of a collision object containing `WorldObject` body as its data.",null,null],[0,"object","nphysics2d","Objects that may be added to the physical world.",null,null],[3,"RigidBody","nphysics2d::object","The rigid body structure.",null,null],[3,"Sensor","","An object capable of detecting interferances with other entities without interacting with them.",null,null],[3,"RigidBodyCollisionGroups","","Groups of collision used to filter which object collide with which other one.\nnphysics use a specific group for its own purposes (i.e. the group of static objects).\nThe `group 29` is reserved and you cannot use it.",null,null],[3,"SensorCollisionGroups","","Groups of collision used to filter which object collide with which other one.\nnphysics use a specific group for its own purposes (i.e. the group of static objects).\nThe `group 29` is reserved and you cannot use it.",null,null],[4,"ActivationState","","The activation state of a rigid body.",null,null],[13,"Active","","The rigid body is active with a not-zero energy.",22,null],[13,"Inactive","","The rigid body is inactive.",22,null],[13,"Deleted","","The rigid body has been removed from the physics engine.",22,null],[4,"RigidBodyState","","The movement state of a rigid body.",null,null],[13,"Static","","The rigid body cannot move.",23,null],[13,"Dynamic","","The rigid body can move.",23,null],[4,"WorldObject","","An object that has been added to a World.",null,null],[13,"RigidBody","","A rigid body handle.",24,null],[13,"Sensor","","A sensor handle.",24,null],[4,"WorldObjectBorrowed","","Reference to a world object.",null,null],[13,"RigidBody","","A borrowed rigid body handle.",25,null],[13,"Sensor","","A borrowed sensor handle.",25,null],[4,"WorldObjectBorrowedMut","","Mutable reference to a world object.",null,null],[13,"RigidBody","","A mutably borrowed rigid body handle.",26,null],[13,"Sensor","","A mutably borrowed sensor handle.",26,null],[11,"decode","","",23,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",23,null],[11,"clone","","",23,null],[11,"eq","","",23,null],[11,"fmt","","",23,null],[11,"decode","","",22,{"inputs":[{"name":"__dn"}],"output":{"name":"result"}}],[11,"encode","","",22,null],[11,"clone","","",22,null],[11,"eq","","",22,null],[11,"ne","","",22,null],[11,"fmt","","",22,null],[11,"energy","","The energy accumulated other several frames.",22,null],[11,"clone","","Clones this rigid body but not its associated user-data.",27,null],[11,"position","","Gets a reference to this body's transform.",27,null],[11,"shape","","A reference to this body's shape handle.",27,null],[11,"margin","","The margin surrounding this object's shape.",27,null],[11,"set_margin","","Sets the margin surrounding this object's shape.",27,null],[11,"center_of_mass","","Gets a reference to this body's center of mass.",27,null],[11,"mass","","Gets this body's mass, if it has one.",27,null],[11,"restitution","","Gets this body's restitution coefficent.",27,null],[11,"friction","","Gets this body's friction coefficient.",27,null],[11,"is_active","","Indicates whether or not this rigid body is active.",27,null],[11,"deactivation_threshold","","The velocity threshold bellow whith the rigid body might be deactivated.",27,null],[11,"set_deactivation_threshold","","Set the velocity threshold bellow whith the rigid body might be deactivated.",27,null],[11,"new_dynamic","","Creates a new rigid body that can move.",27,{"inputs":[{"name":"g"},{"name":"n"},{"name":"n"},{"name":"n"}],"output":{"name":"rigidbody"}}],[11,"new_static","","Creates a new rigid body that cannot move.",27,{"inputs":[{"name":"g"},{"name":"n"},{"name":"n"}],"output":{"name":"rigidbody"}}],[11,"new","","Creates a new rigid body with a given shape.",27,{"inputs":[{"name":"shapehandle"},{"name":"option"},{"name":"n"},{"name":"n"}],"output":{"name":"rigidbody"}}],[11,"can_move","","Indicates whether this rigid body is static or dynamic.",27,null],[11,"lin_acc_scale","","Gets the linear acceleraction scale of this rigid body.",27,null],[11,"set_lin_acc_scale","","Sets the linear acceleration scale of this rigid body.",27,null],[11,"ang_acc_scale","","Gets the angular acceleration scale of this rigid body.",27,null],[11,"set_ang_acc_scale","","Sets the angular acceleration scale of this rigid body.",27,null],[11,"lin_vel","","Get the linear velocity of this rigid body.",27,null],[11,"set_lin_vel","","Sets the linear velocity of this rigid body.",27,null],[11,"lin_acc","","Gets the linear acceleration of this rigid body.",27,null],[11,"ang_vel","","Gets the angular velocity of this rigid body.",27,null],[11,"set_ang_vel","","Sets the angular velocity of this rigid body.",27,null],[11,"ang_acc","","Gets the angular acceleration of this rigid body.",27,null],[11,"clear_forces","","Resets linear and angular force.",27,null],[11,"clear_linear_force","","Resets linear force.",27,null],[11,"clear_angular_force","","Resets angular force.",27,null],[11,"append_lin_force","","Adds an additional linear force.",27,null],[11,"append_ang_force","","Adds an additional angular force.",27,null],[11,"append_force_wrt_point","","Adds an additional force acting at a point different to the center of mass.",27,null],[11,"apply_central_impulse","","Applies a one-time central impulse.",27,null],[11,"apply_angular_momentum","","Applies a one-time angular impulse.",27,null],[11,"apply_impulse_wrt_point","","Applies a one-time impulse to a point relative to the center of mass.",27,null],[11,"inv_mass","","Gets the inverse mass of this rigid body.",27,null],[11,"set_inv_mass","","Sets the inverse mass of this rigid body.",27,null],[11,"inv_inertia","","Gets the inverse inertia tensor of this rigid body.",27,null],[11,"set_inv_inertia","","Sets the inverse inertia tensor of this rigid body.",27,null],[11,"append_transformation","","Appends a transformation to this rigid body.",27,null],[11,"prepend_transformation","","Prepends a transformation to this rigid body.",27,null],[11,"set_transformation","","Sets the transformation of this rigid body.",27,null],[11,"append_translation","","Appends a translation to this rigid body.",27,null],[11,"prepend_translation","","Prepends a translation to this rigid body.",27,null],[11,"set_translation","","Stes the translation of this rigid body.",27,null],[11,"append_rotation","","Appends a rotation to this rigid body.",27,null],[11,"prepend_rotation","","Prepends a rotation to this rigid body.",27,null],[11,"set_rotation","","Sets the rotation of this rigid body.",27,null],[11,"collision_groups","","Reference to the collision groups of this rigid body.",27,null],[11,"set_collision_groups","","Set the new collisions groups of this rigid body.",27,null],[11,"user_data","","Reference to user-defined data attached to this rigid body.",27,null],[11,"user_data_mut","","Mutable reference to user-defined data attached to this rigid body.",27,null],[11,"set_user_data","","Attach some user-defined data to this rigid body and return the old one.",27,null],[11,"bounding_volume","","",27,null],[11,"bounding_volume","","",27,null],[11,"new","","Creates a new sensor.",28,{"inputs":[{"name":"g"},{"name":"option"}],"output":{"name":"sensor"}}],[11,"new_with_shared_shape","","Creates a new senson with a given shared shape.",28,{"inputs":[{"name":"shapehandle"},{"name":"option"}],"output":{"name":"sensor"}}],[11,"user_data","","Reference to user-defined data attached to this sensor.",28,null],[11,"user_data_mut","","Mutable reference to user-defined data attached to this sensor.",28,null],[11,"set_user_data","","Attach some user-defined data to this sensor and return the old one.",28,null],[11,"interfering_bodies","","List of rigid bodies geometrically intersecting this sensor.",28,null],[11,"interfering_sensors","","List of sensors geometrically intersecting this sensor.",28,null],[11,"relative_position","","This sensor's position relative to `self.parent()`.",28,null],[11,"set_relative_position","","Sets the sensor position relative to `self.parent()`.",28,null],[11,"position","","This sensor's absolute position.",28,null],[11,"set_position","","Sets the sensor absolute position.",28,null],[11,"center","","This sensor position's translational component.",28,null],[11,"margin","","The collision margin of this sensor's shape.",28,null],[11,"proximity_with_parent_enabled","","Whether or not proximity detection between this sensor and its parent is enabled.",28,null],[11,"enable_proximity_with_parent","","Enables proximity detection between this sensor and its parent if it has one.",28,null],[11,"disable_proximity_with_parent","","Disables proximity detection between this sensor and its parent if it has one.",28,null],[11,"parent","","The rigid body to which this sensor is kinematically attached.",28,null],[11,"shape","","A reference of this sensor's shared shape.",28,null],[11,"collision_groups","","This sensor's collision groups.",28,null],[11,"clone","","",24,null],[11,"rigid_body_uid","","The unique identifier a rigid body would have if it was wrapped on a `WorldObject`.",24,{"inputs":[{"name":"rigidbodyhandle"}],"output":{"name":"usize"}}],[11,"sensor_uid","","The unique identifier a sensor would have if it was wrapped on a `WorldObject`.",24,{"inputs":[{"name":"sensorhandle"}],"output":{"name":"usize"}}],[11,"is_rigid_body","","Whether or not this is a rigid body.",24,null],[11,"is_sensor","","Whether or not this is a sensor.",24,null],[11,"unwrap_sensor","","Unwraps this object as a sensor or fails.",24,null],[11,"unwrap_rigid_body","","Unwraps this object as a rigid body or fails.",24,null],[11,"uid","","Returns a unique id for this world object.",24,null],[11,"borrow","","Borrows this world object.",24,null],[11,"borrow_sensor","","Borrows this world object as a sensor.",24,null],[11,"borrow_rigid_body","","Borrows this world object as a rigid body.",24,null],[11,"borrow_mut","","Mutably borrows this world object.",24,null],[11,"borrow_mut_sensor","","Mutably borrows this world object as a sensor.",24,null],[11,"borrow_mut_rigid_body","","Mutably borrows this world object as a rigid body.",24,null],[11,"position","","This object's position.",25,null],[11,"shape","","A reference to this object geometrical shape.",25,null],[11,"margin","","This object margin.",25,null],[11,"is_rigid_body","","Whether or not this is a rigid body.",25,null],[11,"is_sensor","","Whether or not this is a sensor.",25,null],[11,"position","","This object's position.",26,null],[11,"shape","","A reference to this object geometrical shape.",26,null],[11,"margin","","This object margin.",26,null],[11,"is_rigid_body","","Whether or not this is a rigid body.",26,null],[11,"is_sensor","","Whether or not this is a sensor.",26,null],[11,"fmt","","",29,null],[11,"clone","","",29,null],[11,"new_dynamic","","Creates a new `RigidBodyCollisionGroups` that enables collisions with everything except\nself-collision.",29,{"inputs":[],"output":{"name":"rigidbodycollisiongroups"}}],[11,"new_static","","Creates a new `RigidBodyCollisionGroups` that enables collisions with every user-defined\ngroups. Static objects and sensors are blacklisted by default and self-collision disabled.",29,{"inputs":[],"output":{"name":"rigidbodycollisiongroups"}}],[11,"is_dynamic","","Returns `true` if this object is not part of the static group.",29,null],[11,"is_static","","Returns `true` if this object is part of the static group.",29,null],[11,"max_group_id","","The maximum allowed group identifier.",29,{"inputs":[],"output":{"name":"usize"}}],[11,"as_collision_groups","","Return the internal, ncollide-compatible, `CollisionGroups`",29,null],[11,"modify_membership","","Adds or removes this entity from the given group.",29,null],[11,"modify_whitelist","","Adds or removes the given group from this entity whitelist.",29,null],[11,"modify_blacklist","","Adds or removes this entity from the given group.",29,null],[11,"set_membership","","Make this object member of the given groups only.",29,null],[11,"set_whitelist","","Whitelists the given groups only (others will be un-whitelisted).",29,null],[11,"set_blacklist","","Blacklists the given groups only (others will be un-blacklisted).",29,null],[11,"copy_membership","","Copies the membership of another collision groups.",29,null],[11,"copy_whitelist","","Copies the whitelist of another collision groups.",29,null],[11,"copy_blacklist","","Copies the blacklist of another collision groups.",29,null],[11,"enable_interaction_with_static","","Un-blacklists static objects.",29,null],[11,"disable_interaction_with_static","","Blacklists any static object.",29,null],[11,"enable_interaction_with_sensors","","Un-blacklists sensors.",29,null],[11,"disable_interaction_with_sensors","","Blacklists sensors.",29,null],[11,"enable_self_interaction","","Enables self interaction detection.",29,null],[11,"disable_self_interaction","","Disables self interaction detection.",29,null],[11,"is_member_of","","Tests if this entity is part of the given group.",29,null],[11,"is_group_whitelisted","","Tests if the given group is whitelisted.",29,null],[11,"is_group_blacklisted","","Tests if the given group is blacklisted.",29,null],[11,"can_interact_with","","Tests whether collisions with a given group is possible.",29,null],[11,"can_interact_with_groups","","Tests whether two collision groups have at least one group in common.",29,null],[11,"can_interact_with_self","","Tests whether self-collision is enabled.",29,null],[11,"fmt","","",30,null],[11,"clone","","",30,null],[11,"new","","Creates a new `SensorCollisionGroups` that enables collisions with every user-defined\ngroups. Static objects and sensors are blacklisted by default and self-collision is disabled.",30,{"inputs":[],"output":{"name":"sensorcollisiongroups"}}],[11,"max_group_id","","The maximum allowed group identifier.",30,{"inputs":[],"output":{"name":"usize"}}],[11,"as_collision_groups","","Return the internal, ncollide-compatible, `CollisionGroups`",30,null],[11,"modify_membership","","Adds or removes this entity from the given group.",30,null],[11,"modify_whitelist","","Adds or removes the given group from this entity whitelist.",30,null],[11,"modify_blacklist","","Adds or removes this entity from the given group.",30,null],[11,"set_membership","","Make this object member of the given groups only.",30,null],[11,"set_whitelist","","Whitelists the given groups only (others will be un-whitelisted).",30,null],[11,"set_blacklist","","Blacklists the given groups only (others will be un-blacklisted).",30,null],[11,"copy_membership","","Copies the membership of another collision groups.",30,null],[11,"copy_whitelist","","Copies the whitelist of another collision groups.",30,null],[11,"copy_blacklist","","Copies the blacklist of another collision groups.",30,null],[11,"enable_interaction_with_static","","Un-blacklists static objects.",30,null],[11,"disable_interaction_with_static","","Blacklists any static object.",30,null],[11,"enable_interaction_with_sensors","","Un-blacklists sensors.",30,null],[11,"disable_interaction_with_sensors","","Blacklists sensors.",30,null],[11,"enable_self_interaction","","Enables self interaction detection.",30,null],[11,"disable_self_interaction","","Disables self interaction detection.",30,null],[11,"is_member_of","","Tests if this entity is part of the given group.",30,null],[11,"is_group_whitelisted","","Tests if the given group is whitelisted.",30,null],[11,"is_group_blacklisted","","Tests if the given group is blacklisted.",30,null],[11,"can_interact_with","","Tests whether collisions with a given group is possible.",30,null],[11,"can_interact_with_groups","","Tests whether two collision groups have at least one group in common.",30,null],[11,"can_interact_with_self","","Tests whether self-collision is enabled.",30,null],[6,"RigidBodyHandle","","A shared, mutable, rigid body.",null,null],[6,"SensorHandle","","A shared, mutable, sensor.",null,null],[17,"STATIC_GROUP_ID","","Reserved group id for static rigid bodies.",null,null],[17,"SENSOR_GROUP_ID","","Reserved group id for sensors.",null,null],[0,"utils","nphysics2d","Miscellaneous utilities.",null,null],[3,"DeterministicState","nphysics2d::utils","A hasher builder that creates `SipHasher` with default keys.",null,null],[0,"union_find","","The union find algorithm.",null,null],[3,"UnionFindSet","nphysics2d::utils::union_find","An element used by the union-find algorithm.",null,null],[5,"find","","Performs the `find` part of the union-find algorithm.",null,null],[5,"union","","Performs the `union` part of the union-find algorithm.",null,null],[11,"clone","","",31,null],[11,"new","","Creates a new `UnionFindSet`.",31,{"inputs":[{"name":"usize"}],"output":{"name":"unionfindset"}}],[11,"reinit","","Reinitialize this set.",31,null],[11,"new","nphysics2d::utils","Creates a new `DeterministicState` that builds `SipHasher` with default keys.",32,{"inputs":[],"output":{"name":"deterministicstate"}}],[11,"build_hasher","","",32,null],[0,"volumetric","nphysics2d","Volume and inertia tensor computation.",null,null],[5,"ball_volume","nphysics2d::volumetric","The volume of a ball.",null,{"inputs":[{"name":"usize"},{"name":"n"}],"output":{"name":"n"}}],[5,"ball_area","","The area of a ball.",null,{"inputs":[{"name":"usize"},{"name":"n"}],"output":{"name":"n"}}],[5,"ball_center_of_mass","","The center of mass of a ball.",null,{"inputs":[],"output":{"name":"p"}}],[5,"ball_unit_angular_inertia","","The unit angular inertia of a ball.",null,{"inputs":[{"name":"usize"},{"name":"n"}],"output":{"name":"i"}}],[5,"cylinder_volume","","The volume of a cylinder.",null,{"inputs":[{"name":"usize"},{"name":"n"},{"name":"n"}],"output":{"name":"n"}}],[5,"cylinder_area","","The area of a cylinder.",null,{"inputs":[{"name":"usize"},{"name":"n"},{"name":"n"}],"output":{"name":"n"}}],[5,"cylinder_center_of_mass","","The center of mass of a cylinder.",null,{"inputs":[],"output":{"name":"p"}}],[5,"cylinder_unit_angular_inertia","","The unit angular inertia of a cylinder.",null,{"inputs":[{"name":"usize"},{"name":"n"},{"name":"n"}],"output":{"name":"i"}}],[5,"cone_volume","","The volume of a cone.",null,{"inputs":[{"name":"usize"},{"name":"n"},{"name":"n"}],"output":{"name":"n"}}],[5,"cone_area","","The area of a cone.",null,{"inputs":[{"name":"usize"},{"name":"n"},{"name":"n"}],"output":{"name":"n"}}],[5,"cone_center_of_mass","","The center of mass of a cone.",null,{"inputs":[{"name":"n"}],"output":{"name":"p"}}],[5,"cone_unit_angular_inertia","","The unit angular inertia of a cone.",null,{"inputs":[{"name":"usize"},{"name":"n"},{"name":"n"}],"output":{"name":"i"}}],[5,"cuboid_volume","","The volume of a cuboid.",null,{"inputs":[{"name":"usize"},{"name":"v"}],"output":{"name":"n"}}],[5,"cuboid_area","","The area of a cuboid.",null,{"inputs":[{"name":"usize"},{"name":"v"}],"output":{"name":"n"}}],[5,"cuboid_center_of_mass","","The center of mass of a cuboid.",null,{"inputs":[],"output":{"name":"p"}}],[5,"cuboid_unit_angular_inertia","","The unit angular inertia of a cuboid.",null,{"inputs":[{"name":"usize"},{"name":"v"}],"output":{"name":"i"}}],[5,"convex_polyline_area","","The area of a convex polyline.",null,null],[5,"convex_mesh_area","","The area of a convex mesh.",null,null],[5,"convex_polyline_area_and_center_of_mass","","The area and center of mass of a 2D convex Polyline.",null,null],[5,"convex_mesh_volume_and_center_of_mass","","The volume and center of mass of a convex mesh.",null,null],[5,"convex_polyline_mass_properties","","The mass properties of a 2D convex Polyline.",null,null],[5,"convex_mesh_mass_properties","","The mass properties of a convex mesh.",null,null],[5,"convex_hull_area","","The area of a convex hull.",null,null],[5,"convex_hull_volume","","The volume of the convex hull of a set of points.",null,null],[5,"convex_hull_center_of_mass","","The center of mass of the convex hull of a set of points.",null,null],[5,"convex_hull_unit_angular_inertia","","The angular inertia of the convex hull of a set of points.",null,null],[8,"Volumetric","","Trait implemented by objects which have a mass, a center of mass, and an inertia tensor.",null,null],[10,"area","","Computes the area of this object.",33,null],[10,"volume","","Computes the volume of this object.",33,null],[10,"center_of_mass","","Computes the center of mass of this object.",33,null],[10,"unit_angular_inertia","","Computes the angular inertia tensor of this object.",33,null],[11,"mass","","Given its density, this computes the mass of this object.",33,null],[11,"angular_inertia","","Given its mass, this computes the angular inertia of this object.",33,null],[11,"mass_properties","","Given its density, this computes the mass, center of mass, and inertia tensor of this object.",33,null],[8,"InertiaTensor","","Trait implemented by inertia tensors.",null,null],[10,"apply","","Applies this inertia tensor to a vector.",34,null],[10,"to_world_space","","Transforms this inertia tensor from local space to world space.",34,null],[10,"to_relative_wrt_point","","Computes this inertia tensor relative to a given point.",34,null],[0,"math","nphysics2d","Compilation flags dependent aliases for mathematical types.",null,null],[6,"Point","nphysics2d::math","The point type.",null,null],[6,"Vector","","The vector type.",null,null],[6,"Orientation","","The orientation type.",null,null],[6,"Matrix","","The transformation matrix type.",null,null],[6,"RotationMatrix","","The rotation matrix type.",null,null],[6,"AngularInertia","","The inertia tensor type.",null,null],[11,"mass","nphysics2d::volumetric","Given its density, this computes the mass of this object.",33,null],[11,"angular_inertia","","Given its mass, this computes the angular inertia of this object.",33,null],[11,"mass_properties","","Given its density, this computes the mass, center of mass, and inertia tensor of this object.",33,null]],"paths":[[8,"Integrator"],[3,"BodyExpEulerIntegrator"],[3,"BodySmpEulerIntegrator"],[3,"BodyForceGenerator"],[3,"BodyDamping"],[3,"TranslationalCCDMotionClamping"],[4,"Constraint"],[8,"Detector"],[3,"Anchor"],[3,"JointManager"],[3,"BallInSocket"],[3,"Fixed"],[8,"Joint"],[3,"ActivationManager"],[3,"Velocities"],[3,"VelocityConstraint"],[4,"CorrectionMode"],[8,"Solver"],[3,"ContactIdentifier"],[3,"ImpulseCache"],[3,"AccumulatedImpulseSolver"],[3,"World"],[4,"ActivationState"],[4,"RigidBodyState"],[4,"WorldObject"],[4,"WorldObjectBorrowed"],[4,"WorldObjectBorrowedMut"],[3,"RigidBody"],[3,"Sensor"],[3,"RigidBodyCollisionGroups"],[3,"SensorCollisionGroups"],[3,"UnionFindSet"],[3,"DeterministicState"],[8,"Volumetric"],[8,"InertiaTensor"]]}; initSearch(searchIndex);