Image Component Library (ICL)
|
#include <PhysicsScene.h>
Public Member Functions | |
PhysicsScene (PhysicsWorld::BulletSolverType type=PhysicsWorld::Default) | |
void | addObject (PhysicsObject *object, bool passOwnerShip=false) |
adds a new top-level object to the Scene instance More... | |
void | removeObject (int idx) |
removed object at given index More... | |
void | removeObject (PhysicsObject *obj) |
removes given top-level object from scene (not recursive) More... | |
void | removeObjects (int startIndex, int endIndex=-1) |
removed object at given indices More... | |
Public Member Functions inherited from icl::geom::Scene | |
Scene () | |
Base constructor (creates an empty scene) More... | |
~Scene () | |
Destructor. More... | |
Scene (const Scene &scene) | |
Explicitly implemented deep copy (performs complete deep copy of all cameras and objects) More... | |
Scene & | operator= (const Scene &scene) |
Assignment operator (complete deep copy) More... | |
void | addCamera (const Camera &cam, float visSize=1.0) |
Adds a new Camera to the scene. More... | |
void | removeCamera (int index) |
removed the camera at given index More... | |
Camera & | getCamera (int camIndex=0) |
returns a reference to the i-th camera More... | |
const Camera & | getCamera (int camIndex=0) const |
returns the i-th scene camera More... | |
int | getCameraCount () const |
returns the count of contained cameras More... | |
std::vector< Camera * > | getAllCameras (int firstIndex=0, int num=-1) |
returns a vector with pointers to all cameras in given range More... | |
void | addObject (SceneObject *object, bool passOwnerShip=false) |
adds a new top-level object to the Scene instance More... | |
void | removeObject (int idx) |
removed object at given index More... | |
void | removeObject (const SceneObject *obj) |
removes given top-level object from scene (not recursive) More... | |
void | removeObjects (int startIndex, int endIndex=-1) |
removed object at given indices More... | |
int | getObjectCount () const |
returns the number of top-level objects More... | |
SceneObject * | getObject (int index) |
returns contained object at given index More... | |
const SceneObject * | getObject (int index) const |
returns contained object at given index (const) More... | |
SceneObject * | getObject (const std::vector< int > recursiveIndices) |
returns a child that is deeper in the scene graph More... | |
SceneObject * | getObject (const std::vector< int > recursiveIndices) const |
returns a child that is deeper in the scene graph (const) More... | |
std::vector< int > | findPath (const SceneObject *o) const |
finds the recursive indices for a given object. More... | |
void | clear (bool camerasToo=false) |
deletes and removes all objects, handlers and callbacks More... | |
qt::MouseHandler * | getMouseHandler (int camIndex=0) |
returns a mouse handler that adapts the scene's camera using mouse-interaction More... | |
void | setMouseHandler (SceneMouseHandler *sceneMouseHandler, int camIndex=0) |
registeres a custom SceneMouseHandler for given camera index More... | |
qt::ICLDrawWidget3D::GLCallback * | getGLCallback (int camIndex) |
returns a callback that is used to render the scene into a GL-context More... | |
const core::Img8u & | render (int camIndx, const core::ImgBase *background=0, core::Img32f *depthBuffer=0, DepthBufferMode mode=DistToCamCenter, bool fastRendering=false) |
void | setDrawCamerasEnabled (bool enabled) |
sets wheter cameras are also visualized in scenes. More... | |
bool | getDrawCamerasEnabled () const |
returns whether cameras are visualized More... | |
void | setDrawLightsEnabled (bool enabled, float lightSize=1) |
sets wheter lights are also visualized in scenes. More... | |
bool | getDrawLightsEnabled () const |
returns whether lights are visualized More... | |
void | setDrawCoordinateFrameEnabled (bool enabled, float size=120) |
sets wheter a coordinate frame is automatically inserted into the scene More... | |
bool | getDrawCoordinateFrameEnabled () const |
returns wheter a coordinate frame is automatically shown in the scene More... | |
void | setDrawObjectFramesEnabled (bool enabled, float size) |
sets whether all object frames are visualized More... | |
bool | getDrawObjectFramesEnabled () const |
returns whether object frames are visualized More... | |
void | setCursor (Vec newPosition) |
sets the Position of the cursor More... | |
Vec | getCursor () |
gets the Position of the cursor More... | |
void | activateCursor (bool activate=true) |
activate or deactivate the cursor More... | |
SceneLight & | getLight (int index) |
returns a reference to a light with given index More... | |
const SceneLight & | getLight (int index) const |
returns a const reference to a light with given index More... | |
void | setLightingEnabled (bool flag) |
sets whether OpenGL's lighting is globally activated More... | |
void | setGlobalAmbientLight (const GeomColor &color) |
this can be used to change OpenGL's global ambient light color More... | |
Hit | findObject (int camIndex, int xScreen, int yScreen) |
picks the closest contained scene-object clicked at given ScreenPosition More... | |
Hit | findObject (const ViewRay &v) |
picks the first object that is hit by the given viewray More... | |
std::vector< Hit > | findObjects (const ViewRay &v) |
retunrs all objects intersected by the given viewray More... | |
std::vector< Hit > | findObjects (int camIndex, int xScreen, int ySceen) |
retunrs all objects on that are intersected by the defined cameras viewray through given x and y More... | |
void | setBounds (float minX, float maxX=0, float minY=0, float mayY=0, float minZ=0, float maxZ=0) |
sets the expected bounds of contained objects More... | |
void | setBackgroundColor (const GeomColor &color) |
sets the scene's background color (alpha is not used) More... | |
GeomColor | getBackgroundColor () const |
returns the current background colo More... | |
virtual void | grab (PointCloudObjectBase &dst) |
implements the PointCloudGrabber interface More... | |
Public Member Functions inherited from icl::utils::Lockable | |
Lockable (bool recursive=false) | |
Default constructor. More... | |
Lockable (const Lockable &l) | |
copy constructor (does not copy the source mutex) More... | |
Lockable & | operator= (const Lockable &l) |
assignment operator (does not copy the source mutex) More... | |
~Lockable () | |
Destructor. More... | |
void | lock () const |
lock object More... | |
void | unlock () const |
unlock object More... | |
Mutex & | getMutex () const |
returns mutex of this object More... | |
Public Member Functions inherited from icl::geom::PointCloudGrabber | |
virtual | ~PointCloudGrabber () |
virtual, but empty destructor More... | |
virtual const core::Img32f * | getDepthImage () const |
returns the last grabbed point cloud's underlying depth image (if available) More... | |
virtual const core::Img8u * | getColorImage () const |
returns the last grabbed point cloud's underlying depth image (if available) More... | |
virtual Camera | getDepthCamera () const |
returns current depth camera (CAN be implemented by implementation More... | |
virtual Camera | getColorCamera () const |
virtual void | setCameraWorldFrame (const math::FixedMatrix< float, 4, 4 > &T) |
virtual void | reinit (const std::string &description) |
re-initializes the current device More... | |
Public Member Functions inherited from icl::utils::Configurable | |
virtual | ~Configurable () |
virtual destructor More... | |
Configurable (const Configurable &other) | |
Copy constructor. More... | |
Configurable & | operator= (const Configurable &other) |
Assignment operator. More... | |
void | setConfigurableID (const std::string &ID) |
sets the ID of this configurable More... | |
const std::string & | getConfigurableID () const |
returns the configurables static ID More... | |
bool | isOrderedFlagSet () const |
returns whether the ordered flag is set More... | |
void | deactivateProperty (const std::string &pattern) |
adds an additional deativation pattern More... | |
void | deleteDeactivationPattern (const std::string &pattern) |
removed a formerly added deactivation pattern More... | |
std::vector< std::string > | getPropertyListWithoutDeactivated () const |
this returns a filtered list of properties (using all filters added by deactivateProperty) More... | |
virtual void | adaptProperty (const std::string &name, const std::string &newType, const std::string &newInfo, const std::string &newToolTip) |
this function can be used to adapt a specific property afterwards More... | |
void | registerCallback (const Callback &cb) |
add a callback for changed properties More... | |
void | removedCallback (const Callback &cb) |
removes a callback that was registered before More... | |
void | syncChangesTo (Configurable *others, int num=1) |
this can be used to let this instance also apply property changes to others More... | |
virtual void | setPropertyValue (const std::string &propertyName, const Any &value) |
sets a property value More... | |
virtual std::vector< std::string > | getPropertyList () const |
returns a list of All properties, that can be set using setProperty More... | |
virtual bool | supportsProperty (const std::string &propertyName) const |
base implementation for property check (seaches in the property list) More... | |
virtual void | saveProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC) const |
writes all available properties into a file More... | |
virtual void | loadProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC) |
reads a camera config file from disc More... | |
virtual std::string | getPropertyType (const std::string &propertyName) const |
get type of property More... | |
virtual std::string | getPropertyInfo (const std::string &propertyName) const |
get information of a properties valid values More... | |
virtual Any | getPropertyValue (const std::string &propertyName) const |
returns the current value of a property or a parameter More... | |
virtual std::string | getPropertyToolTip (const std::string &propertyName) const |
returns the tooltip description for a given property More... | |
virtual int | getPropertyVolatileness (const std::string &propertyName) const |
Returns whether this property may be changed internally. More... | |
Public Member Functions inherited from icl::physics::PhysicsWorld | |
PhysicsWorld (BulletSolverType solver_type=Default) | |
constructor with given config file name More... | |
~PhysicsWorld () | |
Destructor. More... | |
void | addObject (PhysicsObject *obj) |
adds a physics object to the world (ownership is not passed) More... | |
void | removeObject (PhysicsObject *obj) |
removes the given physics object from the world More... | |
void | setGravity (const geom::Vec &gravity) |
sets the Gravity of the World More... | |
void | setGravityEnabled (bool on, const geom::Vec *useThisGravityIfOn=0) |
enables/disables gravity More... | |
void | splitImpulseEnabled (bool enable) |
enable splitImpulse More... | |
void | step (float dtSeconds=-1, int maxSubSteps=10, float fixedTimeStep=1.f/120.f) |
applies physical simulation for the given time step More... | |
double | getLastTimeDelta () |
returns the last delta of time in seconds as a double value. More... | |
bool | collideWithWorld (RigidObject *obj, bool ignoreJoints=true) |
check collision of an object with the world More... | |
void | setGroupCollision (int group0, int group1, bool collides) |
enables/disables collision between the group0 and group1 More... | |
bool | getGroupCollision (int group0, int group1) |
returns wether group0 and group1 collide More... | |
bool | rayCast (const geom::ViewRay &ray, float rayLength, PhysicsObject *&obj, geom::Vec &normal, geom::Vec &hitPoint) |
Return true if the ray hit and sets the pointer to the first object that was hit as well as the hit normal and hit point. More... | |
void | addConstraint (Constraint *constraint, bool disableCollisionWithLinkedBodies=false, bool passOwnerShip=false) |
adds a constraint to the world More... | |
void | removeConstraint (Constraint *constraint) |
removes a cosntraint from the world More... | |
const btSoftBodyWorldInfo * | getWorldInfo () const |
returns an internal world-info struct More... | |
btSoftBodyWorldInfo * | getWorldInfo () |
returns an internal world-info struct More... | |
Additional Inherited Members | |
Public Types inherited from icl::geom::Scene | |
enum | DepthBufferMode { RawDepth01, DistToCamPlane, DistToCamCenter } |
Public Types inherited from icl::utils::Configurable | |
typedef Function< void, const Property & > | Callback |
Function type for changed properties. More... | |
Public Types inherited from icl::physics::PhysicsWorld | |
enum | BulletSolverType { SequentialImpulseConstraintSolver, MLCP_Dantzig, NNCG, Lemke, Default = SequentialImpulseConstraintSolver } |
Static Public Member Functions inherited from icl::utils::Configurable | |
static std::string | create_default_ID (const std::string &prefix) |
this function can be used in subclasses to create a default ID More... | |
static Configurable * | get (const std::string &id) |
returns configurable by given ID More... | |
static void | register_configurable_type (const std::string &classname, Function< Configurable * > creator) |
registers a configurable type More... | |
static std::vector< std::string > | get_registered_configurables () |
returns a list of all registered configurable classnames More... | |
static Configurable * | create_configurable (const std::string &classname) |
creates a configurable by given name More... | |
Public Attributes inherited from icl::geom::Scene | |
icl::qt::GLFragmentShader * | m_shaders [ShaderUtil::COUNT] |
renders the current scene using an instance of pbuffer More... | |
RenderSettings * | m_renderSettings |
FBOData * | m_fboData |
Static Public Attributes inherited from icl::utils::Configurable | |
static const std::vector< std::string > | EMPTY_VEC |
used as shortcut – just an empty vector of std::strings More... | |
Protected Member Functions inherited from icl::geom::Scene | |
void | createDisplayList (SceneObject *o) const |
creates a displaylist for the given object More... | |
void | freeDisplayList (SceneObject *o) const |
frees the display list, that is associated with an object More... | |
void | renderScene (int camIndex, qt::ICLDrawWidget3D *widget=0) const |
internally used rendering method More... | |
void | renderShadow (const unsigned int light, const unsigned int shadow, unsigned int size, int camID) const |
renders the shadowmap More... | |
void | renderSceneObjectRecursiveShadow (ShaderUtil *util, SceneObject *o, int camID) const |
void | renderSceneObjectRecursive (SceneObject *o, int camID) const |
internally used rendering method for recursive rendering of the scene graph More... | |
void | renderSceneObjectRecursive (ShaderUtil *util, SceneObject *o, int camID) const |
internally used rendering method for recursive rendering of the scene graph More... | |
void | renderObjectFramesRecursive (SceneObject *o, SceneObject *cs, int camID) const |
recursively renders object frames for all scene objects More... | |
float | getMaxSceneDim () const |
internally used utility method that computes the extend of the Scene content More... | |
void | extendMaxSceneDimRecursive (float &minX, float &maxX, float &minY, float &maxY, float &minZ, float &maxZ, SceneObject *o) const |
recursive utility method More... | |
void | freeAllPBuffers () |
frees all pbuffers allocated before More... | |
void | freePBuffer (const utils::Size &size) |
frees the pbffer associated with given size (if there is one) More... | |
Protected Member Functions inherited from icl::utils::Configurable | |
void | addProperty (const std::string &name, const std::string &type, const std::string &info, const Any &value=Any(), const int volatileness=0, const std::string &tooltip=std::string()) |
This can be used by derived classes to store supported properties in the internal list. More... | |
void | addChildConfigurable (Configurable *configurable, const std::string &childPrefix="") |
This adds another configurable as child. More... | |
void | removeChildConfigurable (Configurable *configurable) |
removes the given child configurable More... | |
Property & | prop (const std::string &propertyName) |
this CAN be used e.g. to store a property value in internal property-list More... | |
const Property & | prop (const std::string &propertyName) const |
this CAN be used e.g. to store a property value in internal property-list More... | |
Configurable (const std::string &ID="", bool ordered=true) | |
create this configurable with given ID More... | |
void | call_callbacks (const std::string &propertyName, const Configurable *caller) const |
calls all registered callbacks More... | |
Protected Member Functions inherited from icl::physics::PhysicsWorld | |
void | removeContactPoints (PhysicsObject *obj) |
removes contactpoints (used when the collisionshape of an object has changed) More... | |
Protected Member Functions inherited from icl::utils::Uncopyable | |
Uncopyable () | |
Empty base constructor. More... | |
Protected Attributes inherited from icl::geom::Scene | |
std::vector< Camera > | m_cameras |
internal list of cameras More... | |
std::vector< utils::SmartPtr< SceneObject > > | m_objects |
internal list of top-level objects More... | |
std::vector< utils::SmartPtr< SceneObject > > | m_cameraObjects |
internal list of top-level camera objects used for camera visualization More... | |
std::vector< utils::SmartPtr< SceneMouseHandler > > | m_mouseHandlers |
internally used list of mouse handlers More... | |
std::vector< utils::SmartPtr< GLCallback > > | m_glCallbacks |
internally used list of callbacks More... | |
std::map< PBufferIndex, PBuffer * > | m_pbuffers |
utils::SmartPtr< SceneObject > | m_coordinateFrameObject |
internally used scene object More... | |
utils::SmartPtr< SceneObject > | m_objectFrameObject |
also internally used object frame object More... | |
utils::SmartPtr< SceneLight > | m_lights [8] |
internal list of lights More... | |
utils::SmartPtr< SceneObject > | m_shadowCameraObjects [8] |
list of cameras for visualisation of shadowcameras More... | |
bool | m_previousLightState [8][4] |
previous lightstate More... | |
utils::SmartArray< utils::Range32f > | m_bounds |
optionally given bounds of the scene More... | |
math::FixedColVector< int, 4 > | m_globalAmbientLight |
global ambient light More... | |
GeomColor | m_backgroundColor |
current scene background color More... | |
utils::FPSEstimator | m_fps |
Protected Attributes inherited from icl::utils::Configurable | |
std::vector< Callback > | callbacks |
internally managed list of callbacks More... | |
icl::physics::PhysicsScene::PhysicsScene | ( | PhysicsWorld::BulletSolverType | type = PhysicsWorld::Default | ) |
void icl::physics::PhysicsScene::addObject | ( | PhysicsObject * | object, |
bool | passOwnerShip = false |
||
) |
adds a new top-level object to the Scene instance
By default, the object's memory is managed externally. If you want to pass the ownership to the Scene instance, you have to set passOwnerShip to true.
void icl::physics::PhysicsScene::removeObject | ( | int | idx | ) |
removed object at given index
The object is deleted if it's ownwership was passed
void icl::physics::PhysicsScene::removeObject | ( | PhysicsObject * | obj | ) |
removes given top-level object from scene (not recursive)
The object is deleted if it's ownwership was passed
void icl::physics::PhysicsScene::removeObjects | ( | int | startIndex, |
int | endIndex = -1 |
||
) |
removed object at given indices
The object's are deleted if their ownwership was passed