Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
BIAS::SceneOpenSceneGraph Class Reference

Implements narrow access to OpenSceneGraph. More...

#include <GLviewer/Scenes/SceneOpenSceneGraph.hh>

+ Inheritance diagram for BIAS::SceneOpenSceneGraph:
+ Collaboration diagram for BIAS::SceneOpenSceneGraph:

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 AddMirror (const BIAS::Vector3< double > &ul, const BIAS::Vector3< double > &ur, const BIAS::Vector3< double > &ll, const BIAS::Vector3< double > &lr, const std::string &mirrortexture, bool cutUpperHalf=false)
 adds a rectangular mirror surface into the scene More...
 
void AddParticles ()
 
void AppendSubTree (osg::ref_ptr< osg::Node > &childNode)
 Append an OSG subtree to the constructed root tree. More...
 
int AppendSubTreeFromFile (const std::string &fileName, osg::ref_ptr< osg::Node > &childNode, bool optimize=false)
 Loads contents from file into scene graph. More...
 
int AppendSubTreeFromFile (const std::string &fileName)
 
int AppendSubTreeFromImageFile (const std::string &fileName, const double &width_mm, osg::ref_ptr< osg::Node > &imageNode)
 Loads contents from 2D image file into scene graph. More...
 
int AppendSubTreeSwitch (osg::ref_ptr< osg::Node > &switchNode, eNodeType NodeType=eNT_Default)
 Append an OSG subtree to the constructed root tree with switch node. More...
 
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...
 
void Clear ()
 
std::list< BIAS::HomgPoint3DCornersFromBoundingBox (const BIAS::Vector3< double > &b1, const BIAS::Vector3< double > &b2)
 
osg::Node * createMirroredScene (osg::Node *model, const BIAS::Vector3< double > &ul, const BIAS::Vector3< double > &ur, const BIAS::Vector3< double > &ll, const BIAS::Vector3< double > &lr, const std::string &mirrortexture, bool cutUpperHalf)
 helper function for mirror effects, called for all subscenes More...
 
bool DebugLevelIsSet (const long int lv) const
 
bool DebugLevelIsSet (const std::string &name) const
 
void DumpInfo () const
 dump info about the scene More...
 
std::list< BIAS::HomgPlane3DFacesFromBoundingBox (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 > &min, BIAS::Vector3< double > &max)
 Returns bounding box around the whole scene. More...
 
BIAS::Vector3< double > GetBoundingBoxCenter ()
 Returns center of bounding box around the whole scene. 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...
 
const NodeInfoMapGetNodeInfoMapRef ()
 
POINT_DRAW_STYLE GetPointDrawStyle ()
 Get the drawing style for points. More...
 
osg::ref_ptr< osg::Node > GetSceneRoot ()
 returns ref_ptr to root of tree More...
 
TreeDescr GetTreeDescr ()
 
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...
 
void HeadlightSwitch (bool on=true)
 Toggles the headlight. More...
 
int Init ()
 Initializes OpenSG tree for scene appendance. More...
 
bool IsActive () const
 Returns whether the scene is active or not. More...
 
bool IsEditableNode (osg::Node *node)
 
void LightRepresentationVisibleSwitch ()
 Toggle the light visible switch. More...
 
bool Load (std::string filename)
 
void MakeOpaque ()
 
void MakeRootShadowNode (osg::ref_ptr< osg::LightSource > lightSource)
 
void MakeTransparent (const double transparency)
 
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...
 
bool OpenSceneGraphAnimationIsPlaying ()
 
void OpenSceneGraphAnimationNextFrame ()
 
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)
 
void RemoveSubTree (osg::ref_ptr< osg::Node > &childNode)
 
void RemoveSubTree (osg::Node *childNode)
 
void RemoveSubTreeAndParents (osg::Node *Node)
 removes the subtree and the parents except the globalroot of a given node More...
 
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...
 
void Reset ()
 deletes internal pointers More...
 
virtual void ResetSelection ()
 Reset the selection, overwrite to react on calls to this function in derived classes. More...
 
bool RightMouseDoubleClicked (int x, int y)
 
bool Save (std::string filename)
 
bool SaveSubTree (osg::Node *node, const std::string &fileName)
 Saves contents beginning at node into a file. More...
 
 SceneOpenSceneGraph (bool redirect=true)
 
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 SetAnimate (const bool animate)
 
void SetAnimationTime (const double current_time, bool CallDraw=true)
 setanimationtime() calls draw. More...
 
void SetClearMask (int clearMask)
 
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...
 
void SetFixedDirectionalLight (bool on, BIAS::Vector3< double > dirDirectionalLight)
 
void SetFixedPointLight (bool on, BIAS::Vector3< double > posPointLight)
 Removes the camera as a beacon for the lights and sets a fixed position for Point Light or fixed direction for Directional Light. 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 SetNodeMarkerID (osg::Node *node, const unsigned long long &id)
 
void SetNodeOccluder (osg::Node *node, const bool state)
 
void SetNodeVisible (osg::Node *node, const bool visible)
 sets node visbility in guis like treectrlopensgwx this changes only the nodeinfomap and has no effect on the rendering of the node. 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...
 
void StartOpenSceneGraphAnimation ()
 
void StopOpenSceneGraphAnimation ()
 
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...
 
void UpdateTraversal ()
 
virtual ~SceneOpenSceneGraph ()
 

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...
 
void CreateStandardNodes_ ()
 
void DisableZWriteForTransparentNodes_ ()
 
virtual void Draw ()
 To do anything usefull, overload this method, assume context is ready and draw. More...
 
std::string NodePtr2IDString_ (osg::Node *node)
 
void UpdateLightRepresentation_ ()
 

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_
 
bool animate_
 
MyBasicAnimationManager animationManager_
 
double animTime_
 
BIAS::GLProjectionParametersInterfacecamera_
 
int clearMask_
 
GLboolean colorMask_ [4]
 
POINT_DRAW_STYLE dPointDrawStyle_
 
TRIANGLEMESH_DRAW_STYLE dTriangleMeshDrawStyle_
 
double elasticity_
 the more elastic the less enegry is lost in collisions More...
 
osg::observer_ptr
< osgViewer::GraphicsWindow > 
embedWindow_
 
int frameNumber_
 
osg::ref_ptr< osg::FrameStamp > frameStamp_
 
bool gravityImmunity_
 if true, scene is not accelerated by gravity More...
 
bool hasOpenSceneGraphAnimation_
 
bool headlight_
 
bool initialized_
 
bool IsActive_
 
double lastPauseTime_
 Time when the animation was paused for the last time. More...
 
osg::ref_ptr< osg::Light > light_
 
osg::ref_ptr< osg::Geode > lightRepresentationGeode_
 
osg::ref_ptr< osg::Switch > lightRepresentationSwitch_
 
bool lightRepresentationVisible_
 
osg::ref_ptr
< osg::MatrixTransform > 
lightTransform_
 
double mass_
 for collision: More...
 
NodeInfoMap NodeInfoMap_
 
bool renderBoundingBox_
 show the bounding box ? More...
 
osg::ref_ptr< osg::Group > rootTree_
 
osg::ref_ptr< osgViewer::Viewer > sceneView_
 
osg::Timer_t startTick_
 
double timeOffset_
 Time offset because of time "pauses". More...
 
osg::Timer timer_
 
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
 

Detailed Description

Implements narrow access to OpenSceneGraph.

Author
woelk 09/2007
Examples:
ExampleContextWx.cpp, and ExampleStencilBuffer.cpp.

Definition at line 79 of file SceneOpenSceneGraph.hh.

Member Enumeration Documentation

enum BIAS::SceneBase::EChannel
inherited
Enumerator
C_BothMono 
C_LeftOnly 
C_RightOnly 
C_BothStereo 

Definition at line 71 of file SceneBase.hh.

Constructor & Destructor Documentation

SceneOpenSceneGraph::SceneOpenSceneGraph ( bool  redirect = true)
SceneOpenSceneGraph::~SceneOpenSceneGraph ( )
virtual

Definition at line 85 of file SceneOpenSceneGraph.cpp.

References initialized_, and Reset().

Member Function Documentation

void BIAS::Debug::AddDebugLevel ( const long int  lv)
inlineinherited
void BIAS::Debug::AddDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 362 of file Debug.hh.

void SceneOpenSceneGraph::AddMirror ( const BIAS::Vector3< double > &  ul,
const BIAS::Vector3< double > &  ur,
const BIAS::Vector3< double > &  ll,
const BIAS::Vector3< double > &  lr,
const std::string &  mirrortexture,
bool  cutUpperHalf = false 
)

adds a rectangular mirror surface into the scene

Parameters
ul,..,lrupper left and lower right corners of the mirror
mirrortexturefilename for texture (color) of the mirror glass, if the file cannot be opened, white texture is used.

This function adds a mirror into the scene, specified by its four corners. However, in the texture of the mirror, you can reduce the mirror area by setting alpha values to zero. The color values of the mirror are mixed with the reflection. Mirror works only when stencil buffer is available.

Definition at line 1667 of file SceneOpenSceneGraph.cpp.

References createMirroredScene(), and rootTree_.

void SceneOpenSceneGraph::AddParticles ( )

Definition at line 1694 of file SceneOpenSceneGraph.cpp.

References rootTree_.

void SceneBase::AnimationAndCollision ( std::vector< SceneBase * >  scenes,
const BIAS::Vector3< double > &  gravity = BIAS::Vector3<double>(0,10,0),
const double &  friction = 0.999 
)
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().

void SceneOpenSceneGraph::AppendSubTree ( osg::ref_ptr< osg::Node > &  childNode)

Append an OSG subtree to the constructed root tree.

Examples:
ExampleStencilBuffer.cpp.

Definition at line 288 of file SceneOpenSceneGraph.cpp.

References rootTree_, and SetNodeOccluder().

Referenced by AppendSubTreeFromFile().

int SceneOpenSceneGraph::AppendSubTreeFromFile ( const std::string &  fileName,
osg::ref_ptr< osg::Node > &  childNode,
bool  optimize = false 
)
int BIAS::SceneOpenSceneGraph::AppendSubTreeFromFile ( const std::string &  fileName)
inline

Definition at line 116 of file SceneOpenSceneGraph.hh.

int SceneOpenSceneGraph::AppendSubTreeFromImageFile ( const std::string &  fileName,
const double &  width_mm,
osg::ref_ptr< osg::Node > &  imageNode 
)
int SceneOpenSceneGraph::AppendSubTreeSwitch ( osg::ref_ptr< osg::Node > &  switchNode,
eNodeType  NodeType = eNT_Default 
)

Append an OSG subtree to the constructed root tree with switch node.

WARNING:

Parameters
switchNodeis updated from the input node to the now prepended switch node. So that the user has a reference to the complete scene branch

Definition at line 298 of file SceneOpenSceneGraph.cpp.

References BIAS::OpenSceneGraphHelper::AddOrSetInfo(), NodeInfoMap_, BIAS::NodeType2String(), rootTree_, SetNodeOccluder(), and SetNodeVisible().

void SceneBase::ApplyTimeStep ( const double &  delta = 1.0,
const BIAS::Vector3< double > &  gravity = BIAS::Vector3<double>(0,-9.81,0),
const double &  frictioncoefficient = 0.999 
)
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_.

void SceneOpenSceneGraph::Clear ( )

Definition at line 526 of file SceneOpenSceneGraph.cpp.

References CreateStandardNodes_(), and NodeInfoMap_.

long BIAS::Debug::ConsumeNextFreeDebuglevel_ ( )
inlineprotectedinherited

returns the next available debuglevel

Author
woelk 09/2006

Definition at line 521 of file Debug.hh.

std::list< BIAS::HomgPoint3D > SceneBase::CornersFromBoundingBox ( const BIAS::Vector3< double > &  b1,
const BIAS::Vector3< double > &  b2 
)
inherited
osg::Node * SceneOpenSceneGraph::createMirroredScene ( osg::Node *  model,
const BIAS::Vector3< double > &  ul,
const BIAS::Vector3< double > &  ur,
const BIAS::Vector3< double > &  ll,
const BIAS::Vector3< double > &  lr,
const std::string &  mirrortexture,
bool  cutUpperHalf 
)

helper function for mirror effects, called for all subscenes

Definition at line 1317 of file SceneOpenSceneGraph.cpp.

References BIAS::Vector3< T >::Normalize().

Referenced by AddMirror().

void SceneOpenSceneGraph::CreateStandardNodes_ ( )
protected
bool BIAS::Debug::DebugLevelIsSet ( const long int  lv) const
inlineinherited
bool BIAS::Debug::DebugLevelIsSet ( const std::string &  name) const
inlineinherited

Definition at line 350 of file Debug.hh.

void SceneOpenSceneGraph::DisableZWriteForTransparentNodes_ ( )
protected

Definition at line 270 of file SceneOpenSceneGraph.cpp.

References rootTree_.

void SceneOpenSceneGraph::Draw ( )
protectedvirtual

To do anything usefull, overload this method, assume context is ready and draw.

Draw() is called from Render() only if the scene object is active (IsActive == true).

Implements BIAS::SceneBase.

Definition at line 1033 of file SceneOpenSceneGraph.cpp.

References animate_, frameStamp_, headlight_, lightTransform_, sceneView_, startTick_, and timeOffset_.

Referenced by SetAnimationTime().

void SceneBase::DumpInfo ( ) const
inherited
std::list< BIAS::HomgPlane3D > SceneBase::FacesFromBoundingBox ( const BIAS::Vector3< double > &  b1,
const BIAS::Vector3< double > &  b2 
)
inherited
enum EChannel BIAS::SceneBase::GetActiveChannel ( ) const
inlineinherited

Returns the active color channel.

Definition at line 132 of file SceneBase.hh.

static double BIAS::SceneBase::GetAnimationSpeed ( )
inlinestaticinherited

get time quantization for animations

Definition at line 247 of file SceneBase.hh.

void SceneOpenSceneGraph::GetBoundingBox ( BIAS::Vector3< double > &  min,
BIAS::Vector3< double > &  max 
)
virtual

Returns bounding box around the whole scene.

Attention
only works after Init() was called.
Parameters
min[out],:minimum bounding box value
max[out],:maximum bounding box value

Reimplemented from BIAS::SceneBase.

Definition at line 1134 of file SceneOpenSceneGraph.cpp.

References rootTree_.

BIAS::Vector3< double > SceneOpenSceneGraph::GetBoundingBoxCenter ( )

Returns center of bounding box around the whole scene.

Attention
only works after Init() was called.

Definition at line 1124 of file SceneOpenSceneGraph.cpp.

References rootTree_.

int BIAS::Debug::GetDebugLevel ( ) const
inlineinherited
std::ostream& BIAS::Debug::GetDebugStream ( ) const
inlineinherited

Definition at line 405 of file Debug.hh.

void BIAS::Debug::GetDebugStream ( std::ostream &  os) const
inlineinherited

Definition at line 414 of file Debug.hh.

double BIAS::SceneBase::GetElasticity ( )
inlineinherited

returns the elasticity value

Definition at line 184 of file SceneBase.hh.

static long int BIAS::Debug::GetGlobalDebugLevel ( )
inlinestaticinherited

Definition at line 431 of file Debug.hh.

virtual GLProjectionParametersInterface* BIAS::SceneBase::GetGLProjectionParametersInterface ( )
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 RightMouseDoubleClicked().

bool BIAS::SceneBase::GetGravityImmunity ( ) const
inlineinherited

is this scene accelerated by gravity ?

Definition at line 194 of file SceneBase.hh.

Referenced by BIAS::SceneBase::AnimationAndCollision().

void BIAS::SceneBase::GetMomentum ( double &  mass,
BIAS::Vector3< double > &  velocity 
) const
inlineinherited

get mass and velocity in m/s

Definition at line 162 of file SceneBase.hh.

const NodeInfoMap& BIAS::SceneOpenSceneGraph::GetNodeInfoMapRef ( )
inline

Definition at line 192 of file SceneOpenSceneGraph.hh.

POINT_DRAW_STYLE BIAS::SceneBase::GetPointDrawStyle ( )
inlineinherited

Get the drawing style for points.

Definition at line 100 of file SceneBase.hh.

osg::ref_ptr< osg::Node > SceneOpenSceneGraph::GetSceneRoot ( )

returns ref_ptr to root of tree

Author
grauel

Definition at line 1167 of file SceneOpenSceneGraph.cpp.

References rootTree_.

Referenced by GetTreeDescr().

TreeDescr SceneOpenSceneGraph::GetTreeDescr ( )
TRIANGLEMESH_DRAW_STYLE BIAS::SceneBase::GetTriangleMeshDrawStyle ( )
inlineinherited

Get the drawing style for triangles.

Definition at line 106 of file SceneBase.hh.

bool SceneBase::HasBoundingBoxCollision ( SceneBase otherScene)
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().

void SceneOpenSceneGraph::HeadlightSwitch ( bool  on = true)

Toggles the headlight.

Initial headlight state is on.

Definition at line 822 of file SceneOpenSceneGraph.cpp.

References headlight_.

int SceneOpenSceneGraph::Init ( )

Initializes OpenSG tree for scene appendance.

Returns
-1 if gl context was not available.
0 if initialization was successful or was skipped.
Attention
only successful if gl context is available.
Initialization is skipped if already done.
Examples:
ExampleStencilBuffer.cpp.

Definition at line 112 of file SceneOpenSceneGraph.cpp.

References animTime_, CreateStandardNodes_(), and initialized_.

bool BIAS::SceneBase::IsActive ( ) const
inlineinherited

Returns whether the scene is active or not.

Definition at line 127 of file SceneBase.hh.

bool SceneOpenSceneGraph::IsEditableNode ( osg::Node *  node)
void BIAS::SceneOpenSceneGraph::LightRepresentationVisibleSwitch ( )
inline

Toggle the light visible switch.

Definition at line 144 of file SceneOpenSceneGraph.hh.

bool SceneOpenSceneGraph::Load ( std::string  filename)
void BIAS::SceneOpenSceneGraph::MakeOpaque ( )
inline

Definition at line 161 of file SceneOpenSceneGraph.hh.

void SceneOpenSceneGraph::MakeRootShadowNode ( osg::ref_ptr< osg::LightSource >  lightSource)

Definition at line 1282 of file SceneOpenSceneGraph.cpp.

References rootTree_.

void SceneOpenSceneGraph::MakeTransparent ( const double  transparency)

Definition at line 975 of file SceneOpenSceneGraph.cpp.

References rootTree_, and sceneView_.

void SceneBase::MoveScene ( const double &  delta = 1.0)
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().

long int BIAS::Debug::Name2DebugLevel ( const std::string &  name) const
inlineinherited

looks up a debuglevel in the internal map, returns 0 if not found

Author
woelk 09/2006

Definition at line 454 of file Debug.hh.

long int BIAS::Debug::NewDebugLevel ( const std::string &  name)
inlineinherited
std::string SceneOpenSceneGraph::NodePtr2IDString_ ( osg::Node *  node)
protected

Definition at line 781 of file SceneOpenSceneGraph.cpp.

Referenced by Save().

bool BIAS::SceneOpenSceneGraph::OpenSceneGraphAnimationIsPlaying ( )
inline

Definition at line 251 of file SceneOpenSceneGraph.hh.

void BIAS::SceneOpenSceneGraph::OpenSceneGraphAnimationNextFrame ( )
inline

Definition at line 256 of file SceneOpenSceneGraph.hh.

void SceneBase::PerformCollision ( SceneBase otherscene,
const BIAS::Vector3< double > &  contactnormal = BIAS::Vector3<double>(-1e10,-1e10,-1e10) 
)
virtualinherited

compute momentum of each scene after collision

see http://de.wikipedia.org/wiki/Sto%C3%9F_(Physik)

Parameters
contactnormalthe 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_.

void BIAS::Debug::PrintDebugLevel ( std::ostream &  os = std::cout) const
inlineinherited

Definition at line 383 of file Debug.hh.

void BIAS::Debug::RemoveDebugLevel ( const long int  lv)
inlineinherited

Definition at line 369 of file Debug.hh.

void BIAS::Debug::RemoveDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 376 of file Debug.hh.

void SceneOpenSceneGraph::RemoveSubTree ( osg::ref_ptr< osg::Node > &  childNode)

Definition at line 558 of file SceneOpenSceneGraph.cpp.

References NodeInfoMap_, and rootTree_.

Referenced by RemoveSubTreeAndParents().

void SceneOpenSceneGraph::RemoveSubTree ( osg::Node *  childNode)

Definition at line 667 of file SceneOpenSceneGraph.cpp.

References NodeInfoMap_, and rootTree_.

void SceneOpenSceneGraph::RemoveSubTreeAndParents ( osg::Node *  Node)

removes the subtree and the parents except the globalroot of a given node

Definition at line 534 of file SceneOpenSceneGraph.cpp.

References RemoveSubTree(), and rootTree_.

void SceneBase::Render ( )
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_().

void SceneBase::RenderBoundingBox ( )
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().

void SceneOpenSceneGraph::Reset ( )
virtual void BIAS::SceneBase::ResetSelection ( )
inlinevirtualinherited

Reset the selection, overwrite to react on calls to this function in derived classes.

Definition at line 95 of file SceneBase.hh.

bool SceneOpenSceneGraph::RightMouseDoubleClicked ( int  x,
int  y 
)
bool SceneOpenSceneGraph::Save ( std::string  filename)
bool SceneOpenSceneGraph::SaveSubTree ( osg::Node *  node,
const std::string &  fileName 
)

Saves contents beginning at node into a file.

Definition at line 573 of file SceneOpenSceneGraph.cpp.

References BIAS::FileHandling::SplitName().

virtual bool BIAS::SceneBase::SelectObjectAt ( BIAS::Vector3< double > &  p)
inlinevirtualinherited

Select a scene element/primitive at position p.

Overwrite in derived class to react to selections

Parameters
p[in]: position to select object at.
Returns
false if nothing could be done, true on success

Definition at line 92 of file SceneBase.hh.

void BIAS::SceneBase::SetActive ( bool  b)
inlineinherited

Set whether the scene is active or not.

Definition at line 129 of file SceneBase.hh.

void BIAS::SceneBase::SetActiveChannel ( const enum EChannel  channel)
inlineinherited

Set a color channel active.

Definition at line 135 of file SceneBase.hh.

void SceneOpenSceneGraph::SetAnimate ( const bool  animate)

Definition at line 829 of file SceneOpenSceneGraph.cpp.

References animate_, lastPauseTime_, startTick_, and timeOffset_.

static void BIAS::SceneBase::SetAnimationSpeed ( double  s)
inlinestaticinherited

set time quantization for animations

Definition at line 242 of file SceneBase.hh.

void SceneOpenSceneGraph::SetAnimationTime ( const double  current_time,
bool  CallDraw = true 
)

setanimationtime() calls draw.

this may not be the desired behaviour in certain cases. therefore a "CallDraw" flag has been added.

Definition at line 1017 of file SceneOpenSceneGraph.cpp.

References animate_, Draw(), and frameStamp_.

void BIAS::SceneOpenSceneGraph::SetClearMask ( int  clearMask)
inline

Definition at line 224 of file SceneOpenSceneGraph.hh.

void BIAS::SceneBase::SetColorMask ( bool  red = true,
bool  green = true,
bool  blue = true,
bool  alpha = true 
)
inlineinherited

sets a color mask for the scene rendering

Definition at line 139 of file SceneBase.hh.

Referenced by BIAS::SceneBase::SceneBase().

void BIAS::Debug::SetDebugLevel ( const long int  lv)
inlineinherited
void BIAS::Debug::SetDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 325 of file Debug.hh.

void BIAS::Debug::SetDebugStream ( const std::ostream &  os)
inlineinherited

Definition at line 398 of file Debug.hh.

void BIAS::SceneBase::SetElasticity ( const double &  elas)
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.

void SceneOpenSceneGraph::SetFixedDirectionalLight ( bool  on,
BIAS::Vector3< double >  dirDirectionalLight 
)

Definition at line 815 of file SceneOpenSceneGraph.cpp.

void SceneOpenSceneGraph::SetFixedPointLight ( bool  on,
BIAS::Vector3< double >  posPointLight 
)

Removes the camera as a beacon for the lights and sets a fixed position for Point Light or fixed direction for Directional Light.

Definition at line 791 of file SceneOpenSceneGraph.cpp.

References headlight_, light_, and lightTransform_.

Referenced by CreateStandardNodes_().

static void BIAS::Debug::SetGlobalDebugLevel ( long int  lev)
inlinestaticinherited

Definition at line 424 of file Debug.hh.

virtual void BIAS::SceneBase::SetGLProjectionParametersInterface ( GLProjectionParametersInterface nc)
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().

void BIAS::SceneBase::SetGravityImmunity ( bool  i)
inlineinherited

set behaviour with respect to gravity

Definition at line 189 of file SceneBase.hh.

void BIAS::SceneBase::SetMomentum ( const double &  mass,
const BIAS::Vector3< double > &  velocity 
)
inlineinherited

set mass and velocity in m/s

Definition at line 168 of file SceneBase.hh.

void SceneOpenSceneGraph::SetNodeMarkerID ( osg::Node *  node,
const unsigned long long &  id 
)
void SceneOpenSceneGraph::SetNodeOccluder ( osg::Node *  node,
const bool  state 
)
void SceneOpenSceneGraph::SetNodeVisible ( osg::Node *  node,
const bool  visible 
)

sets node visbility in guis like treectrlopensgwx this changes only the nodeinfomap and has no effect on the rendering of the node.

if you want to toggle the rendering of nodes use open scene graph methods e.g. node switches.

Definition at line 1184 of file SceneOpenSceneGraph.cpp.

References BIAS::OpenSceneGraphHelper::AddOrSetInfo(), and NodeInfoMap_.

Referenced by AppendSubTreeFromFile(), AppendSubTreeFromImageFile(), AppendSubTreeSwitch(), and CreateStandardNodes_().

void BIAS::SceneBase::SetPointDrawStyle ( POINT_DRAW_STYLE  style)
inlineinherited

Set the drawing style for points.

Definition at line 98 of file SceneBase.hh.

virtual void BIAS::SceneBase::SetRenderBoundingBox ( bool  render)
inlinevirtualinherited

Set whether to render the boundign box or not.

Definition at line 109 of file SceneBase.hh.

void BIAS::SceneBase::SetTriangleMeshDrawStyle ( TRIANGLEMESH_DRAW_STYLE  style)
inlineinherited

Set the drawing style for triangles.

Definition at line 103 of file SceneBase.hh.

void BIAS::Debug::ShowDebugLevel ( std::ostream &  os = std::cout) const
inlineinherited

prints all internally known debuglevels

Author
woelk 09/2006

Definition at line 496 of file Debug.hh.

void BIAS::SceneOpenSceneGraph::StartOpenSceneGraphAnimation ( )
inline

Definition at line 235 of file SceneOpenSceneGraph.hh.

void BIAS::SceneOpenSceneGraph::StopOpenSceneGraphAnimation ( )
inline

Definition at line 244 of file SceneOpenSceneGraph.hh.

double SceneBase::TimeToContact ( SceneBase otherScene,
BIAS::Vector3< double > &  collisionpoint 
)
virtualinherited
virtual void BIAS::SceneBase::UpdateCameraRelatedState ( )
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.

void SceneOpenSceneGraph::UpdateLightRepresentation_ ( )
protected
void BIAS::SceneOpenSceneGraph::UpdateTraversal ( )
inline

Definition at line 229 of file SceneOpenSceneGraph.hh.

Member Data Documentation

long int BIAS::Debug::_liDebugLevel
protectedinherited

Definition at line 510 of file Debug.hh.

Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().

long int BIAS::Debug::_liNextDebugLevel
protectedinherited

new concept, debuglevel are managed here in the debug class

Definition at line 516 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

std::map<std::string, long int> BIAS::Debug::_String2Debuglevel
protectedinherited

Definition at line 517 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

std::ostream BIAS::Debug::_zDebugStream
staticprotectedinherited

Definition at line 511 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

enum EChannel BIAS::SceneBase::ActiveChannel_
protectedinherited

Definition at line 265 of file SceneBase.hh.

Referenced by BIAS::SceneBase::DumpInfo().

bool BIAS::SceneOpenSceneGraph::animate_
protected

Definition at line 279 of file SceneOpenSceneGraph.hh.

Referenced by Draw(), Reset(), SetAnimate(), and SetAnimationTime().

MyBasicAnimationManager BIAS::SceneOpenSceneGraph::animationManager_
protected

Definition at line 281 of file SceneOpenSceneGraph.hh.

Referenced by AppendSubTreeFromFile().

double SceneBase::animationSpeed_ = 1.0
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().

double BIAS::SceneOpenSceneGraph::animTime_
protected

Definition at line 282 of file SceneOpenSceneGraph.hh.

Referenced by Init().

BIAS::GLProjectionParametersInterface* BIAS::SceneBase::camera_
protectedinherited

Definition at line 266 of file SceneBase.hh.

Referenced by BIAS::SceneBase::DumpInfo().

int BIAS::SceneOpenSceneGraph::clearMask_
protected

Definition at line 297 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_(), and Reset().

GLboolean BIAS::SceneBase::colorMask_[4]
protectedinherited

Definition at line 267 of file SceneBase.hh.

Referenced by BIAS::SceneBase::DumpInfo(), and BIAS::SceneBase::Render().

POINT_DRAW_STYLE BIAS::SceneBase::dPointDrawStyle_
protectedinherited

Definition at line 260 of file SceneBase.hh.

Referenced by BIAS::SceneBase::SceneBase().

TRIANGLEMESH_DRAW_STYLE BIAS::SceneBase::dTriangleMeshDrawStyle_
protectedinherited

Definition at line 261 of file SceneBase.hh.

Referenced by BIAS::SceneBase::SceneBase().

double BIAS::SceneBase::elasticity_
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().

osg::observer_ptr<osgViewer::GraphicsWindow> BIAS::SceneOpenSceneGraph::embedWindow_
protected

Definition at line 264 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_().

int BIAS::SceneOpenSceneGraph::frameNumber_
protected

Definition at line 275 of file SceneOpenSceneGraph.hh.

Referenced by Reset().

osg::ref_ptr<osg::FrameStamp> BIAS::SceneOpenSceneGraph::frameStamp_
protected

Definition at line 272 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_(), Draw(), Reset(), and SetAnimationTime().

long int BIAS::Debug::GlobalDebugLevel = 0
staticprotectedinherited

Definition at line 513 of file Debug.hh.

bool BIAS::SceneBase::gravityImmunity_
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().

bool BIAS::SceneOpenSceneGraph::hasOpenSceneGraphAnimation_
protected

Definition at line 261 of file SceneOpenSceneGraph.hh.

Referenced by AppendSubTreeFromFile().

bool BIAS::SceneOpenSceneGraph::headlight_
protected

Definition at line 277 of file SceneOpenSceneGraph.hh.

Referenced by Draw(), HeadlightSwitch(), Reset(), and SetFixedPointLight().

bool BIAS::SceneOpenSceneGraph::initialized_
protected

Definition at line 262 of file SceneOpenSceneGraph.hh.

Referenced by Init(), Reset(), and ~SceneOpenSceneGraph().

bool BIAS::SceneBase::IsActive_
protectedinherited

Definition at line 263 of file SceneBase.hh.

Referenced by BIAS::SceneBase::DumpInfo(), and BIAS::SceneBase::Render().

double BIAS::SceneOpenSceneGraph::lastPauseTime_
protected

Time when the animation was paused for the last time.

Definition at line 274 of file SceneOpenSceneGraph.hh.

Referenced by Reset(), and SetAnimate().

osg::ref_ptr<osg::Light> BIAS::SceneOpenSceneGraph::light_
protected

Definition at line 269 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_(), and SetFixedPointLight().

osg::ref_ptr<osg::Geode> BIAS::SceneOpenSceneGraph::lightRepresentationGeode_
protected

Definition at line 268 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_(), Reset(), and UpdateLightRepresentation_().

osg::ref_ptr<osg::Switch> BIAS::SceneOpenSceneGraph::lightRepresentationSwitch_
protected

Definition at line 267 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_(), Reset(), and UpdateLightRepresentation_().

bool BIAS::SceneOpenSceneGraph::lightRepresentationVisible_
protected

Definition at line 278 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_(), Reset(), and UpdateLightRepresentation_().

osg::ref_ptr<osg::MatrixTransform> BIAS::SceneOpenSceneGraph::lightTransform_
protected

Definition at line 266 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_(), Draw(), Reset(), and SetFixedPointLight().

double BIAS::SceneBase::mass_
protectedinherited
NodeInfoMap BIAS::SceneOpenSceneGraph::NodeInfoMap_
protected
bool BIAS::SceneBase::renderBoundingBox_
protectedinherited

show the bounding box ?

Definition at line 278 of file SceneBase.hh.

Referenced by BIAS::SceneBase::Render(), and BIAS::SceneBase::SceneBase().

osg::ref_ptr<osg::Group> BIAS::SceneOpenSceneGraph::rootTree_
protected
osg::ref_ptr<osgViewer::Viewer> BIAS::SceneOpenSceneGraph::sceneView_
protected

Definition at line 263 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_(), Draw(), Load(), MakeTransparent(), and Reset().

osg::Timer_t BIAS::SceneOpenSceneGraph::startTick_
protected

Definition at line 271 of file SceneOpenSceneGraph.hh.

Referenced by CreateStandardNodes_(), Draw(), and SetAnimate().

double BIAS::SceneOpenSceneGraph::timeOffset_
protected

Time offset because of time "pauses".

Definition at line 273 of file SceneOpenSceneGraph.hh.

Referenced by Draw(), Reset(), and SetAnimate().

osg::Timer BIAS::SceneOpenSceneGraph::timer_
protected

Definition at line 270 of file SceneOpenSceneGraph.hh.

BIAS::Vector3<double> BIAS::SceneBase::velocity_
protectedinherited

The documentation for this class was generated from the following files: