table of contents
SoXtViewer(3IV)() | SoXtViewer(3IV)() |
NAME¶
SoXtViewer — viewer component lowest base classINHERITS FROM¶
SoXtComponent > SoXtGLWidget > SoXtRenderArea > SoXtViewerSYNOPSIS¶
#include <Inventor/Xt/viewers/SoXtViewer.h>typedef void SoXtViewerCB(void *userData, SoXtViewer *viewer)
enum Type {
SoXtViewer::BROWSER camera views scene, but is not added to scene
SoXtViewer::EDITOR camera is added to user's scene
}
enum DrawStyle {
SoXtViewer::VIEW_AS_IS unchanged
SoXtViewer::VIEW_HIDDEN_LINE render only the front most lines
SoXtViewer::VIEW_NO_TEXTURE render withought textures
SoXtViewer::VIEW_LOW_COMPLEXITY render low complexity and no texture
SoXtViewer::VIEW_LINE wireframe draw style
SoXtViewer::VIEW_LOW_RES_LINE low complexity wireframe with no depth comparison
SoXtViewer::VIEW_POINT point draw style
SoXtViewer::VIEW_LOW_RES_POINT low complexity point with no depth comparison
SoXtViewer::VIEW_BBOX bounding box draw style with no depth comparison
SoXtViewer::VIEW_SAME_AS_STILL forces the INTERACTIVE draw style to automatically match STILL
}
enum DrawType {
SoXtViewer::STILL applies to static rendering
SoXtViewer::INTERACTIVE applies to rendering while interactive viewing
}
enum BufferType {
SoXtViewer::BUFFER_SINGLE single buffer
SoXtViewer::BUFFER_DOUBLE double buffer
SoXtViewer::BUFFER_INTERACTIVE double buffer while interactive viewing
}
Methods from class SoXtViewer:
virtual void setCamera(SoCamera *cam)
SoCamera * getCamera()
virtual void setCameraType(SoType type)
SoType getCameraType()
virtual void viewAll()
virtual void saveHomePosition()
virtual void resetToHomePosition()
virtual void setHeadlight(SbBool onOrOff)
SbBool isHeadlight()
SoDirectionalLight * getHeadlight()
virtual void setDrawStyle(SoXtViewer::DrawType type, SoXtViewer::DrawStyle style)
SoXtViewer::DrawStyle getDrawStyle(SoXtViewer::DrawType type)
virtual void setBufferingType(SoXtViewer::BufferType type)
SoXtViewer::BufferType getBufferingType()
virtual void setViewing(SbBool onOrOff)
SbBool isViewing() const
virtual void setCursorEnabled(SbBool onOrOff)
SbBool isCursorEnabled() const
void setAutoClipping(SbBool onOrOff)
SbBool isAutoClipping() const
virtual void setStereoViewing(SbBool onOrOff)
virtual SbBool isStereoViewing()
void setStereoOffset(float dist)
float getStereoOffset()
void setDetailSeek(SbBool onOrOff)
SbBool isDetailSeek()
void setSeekTime(float seconds)
float getSeekTime()
void addStartCallback(SoXtViewerCB *f, void *userData = NULL)
void addFinishCallback(SoXtViewerCB *f, void *userData = NULL)
void removeStartCallback(SoXtViewerCB *f, void *userData = NULL)
void removeFinishCallback(SoXtViewerCB *f, void *userData = NULL)
void copyView(Time eventTime)
void pasteView(Time eventTime)
virtual void recomputeSceneSize()
Methods from class SoXtRenderArea:
virtual void setSceneGraph(SoNode *newScene)
virtual SoNode * getSceneGraph()
void setOverlaySceneGraph(SoNode *newScene)
SoNode * getOverlaySceneGraph()
void registerDevice(SoXtDevice *)
void unregisterDevice(SoXtDevice *)
void setBackgroundColor(const SbColor &c)
const SbColor & getBackgroundColor() const
void setBackgroundIndex(int index)
int getBackgroundIndex() const
void setOverlayBackgroundIndex(int index)
int getOverlayBackgroundIndex() const
void setColorMap(int startIndex, int num, const SbColor *colors)
void setOverlayColorMap(int startIndex, int num, const SbColor *colors)
void setViewportRegion(const SbViewportRegion &newRegion)
const SbViewportRegion & getViewportRegion() const
void setTransparencyType(SoGLRenderAction::TransparencyType type)
SoGLRenderAction::TransparencyType getTransparencyType () const
void setAntialiasing(SbBool smoothing, int numPasses)
void getAntialiasing(SbBool &smoothing, int &numPasses) const
void setClearBeforeRender(SbBool trueOrFalse)
SbBool isClearBeforeRender() const
void setClearBeforeOverlayRender(SbBool trueOrFalse)
SbBool isClearBeforeOverlayRender() const
void setAutoRedraw(SbBool trueOrFalse)
SbBool isAutoRedraw() const
void setRedrawPriority(uint32_t priority)
uint32_t getRedrawPriority() const
static uint32_t getDefaultRedrawPriority()
void render()
void renderOverlay()
void scheduleRedraw()
void scheduleOverlayRedraw()
void redrawOnSelectionChange(SoSelection *s)
void redrawOverlayOnSelectionChange(SoSelection *s)
void setEventCallback(SoXtRenderAreaEventCB *fcn, void *userData = NULL)
void setGLRenderAction(SoGLRenderAction *ra)
SoGLRenderAction * getGLRenderAction() const
void setOverlayGLRenderAction(SoGLRenderAction *ra)
SoGLRenderAction * getOverlayGLRenderAction() const
void setSceneManager(SoSceneManager *sm)
SoSceneManager * getSceneManager() const
void setOverlaySceneManager(SoSceneManager *sm)
SoSceneManager * getOverlaySceneManager() const
Methods from class SoXtGLWidget:
void setBorder(SbBool onOrOff)
SbBool isBorder() const
virtual void setDoubleBuffer(SbBool onOrOff)
SbBool isDoubleBuffer()
Window getNormalWindow()
Window getOverlayWindow()
GLXContext getNormalContext()
GLXContext getOverlayContext()
Widget getNormalWidget()
Widget getOverlayWidget()
virtual void setNormalVisual(XVisualInfo *vis)
XVisualInfo * getNormalVisual()
virtual void setOverlayVisual(XVisualInfo *vis)
XVisualInfo * getOverlayVisual()
void setDrawToFrontBufferEnable(SbBool enableFlag)
SbBool isDrawToFrontBufferEnable() const
Methods from class SoXtComponent:
virtual void show()
virtual void hide()
SbBool isVisible()
Widget getWidget() const
SbBool isTopLevelShell() const
Widget getShellWidget() const
Widget getParentWidget() const
void setSize(const SbVec2s &size)
SbVec2s getSize()
Display * getDisplay()
void setTitle(const char *newTitle)
const char * getTitle() const
void setIconTitle(const char *newIconTitle)
const char * getIconTitle() const
void setWindowCloseCallback(SoXtComponentCB *func, void *data = NULL)
static SoXtComponent * getComponent(Widget w)
const char * getWidgetName() const
const char * getClassName() const
DESCRIPTION¶
This is the lowest base class for viewer components. This class adds the notion of a camera to the SoXtRenderArea class. Whenever a new scene is specified with setSceneGraph(), the first camera encountered will be by default used as the edited camera. If no camera is found in the scene, the viewer will automatically create one. If the viewer type is SoXtViewer::BROWSER then the camera is told to view the supplied scene graph but is not added beneath that scene graph root. If the viewer type is SoXtViewer::EDITOR then the camera is added beneath the supplied scene graph root.METHODS¶
virtual void setCamera(SoCamera *cam)
SoCamera * getCamera()
Set and get the edited camera. Setting the camera is only needed if the first camera found in the scene when setting the scene graph isn't the one the user really wants to edit.
virtual void setCameraType(SoType type)
SoType getCameraType()
Set and get the camera type that will be created by the viewer if no cameras are found in the scene graph (see SoPerspectiveCamera and SoOrthographicCamera). By default an SoPerspectiveCamera will be created if no camera are found.
virtual void viewAll()
Changes the camera position to view the entire scene (the camera zoom or orientation isn't changed).
virtual void saveHomePosition()
virtual void resetToHomePosition()
Saves and restores the camera values.
virtual void setHeadlight(SbBool onOrOff)
SbBool isHeadlight()
SoDirectionalLight * getHeadlight()
Turns the headlight on/off (default on) and return the headlight node.
virtual void setDrawStyle(SoXtViewer::DrawType type, SoXtViewer::DrawStyle style)
SoXtViewer::DrawStyle getDrawStyle(SoXtViewer::DrawType type)
Sets/gets the current drawing style in the main view — The user can specify the INTERACTIVE draw style (draw style used when the scene changes) independently from the STILL style. STILL defaults to VIEW_AS_IS. INTERACTIVE defaults to VIEW_NO_TEXTURE on machine that do not support fast texturing, VIEW_SAME_AS_STILL otherwise. Possible draw styles are:
virtual void setBufferingType(SoXtViewer::BufferType type)
SoXtViewer::BufferType getBufferingType()
Sets/gets the current buffering type in the main view (default SoXtViewer::BUFFER_DOUBLE).
virtual void setViewing(SbBool onOrOff)
SbBool isViewing() const
Set/get whether the viewer is turned on or off. When turned on, events are consumed by the viewer. When viewing is off, events are processed by the viewers render area. This means events will be sent down to the scene graph for processing (i.e. picking can occur). Note that if the application has registered an event callback, it will be invoked on every event, whether viewing is turned on or not. However, the return value of this callback (which specifies whether the callback handled the event or not) is ignored when viewing is on. That is, the viewer will process the event even if the callback already did. This is to ensure that the viewing paradigm is not broken (default viewing is ON).
virtual void setCursorEnabled(SbBool onOrOff)
SbBool isCursorEnabled() const
Set/get whether the viewer is allowed to change the cursor over the renderArea window. When disabled, the cursor is undefined by the viewer and will not change as the mode of the viewer changes. When re-enabled, the viewer will reset it to the appropriate icon.
void setAutoClipping(SbBool onOrOff)
SbBool isAutoClipping() const
Set and get the auto clipping plane. When auto clipping is ON, the camera near and far planes are dynamically adjusted to be as tight as possible around the objects being viewed. When OFF, the user is expected to manually set those planes within the preference sheet (default is on).
virtual void setStereoViewing(SbBool onOrOff)
virtual SbBool isStereoViewing()
void setStereoOffset(float dist)
float getStereoOffset()
Turns stereo viewing on/off on the viewer (default off). When in stereo mode, which may not work on all machines, the scene is rendered twice (in the left and right buffers) with an offset between the two views to simulate stereo viewing. Stereo glasses have to be used to see the effect and /usr/gfx/setmon needs to be called to set the monitor in stereo mode.
void setDetailSeek(SbBool onOrOff)
SbBool isDetailSeek()
When the viewer is in seek mode, left mouse clicks initiate a pick, and the viewer changes its orientation and position to look at the picked object. This routine tells the seeking viewer whether to orient the camera towards the picked point (detail on), or the center of the object's bounding box (detail off). Default is detail on.
void setSeekTime(float seconds)
float getSeekTime()
Set the time a seek takes to change to the new camera location. A value of zero seeks directly to the point without any animation. Default value is 2 seconds.
void addStartCallback(SoXtViewerCB *f, void *userData = NULL)
void addFinishCallback(SoXtViewerCB *f, void *userData = NULL)
void removeStartCallback(SoXtViewerCB *f, void *userData = NULL)
void removeFinishCallback(SoXtViewerCB *f, void *userData = NULL)
Add/remove start and finish callback routines on the viewer. Start callbacks are called whenever the user starts doing interactive viewing (for example, mouse down), and finish callbacks are called when user is done doing interactive work (for example, mouse up).
void copyView(Time eventTime)
void pasteView(Time eventTime)
Copy/paste the view. eventTime should be the time of the X event which initiated the copy or paste (e.g. if copy/paste is initiated from a keystroke, eventTime should be the time in the X KeyPress event.)
virtual void recomputeSceneSize()
This can be used to let the viewer know that the scene graph has changed so that the viewer can recompute things like speed which depend on the scene graph size. Note: This routine is automatically called whenever setSceneGraph() is called.