Image Component Library (ICL)
Classes | Functions | Variables
icl::physics Namespace Reference

Classes

class  BallSocketConstraint
 This constraint simulates a ballsocket joint. More...
 
struct  BendingConstraint
 
class  Constraint
 Base Class for constraints. More...
 
class  FoldMap
 discretized paper space representing folds More...
 
class  HingeConstraint
 This constraint simulates a Hinge joint. More...
 
class  ManipulatablePaper
 extension of the standard physical paper class More...
 
class  MotionState
 This class is a MotionState for updating SceneObjects to match the PhysicsObject state. More...
 
class  Object2PointConstraint
 This constraint binds an object to a point with a spring. More...
 
class  PhysicsMouseHandler
 This mousehandler can pick up object and move them around. More...
 
class  PhysicsObject
 This class combines an physical object and it's graphical representation in ICL. More...
 
class  PhysicsPaper
 This class represents cloth or paper like soft-body objects. More...
 
class  PhysicsPaper3
 
class  PhysicsPaper3ContextMenu
 
class  PhysicsPaper3MouseHandler
 
class  PhysicsScene
 
class  PhysicsWorld
 A physical world that handles physical objects. More...
 
class  RigidBoxObject
 A Box that can with RigidObject features. More...
 
class  RigidCompoundObject
 A Box that can with RigidObject features. More...
 
class  RigidConvexHullObject
 ConvexHullObject witht he features of a RigidObject that can be created from a pointcloud. More...
 
class  RigidCylinderObject
 Cylinder with the features of a RigidObject. More...
 
class  RigidObject
 This class combines a movable but rigid physics object and it's graphical representation in ICL. More...
 
class  RigidSphereObject
 Sphere with the features of a RigidObject. More...
 
class  SceneMultiCamCapturer
 
class  SixDOFConstraint
 This is a generic constraint that allows to free configuration of the limits on all 6 degrees of freedom. More...
 
class  SliderConstraint
 This constraint simulates a Slider joint. More...
 
class  SoftObject
 This class combines a soft-body physics object and it's graphical representation in ICL. More...
 
class  TriangleIntersectionEstimator
 

Functions

bool line_segment_intersect (const utils::Point32f &a, const utils::Point32f &b, const utils::Point32f &c, const utils::Point32f &d, utils::Point32f *dst=0, float *dstr=0, float *dsts=0)
 
bool point_in_triangle (const utils::Point32f &p, const utils::Point32f &v1, const utils::Point32f &v2, const utils::Point32f &v3)
 Checks whether the given point p lies within the triangle defined by v1,v2 and v3. More...
 
float icl2bullet (float x)
 Converts from icl to bullet units. More...
 
float bullet2icl (float x)
 Converts from bullet to icl units. More...
 
geom::Mat bullet2icl (const btTransform &T)
 Creates an icl Mat from a bullet transform and scales accordingly. More...
 
btTransform icl2bullet_unscaled_mat (const geom::Mat &M)
 
btTransform icl2bullet_scaled_mat (const geom::Mat &M)
 Creates a bullet transform from an icl Mat and scales accordingly. More...
 
btVector3 icl2bullet_unscaled (const geom::Vec &v)
 Creates a bullet vector from an icl vector WITHOUT scaling. More...
 
geom::Vec bullet2icl_unscaled (const btVector3 &v)
 Creates an icl vector from a bullet vector WITHOUT scaling. More...
 
btVector3 icl2bullet_scaled (const geom::Vec &v)
 Creates a bullet vector from an icl vector WITH scaling. More...
 
geom::Vec bullet2icl_scaled (const btVector3 &v)
 Creates an icl vector from a bullet vector WITH scaling. More...
 
void ICLPhysics_API remove_fallen_objects (geom::Scene *scene, PhysicsWorld *world, float minZ=-2000)
 removes all rigid object from the given scene and world that are below minZ More...
 
void ICLPhysics_API add_clutter (geom::Scene *scene, PhysicsWorld *world, int num=30)
 adds num random objects More...
 
void ICLPhysics_API calcDistance (PhysicsObject *a, PhysicsObject *b, geom::Vec &pointOnA, geom::Vec &pointOnB, float &distance)
 Calculates the distance between the 2 closest points of the objects a and b. More...
 
void ICLPhysics_API calcDistance (PhysicsObject *a, PhysicsObject *b, geom::Mat transA, geom::Mat transB, geom::Vec &pointOnA, geom::Vec &pointOnB, float &distance)
 Calculates the distance between the 2 closest points of the objects a and b. More...
 
void ICLPhysics_API createObjectsFromBlobs (const std::vector< std::vector< int > > &indices, const std::vector< geom::Vec > &vertices, std::vector< PhysicsObject * > &objects)
 Creates primitives from blobs. The last blob is assumed to be the Table the objects rest on. More...
 

Variables

ICLPhysics_API float ICL_UNIT_TO_METER
 
ICLPhysics_API float METER_TO_BULLET_UNIT
 

Function Documentation

◆ add_clutter()

void ICLPhysics_API icl::physics::add_clutter ( geom::Scene scene,
PhysicsWorld world,
int  num = 30 
)

adds num random objects

◆ bullet2icl() [1/2]

float icl::physics::bullet2icl ( float  x)
inline

Converts from bullet to icl units.

◆ bullet2icl() [2/2]

geom::Mat icl::physics::bullet2icl ( const btTransform &  T)
inline

Creates an icl Mat from a bullet transform and scales accordingly.

◆ bullet2icl_scaled()

geom::Vec icl::physics::bullet2icl_scaled ( const btVector3 &  v)
inline

Creates an icl vector from a bullet vector WITH scaling.

◆ bullet2icl_unscaled()

geom::Vec icl::physics::bullet2icl_unscaled ( const btVector3 &  v)
inline

Creates an icl vector from a bullet vector WITHOUT scaling.

◆ calcDistance() [1/2]

void ICLPhysics_API icl::physics::calcDistance ( PhysicsObject a,
PhysicsObject b,
geom::Vec pointOnA,
geom::Vec pointOnB,
float &  distance 
)

Calculates the distance between the 2 closest points of the objects a and b.

◆ calcDistance() [2/2]

void ICLPhysics_API icl::physics::calcDistance ( PhysicsObject a,
PhysicsObject b,
geom::Mat  transA,
geom::Mat  transB,
geom::Vec pointOnA,
geom::Vec pointOnB,
float &  distance 
)

Calculates the distance between the 2 closest points of the objects a and b.

◆ createObjectsFromBlobs()

void ICLPhysics_API icl::physics::createObjectsFromBlobs ( const std::vector< std::vector< int > > &  indices,
const std::vector< geom::Vec > &  vertices,
std::vector< PhysicsObject * > &  objects 
)

Creates primitives from blobs. The last blob is assumed to be the Table the objects rest on.

◆ icl2bullet()

float icl::physics::icl2bullet ( float  x)
inline

Converts from icl to bullet units.

◆ icl2bullet_scaled()

btVector3 icl::physics::icl2bullet_scaled ( const geom::Vec v)
inline

Creates a bullet vector from an icl vector WITH scaling.

◆ icl2bullet_scaled_mat()

btTransform icl::physics::icl2bullet_scaled_mat ( const geom::Mat M)
inline

Creates a bullet transform from an icl Mat and scales accordingly.

◆ icl2bullet_unscaled()

btVector3 icl::physics::icl2bullet_unscaled ( const geom::Vec v)
inline

Creates a bullet vector from an icl vector WITHOUT scaling.

◆ icl2bullet_unscaled_mat()

btTransform icl::physics::icl2bullet_unscaled_mat ( const geom::Mat M)
inline

◆ line_segment_intersect()

bool icl::physics::line_segment_intersect ( const utils::Point32f a,
const utils::Point32f b,
const utils::Point32f c,
const utils::Point32f d,
utils::Point32f dst = 0,
float *  dstr = 0,
float *  dsts = 0 
)

◆ point_in_triangle()

bool icl::physics::point_in_triangle ( const utils::Point32f p,
const utils::Point32f v1,
const utils::Point32f v2,
const utils::Point32f v3 
)

Checks whether the given point p lies within the triangle defined by v1,v2 and v3.

◆ remove_fallen_objects()

void ICLPhysics_API icl::physics::remove_fallen_objects ( geom::Scene scene,
PhysicsWorld world,
float  minZ = -2000 
)

removes all rigid object from the given scene and world that are below minZ

Variable Documentation

◆ ICL_UNIT_TO_METER

ICLPhysics_API float icl::physics::ICL_UNIT_TO_METER

◆ METER_TO_BULLET_UNIT

ICLPhysics_API float icl::physics::METER_TO_BULLET_UNIT