Basic Image AlgorithmS Library
2.8.0
|
Display axes of a local coordinate frame. More...
#include <GLviewer/Scenes/SceneCoordinateFrame.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 | 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... | |
SceneCoordinateFrame (const BIAS::Vector3< double > &origin=BIAS::Vector3< double >(0, 0, 0), const BIAS::RMatrix &orientation=BIAS::RMatrix(BIAS::MatrixIdentity), const double scale=1.0) | |
Create a coordinate frame with the given origin, orientation, and scale. 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 | SetColorMask (bool red=true, bool green=true, bool blue=true, bool alpha=true) |
sets a color mask for the scene rendering More... | |
void | SetCoordinateFrame (const BIAS::Vector3< double > &origin, const BIAS::RMatrix &orientation, const double scale=1.0) |
Set origin, orientation and scale of coordinate frame. 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... | |
~SceneCoordinateFrame () | |
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< float > | axisX_ |
BIAS::Vector3< float > | axisY_ |
BIAS::Vector3< float > | axisZ_ |
BIAS::Vector3< double > | boundingBoxMax_ |
BIAS::Vector3< double > | boundingBoxMin_ |
BIAS::GLProjectionParametersInterface * | camera_ |
GLboolean | colorMask_ [4] |
POINT_DRAW_STYLE | dPointDrawStyle_ |
TRIANGLEMESH_DRAW_STYLE | dTriangleMeshDrawStyle_ |
double | elasticity_ |
the more elastic the less enegry is lost in collisions More... | |
bool | gravityImmunity_ |
if true, scene is not accelerated by gravity More... | |
bool | IsActive_ |
double | mass_ |
for collision: More... | |
BIAS::Vector3< float > | origin_ |
bool | renderBoundingBox_ |
show the bounding box ? More... | |
BIAS::Vector3< double > | velocity_ |
scene velocity in m/s More... | |
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 axes of a local coordinate frame.
Definition at line 41 of file SceneCoordinateFrame.hh.
|
inherited |
Enumerator | |
---|---|
C_BothMono | |
C_LeftOnly | |
C_RightOnly | |
C_BothStereo |
Definition at line 71 of file SceneBase.hh.
SceneCoordinateFrame::SceneCoordinateFrame | ( | const BIAS::Vector3< double > & | origin = BIAS::Vector3<double>(0, 0, 0) , |
const BIAS::RMatrix & | orientation = BIAS::RMatrix(BIAS::MatrixIdentity) , |
||
const double | scale = 1.0 |
||
) |
Create a coordinate frame with the given origin, orientation, and scale.
By default the canonical coordinate frame is used.
Definition at line 7 of file SceneCoordinateFrame.cpp.
References SetCoordinateFrame().
SceneCoordinateFrame::~SceneCoordinateFrame | ( | ) |
Definition at line 13 of file SceneCoordinateFrame.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 46 of file SceneCoordinateFrame.cpp.
|
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 40 of file SceneCoordinateFrame.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 BIAS::SceneGridGround::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.
|
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.
|
inlineinherited |
sets a color mask for the scene rendering
Definition at line 139 of file SceneBase.hh.
Referenced by BIAS::SceneBase::SceneBase().
void SceneCoordinateFrame::SetCoordinateFrame | ( | const BIAS::Vector3< double > & | origin, |
const BIAS::RMatrix & | orientation, | ||
const double | scale = 1.0 |
||
) |
Set origin, orientation and scale of coordinate frame.
Definition at line 18 of file SceneCoordinateFrame.cpp.
References axisX_, axisY_, axisZ_, boundingBoxMax_, boundingBoxMin_, origin_, and BIAS::Vector3< T >::Set().
Referenced by SceneCoordinateFrame().
|
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 70 of file SceneCoordinateFrame.hh.
Referenced by Draw(), and SetCoordinateFrame().
|
protected |
Definition at line 70 of file SceneCoordinateFrame.hh.
Referenced by Draw(), and SetCoordinateFrame().
|
protected |
Definition at line 70 of file SceneCoordinateFrame.hh.
Referenced by Draw(), and SetCoordinateFrame().
|
protected |
Definition at line 73 of file SceneCoordinateFrame.hh.
Referenced by GetBoundingBox(), and SetCoordinateFrame().
|
protected |
Definition at line 72 of file SceneCoordinateFrame.hh.
Referenced by GetBoundingBox(), and SetCoordinateFrame().
|
protectedinherited |
Definition at line 266 of file SceneBase.hh.
Referenced by BIAS::SceneBase::DumpInfo().
|
protectedinherited |
Definition at line 267 of file SceneBase.hh.
Referenced by BIAS::SceneBase::DumpInfo(), and BIAS::SceneBase::Render().
|
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().
|
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().
|
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().
|
protected |
Definition at line 69 of file SceneCoordinateFrame.hh.
Referenced by Draw(), and SetCoordinateFrame().
|
protectedinherited |
show the bounding box ?
Definition at line 278 of file SceneBase.hh.
Referenced by BIAS::SceneBase::Render(), and BIAS::SceneBase::SceneBase().
|
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().