DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
DGtal::IVViewer Class Reference

#include <IVViewer.h>

Public Member Functions

 ~IVViewer ()
 IVViewer (int argc=0, char **argv=0)
SoSeparator * root () const
void setTitle (const std::string &title)
void setCamera (float latitude, float longitude)
void show () const
void selfDisplay (std::ostream &out) const
bool isValid () const

Protected Member Functions

 IVViewer ()

Private Member Functions

 IVViewer (const IVViewer &other)
IVVieweroperator= (const IVViewer &other)

Private Attributes

QWidget * myWindow
SoQtExaminerViewer * myViewer
SoSeparator * myRoot
std::string myTitle

Detailed Description

Aim: A facade to represent an inventor window for 3D objects. May be a SoXt or a SoQt examiner viewer. NB: backported from ImaGeneUtils library.

Description of class 'IVViewer'

Todo:
SoXt is yet not checked.

Definition at line 74 of file IVViewer.h.


Constructor & Destructor Documentation

DGtal::IVViewer::~IVViewer ( )

Destructor.

Definition at line 47 of file IVViewer.cpp.

{
#ifdef SGI_INVENTOR
if ( myViewer != 0 ) delete (SoXtExaminerViewer*) myViewer;
// if ( myWindow != 0 ) delete (Widget) myWindow;
#else
if ( myViewer != 0 ) delete (SoQtExaminerViewer*) myViewer;
// if ( myWindow != 0 ) delete (QWidget*) myWindow;
#endif
if ( myRoot != 0 ) myRoot->unref();
}
DGtal::IVViewer::IVViewer ( int  argc = 0,
char **  argv = 0 
)

Constructor.

Parameters:
argcthe number of parameters.
argvan array of C strings storing the parameters.

Definition at line 66 of file IVViewer.cpp.

References myRoot, myViewer, and myWindow.

: myWindow( 0 ), myViewer( 0 ), myRoot( 0 ), myTitle( "IVViewer" )
{
// Initialize Inventor and Xt
#ifdef SGI_INVENTOR
cout << "Initializing Inventor and Xt..." << endl;
myWindow = (Widget) SoXt::init( argc, argv, "Digital Viewer" );
#else
cout << "Initializing Inventor and Qt..." << endl;
myWindow = (QWidget*) SoQt::init( argc, argv, "Digital Viewer" );
#endif
if (myWindow == 0) exit(1);
// Define Inventor node.
cout << "Creating node, shapehints, material..." << endl;
myRoot = new SoSeparator;
myRoot->ref();
#ifdef SGI_INVENTOR
myViewer = (SoXtExaminerViewer *)
new SoXtExaminerViewer( (Widget) myWindow );
#else
myViewer = (SoQtExaminerViewer *)
new SoQtExaminerViewer( (QWidget*) myWindow );
#endif
}
DGtal::IVViewer::IVViewer ( )
protected

Constructor. Forbidden by default (protected to avoid g++ warnings).

DGtal::IVViewer::IVViewer ( const IVViewer other)
private

Copy constructor.

Parameters:
otherthe object to clone. Forbidden by default.

Member Function Documentation

bool DGtal::IVViewer::isValid ( ) const

Checks the validity/consistency of the object.

Returns:
'true' if the object is valid, 'false' otherwise.

Definition at line 181 of file IVViewer.cpp.

{
return true;
}
IVViewer& DGtal::IVViewer::operator= ( const IVViewer other)
private

Assignment.

Parameters:
otherthe object to copy.
Returns:
a reference on 'this'. Forbidden by default.
SoSeparator * DGtal::IVViewer::root ( ) const
Returns:
the root of the scene graph.

Definition at line 98 of file IVViewer.cpp.

{
return myRoot;
}
void DGtal::IVViewer::selfDisplay ( std::ostream &  out) const

Writes/Displays the object on an output stream.

Parameters:
outthe output stream where the object is written.

Definition at line 171 of file IVViewer.cpp.

{
out << "[IVViewer]";
}
void DGtal::IVViewer::setCamera ( float  latitude,
float  longitude 
)

Sets the parameters of the observing camera with Euler spherical coordinates.

Parameters:
latitudethe latitude of observation (in degrees)
longitudethe longitude of observation (in degrees)

Definition at line 120 of file IVViewer.cpp.

References M_PI.

{
SbVec3f x_axis( 1.0, 0.0, 0.0 );
latitude *= M_PI / 180.0f;
SbRotation x_rot( x_axis, latitude );
SbVec3f y_axis( 0.0, 1.0, 0.0 );
longitude *= - M_PI / 180.0f;
SbRotation y_rot( y_axis, longitude );
SoTransform* transform = new SoTransform;
transform->rotation.setValue( y_rot * x_rot );
myRoot->insertChild( transform, 0 );
}
void DGtal::IVViewer::setTitle ( const std::string &  title)
Parameters:
titlethe name of the window.

Definition at line 106 of file IVViewer.cpp.

{
myTitle = title;
}
void DGtal::IVViewer::show ( ) const

Show window and gives hand to inventor main loop.

Definition at line 138 of file IVViewer.cpp.

{
#ifdef SGI_INVENTOR
SoXtExaminerViewer* lViewer = (SoXtExaminerViewer*) myViewer;
#else
SoQtExaminerViewer* lViewer = (SoQtExaminerViewer*) myViewer;
#endif
lViewer->setSceneGraph( myRoot );
// lViewer->setTitle( myTitle.c_str() );
lViewer->show();
lViewer->viewAll();
#ifdef SGI_INVENTOR
SoXt::show((Widget) myWindow);
SoXt::mainLoop();
#else
SoQt::show((QWidget*) myWindow);
SoQt::mainLoop();
#endif
}

Field Documentation

SoSeparator* DGtal::IVViewer::myRoot
private

The root of the scene graph.

Definition at line 160 of file IVViewer.h.

Referenced by IVViewer().

std::string DGtal::IVViewer::myTitle
private

The title of the window.

Definition at line 165 of file IVViewer.h.

SoQtExaminerViewer* DGtal::IVViewer::myViewer
private

Inventor viewer. May be a SoXtExaminerViewer* or a SoQtExaminerViewer*

Definition at line 154 of file IVViewer.h.

Referenced by IVViewer().

QWidget* DGtal::IVViewer::myWindow
private

Inventor window. May be a Widget or a QWidget*.

Definition at line 149 of file IVViewer.h.

Referenced by IVViewer().


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