Image Component Library (ICL)
PhysicsUtils.h
Go to the documentation of this file.
1 /********************************************************************
2 ** Image Component Library (ICL) **
3 ** **
4 ** Copyright (C) 2006-2014 CITEC, University of Bielefeld **
5 ** Neuroinformatics Group **
6 ** Website: www.iclcv.org and **
7 ** http://opensource.cit-ec.de/projects/icl **
8 ** **
9 ** File : ICLPhysics/src/ICLPhysics/PhysicsUtils.h **
10 ** Module : ICLPhysics **
11 ** Author : Christof Elbrechter, Matthias Esau **
12 ** **
13 ** **
14 ** GNU LESSER GENERAL PUBLIC LICENSE **
15 ** This file may be used under the terms of the GNU Lesser General **
16 ** Public License version 3.0 as published by the **
17 ** **
18 ** Free Software Foundation and appearing in the file LICENSE.LGPL **
19 ** included in the packaging of this file. Please review the **
20 ** following information to ensure the license requirements will **
21 ** be met: http://www.gnu.org/licenses/lgpl-3.0.txt **
22 ** **
23 ** The development of this software was supported by the **
24 ** Excellence Cluster EXC 277 Cognitive Interaction Technology. **
25 ** The Excellence Cluster EXC 277 is a grant of the Deutsche **
26 ** Forschungsgemeinschaft (DFG) in the context of the German **
27 ** Excellence Initiative. **
28 ** **
29 ********************************************************************/
30 #pragma once
31 
32 #include <ICLGeom/Geom.h>
33 
34 namespace icl{
35  namespace geom{
36  class Scene;
37  }
38  namespace physics{
39 
40  class PhysicsWorld;
41  class PhysicsObject;
42 
44  void ICLPhysics_API remove_fallen_objects(geom::Scene *scene, PhysicsWorld *world, float minZ = -2000);
45 
47  void ICLPhysics_API add_clutter(geom::Scene *scene, PhysicsWorld *world, int num = 30);
48 
50  void ICLPhysics_API calcDistance(PhysicsObject* a, PhysicsObject* b, geom::Vec &pointOnA, geom::Vec &pointOnB, float &distance);
51 
53  void ICLPhysics_API calcDistance(PhysicsObject* a, PhysicsObject* b, geom::Mat transA, geom::Mat transB, geom::Vec &pointOnA, geom::Vec &pointOnB, float &distance);
54 
56  void ICLPhysics_API createObjectsFromBlobs(const std::vector< std::vector<int> > &indices, const std::vector<geom::Vec> &vertices, std::vector<PhysicsObject*> &objects);
57  }
58 }
undocument this line if you encounter any issues!
Definition: Any.h:37
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.
Mat4D32f Mat
Short typedef for 4D float matrices.
Definition: GeomDefs.h:90
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.
void ICLPhysics_API add_clutter(geom::Scene *scene, PhysicsWorld *world, int num=30)
adds num random objects
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
#define ICLPhysics_API
Definition: CompatMacros.h:181
Vec4D32f Vec
Short typedef for 4D float vectors.
Definition: GeomDefs.h:87