34 #ifndef ICL_HAVE_OPENGL 36 #pragma WARNING("this header must not be included if ICL_HAVE_OPENGL is not defined") 38 #warning "this header must not be included if ICL_HAVE_OPENGL is not defined" 65 namespace qt {
class ICLDrawWidget;}
172 void addCamera(
const Camera &cam,
float visSize=1.0);
175 void removeCamera(
int index);
187 Camera &getCamera(
int camIndex = 0);
190 const Camera &getCamera(
int camIndex =0)
const;
199 std::vector<Camera*> getAllCameras(
int firstIndex=0,
int num=-1);
206 void addObject(
SceneObject *
object,
bool passOwnerShip=
false);
210 void removeObject(
int idx);
218 void removeObjects(
int startIndex,
int endIndex=-1);
237 SceneObject *getObject(
const std::vector<int> recursiveIndices) ;
245 SceneObject *getObject(
const std::vector<int> recursiveIndices)
const ;
250 std::vector<int> findPath(
const SceneObject *o)
const ;
254 void clear(
bool camerasToo=
false);
273 DepthBufferMode mode = DistToCamCenter,
bool fastRendering=
false);
313 struct RenderSettings;
321 void setDrawCamerasEnabled(
bool enabled);
324 bool getDrawCamerasEnabled()
const;
327 void setDrawLightsEnabled(
bool enabled,
float lightSize=1);
330 bool getDrawLightsEnabled()
const;
333 void setDrawCoordinateFrameEnabled(
bool enabled,
float size=120);
336 bool getDrawCoordinateFrameEnabled()
const;
339 void setDrawObjectFramesEnabled(
bool enabled,
float size);
342 bool getDrawObjectFramesEnabled()
const;
345 void setCursor(
Vec newPosition);
351 void activateCursor(
bool activate =
true);
367 void setLightingEnabled(
bool flag);
378 return findObject(getCamera(camIndex).getViewRay(
utils::Point(xScreen,yScreen)));
388 std::vector<Hit> findObjects(
const ViewRay &v);
391 inline std::vector<Hit>
findObjects(
int camIndex,
int xScreen,
int ySceen){
392 return findObjects(getCamera(camIndex).getViewRay(
utils::Point(xScreen,ySceen)));
403 void setBounds(
float minX,
float maxX=0,
float minY=0,
float mayY=0,
float minZ=0,
float maxZ=0);
437 void renderShadow(
const unsigned int light,
const unsigned int shadow,
unsigned int size,
447 renderSceneObjectRecursive(&util, o, camID);
459 float getMaxSceneDim()
const;
462 void extendMaxSceneDimRecursive(
float &minX,
float &maxX,
463 float &minY,
float &maxY,
464 float &minZ,
float &maxZ,
477 std::vector<utils::SmartPtr<SceneMouseHandler> > m_mouseHandlers;
486 void freeAllPBuffers();
512 mutable bool m_previousLightState[8][4];
527 static void freeDisplayList(
void *handle);
Simple wrapper class for OpenGL 2.0 Fragment Shader Programs.
Definition: GLFragmentShader.h:45
Class providing a mouse handler for class scene.
Definition: SceneMouseHandler.h:136
FBOData * m_fboData
Definition: Scene.h:315
undocument this line if you encounter any issues!
Definition: Any.h:37
Definition: ShaderUtil.h:56
Base class for point cloud data types.
Definition: PointCloudObjectBase.h:98
utils::FPSEstimator m_fps
Definition: Scene.h:523
#define ICLGeom_API
Definition: CompatMacros.h:179
utils::SmartPtr< SceneObject > m_coordinateFrameObject
internally used scene object
Definition: Scene.h:500
utils::SmartPtr< SceneObject > m_objectFrameObject
also internally used object frame object
Definition: Scene.h:503
RenderSettings * m_renderSettings
Definition: Scene.h:313
Hit findObject(int camIndex, int xScreen, int yScreen)
picks the closest contained scene-object clicked at given ScreenPosition
Definition: Scene.h:377
std::vector< utils::SmartPtr< GLCallback > > m_glCallbacks
internally used list of callbacks
Definition: Scene.h:481
int getObjectCount() const
returns the number of top-level objects
Definition: Scene.h:221
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
Definition: Scene.h:391
std::vector< utils::SmartPtr< SceneObject > > m_cameraObjects
internal list of top-level camera objects used for camera visualization
Definition: Scene.h:474
std::map< PBufferIndex, PBuffer * > m_pbuffers
Definition: Scene.h:496
Camera class.
Definition: Camera.h:132
core::depth buffer values define distance to the camera's z=0 plane
Definition: Scene.h:269
void renderSceneObjectRecursive(SceneObject *o, int camID) const
internally used rendering method for recursive rendering of the scene graph
Definition: Scene.h:445
raw core::depth buffer in range [0,1]
Definition: Scene.h:268
GeomColor m_backgroundColor
current scene background color
Definition: Scene.h:521
utility structure that defines a hit between a ViewRay and SceneObjects
Definition: Hit.h:45
Size class of the ICL.
Definition: Size.h:61
Definition: ShaderUtil.h:47
pthread_t threadID
Definition: Scene.h:492
Scene Implementation that is used to handle a list of objects and cameras.
Definition: Scene.h:138
DepthBufferMode
Definition: Scene.h:267
MouseEvent Handler.
Definition: MouseHandler.h:92
This is a view-ray's line equation in parameter form.
Definition: ViewRay.h:49
int getCameraCount() const
returns the count of contained cameras
Definition: Scene.h:193
Point class of the ICL used e.g. for the Images ROI offset.
Definition: Point.h:58
ICLQt_API void color(float r, float g=-1, float b=-1, float alpha=255)
sets the current color to given r,g,b,alpha value
ICLQt_API core::Img< T > grab(const std::string &dev, const std::string &devSpec, const utils::Size &size=utils::Size::null, core::format fmt=core::formatRGB, bool releaseGrabber=false)
grabs a new image from given device (affinity for floats)
math::FixedColVector< int, 4 > m_globalAmbientLight
global ambient light
Definition: Scene.h:518
std::vector< Camera > m_cameras
internal list of cameras
Definition: Scene.h:468
Interface for objects, that can be locked using an internal mutex.
Definition: Lockable.h:41
Wrapper class for OpenGL lights.
Definition: SceneLight.h:72
SceneObject * m_cursor
Definition: Scene.h:140
Generic interface for PointCloud sources.
Definition: PointCloudGrabber.h:45
utils::SmartArray< utils::Range32f > m_bounds
optionally given bounds of the scene
Definition: Scene.h:515
ImgBase is the Image-Interface class that provides save access to underlying Img-template .
Definition: ImgBase.h:131
Specialization of the SmartPtrBase class for Pointers.
Definition: SmartPtr.h:75
The SceneObject class defines visible objects in scenes or scene graph nodes.
Definition: SceneObject.h:140
Utility clas for online FPS estimation.
Definition: FPSEstimator.h:41
std::vector< utils::SmartPtr< SceneObject > > m_objects
internal list of top-level objects
Definition: Scene.h:471