Basic Image AlgorithmS Library
2.8.0
|
Display a grid ground for orientation. More...
#include <GLviewer/Scenes/SceneGridGround.hh>
Public Types | |
enum | EChannel { C_BothMono, C_LeftOnly, C_RightOnly, C_BothStereo } |
Public Member Functions | |
void | AddDebugLevel (const long int lv) |
void | AddDebugLevel (const std::string &name) |
void | ApplyTimeStep (const double &delta=1.0, const BIAS::Vector3< double > &gravity=BIAS::Vector3< double >(0,-9.81, 0), const double &frictioncoefficient=0.999) |
change position using a small time step of delta seconds and change velocity using gravity vector in m/s^2 More... | |
std::list< BIAS::HomgPoint3D > | CornersFromBoundingBox (const BIAS::Vector3< double > &b1, const BIAS::Vector3< double > &b2) |
bool | DebugLevelIsSet (const long int lv) const |
bool | DebugLevelIsSet (const std::string &name) const |
virtual void | Draw () |
Implementation of the SceneBase Draw method. More... | |
void | DrawInXYPlane (bool xyplane) |
Specify if grid ground is parallel to x/y plane or x/z plane. More... | |
void | DumpInfo () const |
dump info about the scene More... | |
std::list< BIAS::HomgPlane3D > | FacesFromBoundingBox (const BIAS::Vector3< double > &b1, const BIAS::Vector3< double > &b2) |
enum EChannel | GetActiveChannel () const |
Returns the active color channel. More... | |
virtual void | GetBoundingBox (BIAS::Vector3< double > &minVal, BIAS::Vector3< double > &maxVal) |
Implementation of the SceneBase GetBoundingBox method. More... | |
int | GetDebugLevel () const |
std::ostream & | GetDebugStream () const |
void | GetDebugStream (std::ostream &os) const |
double | GetElasticity () |
returns the elasticity value More... | |
virtual GLProjectionParametersInterface * | GetGLProjectionParametersInterface () |
Get the camera as projectionparametersinterface, can be of type GLProjection of of any from GLProjectionParametersBase derived class. More... | |
bool | GetGravityImmunity () const |
is this scene accelerated by gravity ? More... | |
void | GetMomentum (double &mass, BIAS::Vector3< double > &velocity) const |
get mass and velocity in m/s More... | |
POINT_DRAW_STYLE | GetPointDrawStyle () |
Get the drawing style for points. More... | |
TRIANGLEMESH_DRAW_STYLE | GetTriangleMeshDrawStyle () |
Get the drawing style for triangles. More... | |
virtual bool | HasBoundingBoxCollision (SceneBase *otherScene) |
check if bounding boxes of two scenes overlap More... | |
bool | IsActive () const |
Returns whether the scene is active or not. More... | |
virtual void | MoveScene (const double &delta=1.0) |
this moves the scene (no rotation yet) More... | |
long int | Name2DebugLevel (const std::string &name) const |
looks up a debuglevel in the internal map, returns 0 if not found More... | |
long int | NewDebugLevel (const std::string &name) |
creates a new debuglevel More... | |
virtual void | PerformCollision (SceneBase *otherscene, const BIAS::Vector3< double > &contactnormal=BIAS::Vector3< double >(-1e10,-1e10,-1e10)) |
compute momentum of each scene after collision More... | |
void | PrintDebugLevel (std::ostream &os=std::cout) const |
void | RemoveDebugLevel (const long int lv) |
void | RemoveDebugLevel (const std::string &name) |
virtual void | Render () |
this is the entry point seen from GLProjectionParametersBase. More... | |
virtual void | RenderBoundingBox () |
render the bounding box of the scene using gl-lines More... | |
virtual void | ResetSelection () |
Reset the selection, overwrite to react on calls to this function in derived classes. More... | |
void | Resize (double from=-1000.0, double to=1000.0, double gridSize=50.0, double z=0.0) |
Initialize the square ground. More... | |
SceneGridGround (double from=-1000.0, double to=1000.0, double gridSize=50.0, double z=0.0) | |
Create a square grid ground from position (from, from, z) to position (to, to, z) at constant z value with given grid size, i.e. More... | |
virtual bool | SelectObjectAt (BIAS::Vector3< double > &p) |
Select a scene element/primitive at position p. More... | |
void | SetActive (bool b) |
Set whether the scene is active or not. More... | |
void | SetActiveChannel (const enum EChannel channel) |
Set a color channel active. More... | |
void | SetColor (float r, float g, float b) |
Set the color of the grid ground. More... | |
void | SetColorMask (bool red=true, bool green=true, bool blue=true, bool alpha=true) |
sets a color mask for the scene rendering More... | |
void | SetDebugLevel (const long int lv) |
void | SetDebugLevel (const std::string &name) |
void | SetDebugStream (const std::ostream &os) |
void | SetElasticity (const double &elas) |
set collision behaviour: 1.0=elastic, no energy is lost, >1 superelastic (requires energy from outside) <1 plastic, converts kinetic into other energy More... | |
virtual void | SetGLProjectionParametersInterface (GLProjectionParametersInterface *nc) |
Set the camera as projectionparametersinterface, can be of type GLProjection of of any from GLProjectionParametersBase derived class. More... | |
void | SetGravityImmunity (bool i) |
set behaviour with respect to gravity More... | |
void | SetMomentum (const double &mass, const BIAS::Vector3< double > &velocity) |
set mass and velocity in m/s More... | |
void | SetPointDrawStyle (POINT_DRAW_STYLE style) |
Set the drawing style for points. More... | |
virtual void | SetRenderBoundingBox (bool render) |
Set whether to render the boundign box or not. More... | |
void | SetTriangleMeshDrawStyle (TRIANGLEMESH_DRAW_STYLE style) |
Set the drawing style for triangles. More... | |
void | ShowDebugLevel (std::ostream &os=std::cout) const |
prints all internally known debuglevels More... | |
virtual double | TimeToContact (SceneBase *otherScene, BIAS::Vector3< double > &collisionpoint) |
compute time to contact of bounding boxes More... | |
virtual void | UpdateCameraRelatedState () |
Method is called by GLProjection if its params have changed. More... | |
~SceneGridGround () | |
Static Public Member Functions | |
static void | AnimationAndCollision (std::vector< SceneBase * > scenes, const BIAS::Vector3< double > &gravity=BIAS::Vector3< double >(0, 10, 0), const double &friction=0.999) |
call this method for a vector of scenes to solve the collision problem. More... | |
static double | GetAnimationSpeed () |
get time quantization for animations More... | |
static long int | GetGlobalDebugLevel () |
static void | SetAnimationSpeed (double s) |
set time quantization for animations More... | |
static void | SetGlobalDebugLevel (long int lev) |
Protected Member Functions | |
long | ConsumeNextFreeDebuglevel_ () |
returns the next available debuglevel More... | |
Protected Attributes | |
long int | _liDebugLevel |
long int | _liNextDebugLevel |
new concept, debuglevel are managed here in the debug class More... | |
std::map< std::string, long int > | _String2Debuglevel |
enum EChannel | ActiveChannel_ |
BIAS::Vector3< double > | boundingBoxMax_ |
BIAS::Vector3< double > | boundingBoxMin_ |
BIAS::GLProjectionParametersInterface * | camera_ |
float | colorB_ |
float | colorG_ |
GLboolean | colorMask_ [4] |
float | colorR_ |
POINT_DRAW_STYLE | dPointDrawStyle_ |
TRIANGLEMESH_DRAW_STYLE | dTriangleMeshDrawStyle_ |
double | elasticity_ |
the more elastic the less enegry is lost in collisions More... | |
double | from_ |
bool | gravityImmunity_ |
if true, scene is not accelerated by gravity More... | |
double | gridSize_ |
bool | IsActive_ |
double | mass_ |
for collision: More... | |
bool | renderBoundingBox_ |
show the bounding box ? More... | |
double | to_ |
BIAS::Vector3< double > | velocity_ |
scene velocity in m/s More... | |
bool | xyPlane_ |
double | z_ |
Static Protected Attributes | |
static std::ostream | _zDebugStream |
static double | animationSpeed_ = 1.0 |
how long does a single step in time take for animations ? More... | |
static long int | GlobalDebugLevel = 0 |
Display a grid ground for orientation.
Definition at line 40 of file SceneGridGround.hh.
|
inherited |
Enumerator | |
---|---|
C_BothMono | |
C_LeftOnly | |
C_RightOnly | |
C_BothStereo |
Definition at line 71 of file SceneBase.hh.
SceneGridGround::SceneGridGround | ( | double | from = -1000.0 , |
double | to = 1000.0 , |
||
double | gridSize = 50.0 , |
||
double | z = 0.0 |
||
) |
SceneGridGround::~SceneGridGround | ( | ) |
Definition at line 16 of file SceneGridGround.cpp.
|
inlineinherited |
Definition at line 355 of file Debug.hh.
Referenced by BIAS::GLProjectionParametersBase::AddDebugLevel(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::FilterBase< InputStorageType, OutputStorageType >::FilterBase(), BIAS::ShowCamWxVideoSourceFactory::OpenDevice(), and BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph().
|
inlineinherited |
|
staticinherited |
call this method for a vector of scenes to solve the collision problem.
STATIC and THUS CONST !!!
Definition at line 407 of file SceneBase.cpp.
References BIAS::SceneBase::animationSpeed_, BIAS::SceneBase::GetGravityImmunity(), and BIAS::SceneBase::HasBoundingBoxCollision().
|
inherited |
change position using a small time step of delta seconds and change velocity using gravity vector in m/s^2
No collision detection and handling here, since other scenes are unknown at this level.
Definition at line 326 of file SceneBase.cpp.
References BIAS::SceneBase::gravityImmunity_, BIAS::SceneBase::mass_, BIAS::SceneBase::MoveScene(), BIAS::Vector3< T >::NormL2(), BIAS::Vector3< T >::ScalarProduct(), and BIAS::SceneBase::velocity_.
|
inlineprotectedinherited |
|
inherited |
Definition at line 42 of file SceneBase.cpp.
Referenced by BIAS::SceneBase::HasBoundingBoxCollision(), BIAS::SceneBase::RenderBoundingBox(), and BIAS::SceneBase::TimeToContact().
|
inlineinherited |
Definition at line 341 of file Debug.hh.
Referenced by BIAS::GenSynthMatches::_AddUniformDistributedOutliers(), BIAS::GenSynthMatches::_CreateCamMovement(), BIAS::GenSynthMatches::_CreateStatic2DPoints(), BIAS::UnscentedTransform::ComputeSigmaPoints_(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::GenSynthMatches::GetGTNormalizedF(), BIAS::MonteCarloTransform::GetSamples_(), and BIAS::MonteCarloTransform::Transform().
|
inlineinherited |
|
virtual |
Implementation of the SceneBase Draw method.
Implements BIAS::SceneBase.
Definition at line 53 of file SceneGridGround.cpp.
References colorB_, colorG_, colorR_, from_, BIAS::GLProjectionParametersInterface::GetClearColor(), BIAS::SceneBase::GetGLProjectionParametersInterface(), gridSize_, to_, xyPlane_, and z_.
void SceneGridGround::DrawInXYPlane | ( | bool | xyplane | ) |
Specify if grid ground is parallel to x/y plane or x/z plane.
Definition at line 48 of file SceneGridGround.cpp.
References xyPlane_.
|
inherited |
dump info about the scene
Definition at line 350 of file SceneBase.cpp.
References BIAS::SceneBase::ActiveChannel_, BIAS::SceneBase::camera_, BIAS::SceneBase::colorMask_, BIAS::SceneBase::elasticity_, BIAS::SceneBase::IsActive_, BIAS::SceneBase::mass_, and BIAS::SceneBase::velocity_.
|
inherited |
Definition at line 66 of file SceneBase.cpp.
Referenced by BIAS::SceneBase::HasBoundingBoxCollision(), and BIAS::SceneBase::TimeToContact().
|
inlineinherited |
Returns the active color channel.
Definition at line 132 of file SceneBase.hh.
|
inlinestaticinherited |
get time quantization for animations
Definition at line 247 of file SceneBase.hh.
|
virtual |
Implementation of the SceneBase GetBoundingBox method.
Reimplemented from BIAS::SceneBase.
Definition at line 35 of file SceneGridGround.cpp.
References boundingBoxMax_, and boundingBoxMin_.
|
inlineinherited |
Definition at line 332 of file Debug.hh.
Referenced by BIAS::listenthread(), BIAS::Image< StorageType >::operator=(), and BIAS::ImageBase::operator=().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
returns the elasticity value
Definition at line 184 of file SceneBase.hh.
|
inlinestaticinherited |
|
inlinevirtualinherited |
Get the camera as projectionparametersinterface, can be of type GLProjection of of any from GLProjectionParametersBase derived class.
Definition at line 85 of file SceneBase.hh.
Referenced by Draw(), and BIAS::SceneOpenSceneGraph::RightMouseDoubleClicked().
|
inlineinherited |
is this scene accelerated by gravity ?
Definition at line 194 of file SceneBase.hh.
Referenced by BIAS::SceneBase::AnimationAndCollision().
|
inlineinherited |
get mass and velocity in m/s
Definition at line 162 of file SceneBase.hh.
|
inlineinherited |
Get the drawing style for points.
Definition at line 100 of file SceneBase.hh.
|
inlineinherited |
Get the drawing style for triangles.
Definition at line 106 of file SceneBase.hh.
|
virtualinherited |
check if bounding boxes of two scenes overlap
Definition at line 78 of file SceneBase.cpp.
References BIAS::SceneBase::CornersFromBoundingBox(), BIAS::SceneBase::FacesFromBoundingBox(), and BIAS::SceneBase::GetBoundingBox().
Referenced by BIAS::SceneBase::AnimationAndCollision().
|
inlineinherited |
Returns whether the scene is active or not.
Definition at line 127 of file SceneBase.hh.
|
virtualinherited |
this moves the scene (no rotation yet)
Reimplemented in BIAS::SceneThreeDOutWrapper.
Definition at line 345 of file SceneBase.cpp.
Referenced by BIAS::SceneBase::ApplyTimeStep().
|
inlineinherited |
|
inlineinherited |
creates a new debuglevel
Definition at line 474 of file Debug.hh.
Referenced by BIAS::COSAC< SolutionType >::COSAC(), BIAS::ProjectionParametersPerspectiveDepth::Init(), BIAS::MonteCarloTransform::MonteCarloTransform(), BIAS::PMatrixEstimation::PMatrixEstimation(), BIAS::PreemptiveRANSAC< SolutionType >::PreemptiveRANSAC(), BIAS::RANSACPreKnowledge< SolutionType >::RANSACPreKnowledge(), BIAS::ROI::ROI(), BIAS::RotationAveraging::RotationAveraging(), BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph(), BIAS::ThreeDOutOpenSceneGraph::ThreeDOutOpenSceneGraph(), BIAS::Triangulation::Triangulation(), and BIAS::UnscentedTransform::UnscentedTransform().
|
virtualinherited |
compute momentum of each scene after collision
see http://de.wikipedia.org/wiki/Sto%C3%9F_(Physik)
contactnormal | the normal of the plane between the two objects at the moment they collide (imagine a piece of paper in between) |
Definition at line 218 of file SceneBase.cpp.
References BIAS::SceneBase::elasticity_, BIAS::SceneBase::GetBoundingBox(), BIAS::SceneBase::gravityImmunity_, BIAS::SceneBase::mass_, BIAS::Vector3< T >::Normalize(), BIAS::Vector3< T >::NormL2(), BIAS::Vector3< T >::ScalarProduct(), and BIAS::SceneBase::velocity_.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
virtualinherited |
this is the entry point seen from GLProjectionParametersBase.
It is called whenever redrawing is required. It checks the IsActive flag and eventually call Draw().
Definition at line 26 of file SceneBase.cpp.
References BIAS::SceneBase::colorMask_, BIAS::SceneBase::Draw(), BIAS::SceneBase::IsActive_, BIAS::SceneBase::RenderBoundingBox(), and BIAS::SceneBase::renderBoundingBox_.
Referenced by BIAS::GLProjectionParametersBase::EndDraw_().
|
virtualinherited |
render the bounding box of the scene using gl-lines
Definition at line 362 of file SceneBase.cpp.
References BIAS::SceneBase::CornersFromBoundingBox(), and BIAS::SceneBase::GetBoundingBox().
Referenced by BIAS::SceneBase::Render().
|
inlinevirtualinherited |
Reset the selection, overwrite to react on calls to this function in derived classes.
Definition at line 95 of file SceneBase.hh.
void SceneGridGround::Resize | ( | double | from = -1000.0 , |
double | to = 1000.0 , |
||
double | gridSize = 50.0 , |
||
double | z = 0.0 |
||
) |
Initialize the square ground.
Only needed if changes are to be applied to the parameters.
Definition at line 21 of file SceneGridGround.cpp.
References boundingBoxMax_, boundingBoxMin_, from_, gridSize_, to_, and z_.
Referenced by SceneGridGround().
|
inlinevirtualinherited |
Select a scene element/primitive at position p.
Overwrite in derived class to react to selections
p | [in]: position to select object at. |
Definition at line 92 of file SceneBase.hh.
|
inlineinherited |
Set whether the scene is active or not.
Definition at line 129 of file SceneBase.hh.
|
inlineinherited |
Set a color channel active.
Definition at line 135 of file SceneBase.hh.
|
inlinestaticinherited |
set time quantization for animations
Definition at line 242 of file SceneBase.hh.
void SceneGridGround::SetColor | ( | float | r, |
float | g, | ||
float | b | ||
) |
Set the color of the grid ground.
Definition at line 41 of file SceneGridGround.cpp.
|
inlineinherited |
sets a color mask for the scene rendering
Definition at line 139 of file SceneBase.hh.
Referenced by BIAS::SceneBase::SceneBase().
|
inlineinherited |
Definition at line 318 of file Debug.hh.
Referenced by BIAS::ShowCamWxVideoSourceFactory::CreateBumbleBee(), BIAS::ShowCamWxVideoSourceFactory::CreateDCAM(), BIAS::VideoSource_MDcam::ScanBus(), BIAS::GLProjectionParametersBase::SetDebugLevel(), BIAS::VideoSource_Disk::VideoSource_Disk(), BIAS::VideoSource_DV2::VideoSource_DV2(), BIAS::VideoSource_DV::VideoSource_DV_Internal_Init_(), and BIAS::VideoSource_V4L::VideoSource_V4L().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
set collision behaviour: 1.0=elastic, no energy is lost, >1 superelastic (requires energy from outside) <1 plastic, converts kinetic into other energy
Definition at line 179 of file SceneBase.hh.
|
inlinestaticinherited |
|
inlinevirtualinherited |
Set the camera as projectionparametersinterface, can be of type GLProjection of of any from GLProjectionParametersBase derived class.
Definition at line 80 of file SceneBase.hh.
Referenced by BIAS::View::AppendScene(), BIAS::RenderContextBase::AppendScene(), and BIAS::View::InsertSceneAt().
|
inlineinherited |
set behaviour with respect to gravity
Definition at line 189 of file SceneBase.hh.
|
inlineinherited |
set mass and velocity in m/s
Definition at line 168 of file SceneBase.hh.
|
inlineinherited |
Set the drawing style for points.
Definition at line 98 of file SceneBase.hh.
|
inlinevirtualinherited |
Set whether to render the boundign box or not.
Definition at line 109 of file SceneBase.hh.
|
inlineinherited |
Set the drawing style for triangles.
Definition at line 103 of file SceneBase.hh.
|
inlineinherited |
|
virtualinherited |
compute time to contact of bounding boxes
Definition at line 118 of file SceneBase.cpp.
References BIAS::SceneBase::CornersFromBoundingBox(), BIAS::SceneBase::FacesFromBoundingBox(), BIAS::SceneBase::GetBoundingBox(), BIAS::Vector3< T >::ScalarProduct(), and BIAS::SceneBase::velocity_.
|
inlinevirtualinherited |
Method is called by GLProjection if its params have changed.
The method should then take necassary steps for adapting the rendering state. Needed information should then be fetched through the camera_ pointer. This method is only called if the abstract set of parameters has changed, say the parameters that are also contained in BIAS::Projection
Definition at line 119 of file SceneBase.hh.
|
protectedinherited |
Definition at line 510 of file Debug.hh.
Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().
|
protectedinherited |
new concept, debuglevel are managed here in the debug class
Definition at line 516 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protectedinherited |
Definition at line 517 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
staticprotectedinherited |
Definition at line 511 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protectedinherited |
Definition at line 265 of file SceneBase.hh.
Referenced by BIAS::SceneBase::DumpInfo().
|
staticprotectedinherited |
how long does a single step in time take for animations ?
Definition at line 254 of file SceneBase.hh.
Referenced by BIAS::SceneBase::AnimationAndCollision().
|
protected |
Definition at line 80 of file SceneGridGround.hh.
Referenced by GetBoundingBox(), and Resize().
|
protected |
Definition at line 79 of file SceneGridGround.hh.
Referenced by GetBoundingBox(), and Resize().
|
protectedinherited |
Definition at line 266 of file SceneBase.hh.
Referenced by BIAS::SceneBase::DumpInfo().
|
protected |
Definition at line 76 of file SceneGridGround.hh.
Referenced by Draw(), SceneGridGround(), and SetColor().
|
protected |
Definition at line 76 of file SceneGridGround.hh.
Referenced by Draw(), SceneGridGround(), and SetColor().
|
protectedinherited |
Definition at line 267 of file SceneBase.hh.
Referenced by BIAS::SceneBase::DumpInfo(), and BIAS::SceneBase::Render().
|
protected |
Definition at line 76 of file SceneGridGround.hh.
Referenced by Draw(), SceneGridGround(), and SetColor().
|
protectedinherited |
Definition at line 260 of file SceneBase.hh.
Referenced by BIAS::SceneBase::SceneBase().
|
protectedinherited |
Definition at line 261 of file SceneBase.hh.
Referenced by BIAS::SceneBase::SceneBase().
|
protectedinherited |
the more elastic the less enegry is lost in collisions
Definition at line 276 of file SceneBase.hh.
Referenced by BIAS::SceneBase::DumpInfo(), BIAS::SceneBase::PerformCollision(), and BIAS::SceneBase::SceneBase().
|
protected |
Definition at line 72 of file SceneGridGround.hh.
|
staticprotectedinherited |
|
protectedinherited |
if true, scene is not accelerated by gravity
Definition at line 274 of file SceneBase.hh.
Referenced by BIAS::SceneBase::ApplyTimeStep(), BIAS::SceneBase::PerformCollision(), and BIAS::SceneBase::SceneBase().
|
protected |
Definition at line 74 of file SceneGridGround.hh.
|
protectedinherited |
Definition at line 263 of file SceneBase.hh.
Referenced by BIAS::SceneBase::DumpInfo(), and BIAS::SceneBase::Render().
|
protectedinherited |
for collision:
Definition at line 270 of file SceneBase.hh.
Referenced by BIAS::SceneBase::ApplyTimeStep(), BIAS::SceneBase::DumpInfo(), BIAS::SceneBase::PerformCollision(), and BIAS::SceneBase::SceneBase().
|
protectedinherited |
show the bounding box ?
Definition at line 278 of file SceneBase.hh.
Referenced by BIAS::SceneBase::Render(), and BIAS::SceneBase::SceneBase().
|
protected |
Definition at line 73 of file SceneGridGround.hh.
|
protectedinherited |
scene velocity in m/s
Definition at line 272 of file SceneBase.hh.
Referenced by BIAS::SceneBase::ApplyTimeStep(), BIAS::SceneBase::DumpInfo(), BIAS::SceneBase::PerformCollision(), and BIAS::SceneBase::TimeToContact().
|
protected |
Definition at line 77 of file SceneGridGround.hh.
Referenced by Draw(), DrawInXYPlane(), and SceneGridGround().
|
protected |
Definition at line 75 of file SceneGridGround.hh.