Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SoXtViewer(3IV)()					     SoXtViewer(3IV)()

NAME
       SoXtViewer -- viewer component lowest base class

INHERITS FROM
       SoXtComponent > SoXtGLWidget > SoXtRenderArea > SoXtViewer

SYNOPSIS
       #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 com-
					    parison
	  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	*user-
				  Data = NULL)
     void		     removeFinishCallback(SoXtViewerCB *f, void	*user-
				  Data = 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 Sb-
				    Color *colors)
     void		       setOverlayColorMap(int  startIndex,  int	  num,
				    const SbColor *colors)
     void		       setViewportRegion(const	      SbViewportRegion
				    &newRegion)
     const SbViewportRegion &  getViewportRegion() const
     void		       setTransparencyType(SoGLRenderAction::Trans-
				    parencyType	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.

       In  addition  to	 automatically	creating a camera if needed, this base
       class also creates a headlight (directional light which is made to fol-
       low  the	camera), enables the user to change drawing styles (like wire-
       frame or	move wireframe), and buffering types.  This  base  class  also
       provides	 a  convenient	way  to	 have the camera near and far clipping
       planes be automatically adjusted	to minimize the	clipping of objects in
       the scene.

       Viewers	allow the application to shadow	event processing. When the ap-
       plication registers an event processing callback	by  calling  setEvent-
       Callback()  the	viewer	will invoke this callback for every X event it
       receives. However, unlike the render area, the viewer ignores  the  re-
       turn value of this callback, and	processes the event as usual. This al-
       lows the	application to expand viewing  capabilities  without  breaking
       the  viewing paradigm. It is an easy way	to hook	up other devices, like
       the spaceball, to an existing viewer.

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.

	  Note:	 the  set method will only take	effect next time a scene graph
	  is specified (and 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.	Possi-
	  ble draw styles are:

	  VIEW_AS_IS --	Leaves the objects unchanged.

	  VIEW_HIDDEN_LINE -- Renders the object as wireframe, but  only  show
	  the  object  front faces. This is accomplished using a two pass ren-
	  dering. In the first pass, the objects are rendered as FILLED	 using
	  the background BASE_COLOR (this sets up the wanted z-buffer values).
	  The second pass then renders the objects as LINES,  while  adjusting
	  the z-buffer range to	limit overlapping polygons problems.

	  VIEW_NO_TEXTURE -- Renders the objects withought any textures.  This
	  is done by setting the override flag on an  SoComplexity  node  with
	  textureQuality = 0.

	  VIEW_LOW_COMPLEXITY  --  Renders  the	objects	withought any textures
	  and with a low complexity. This is done by setting the override flag
	  on an	SoComplexity node with textureQuality =	0 and complexity value
	  = 0.15.

	  VIEW_LINE -- Renders the objects as LINES (no	texture) with lighting
	  model	set to BASE_COLOR.

	  VIEW_LOW_RES_LINE -- Renders the objects as LINES (no	texture) using
	  a low	complexity, with lighting model	set to BASE_COLOR and no depth
	  comparison.

	  VIEW_POINT --	Renders	the objects as POINTS (no texture) with	light-
	  ing model set	to BASE_COLOR.

	  VIEW_LOW_RES_POINT --	Renders	the objects as POINTS (no texture) us-
	  ing  a  low complexity, with lighting	model set to BASE_COLOR	and no
	  depth	comparison.

	  VIEW_BBOX --	Renders	 the  objects  with  complexity	 BOUNDING_BOX,
	  lighting  model  set	to BASE_COLOR and drawing style	LINES (no tex-
	  ture)	with no	depth comparison.

	  VIEW_SAME_AS_STILL --	This only applies to INTERACTIVE draw type. It
	  enables  the	interactive  draw style	mode to	match the regular draw
	  style	mode withough having to	set it explicitly.

     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 bro-
	  ken (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.

	  Disabling the	cursor enables the application to set the  cursor  di-
	  rectly  on  the viewer window	or on any parent widget	of the viewer.
	  This can be used when	setting	 a  busy  cursor  on  the  application
	  shell.

	  Subclasses should redefine this routine to call XUndefineCursor() or
	  XDefineCursor() with the appropariate	glyth. The base	class  routine
	  only sets the	flag.

     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  ren-
	  dered	 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.

	  The user can also specify what the  offset  between  the  two	 views
	  should be.

     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 ori-
	  ent 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. De-
	  fault	value is 2 seconds.

     void		     addStartCallback(SoXtViewerCB  *f,	void *userData
				  = NULL)
     void		     addFinishCallback(SoXtViewerCB *f,	void *userData
				  = NULL)
     void		     removeStartCallback(SoXtViewerCB  *f, void	*user-
				  Data = NULL)
     void		     removeFinishCallback(SoXtViewerCB *f, void	*user-
				  Data = 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).

	  Note:	The viewer "this" pointer is passed as callback	data.

     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 de-
	  pend	on  the	 scene graph size. Note: This routine is automatically
	  called whenever setSceneGraph() is called.

SEE ALSO
       SoXtComponent,  SoXtRenderArea,	 SoXtExaminerViewer,   SoXtWalkViewer,
       SoXtFlyViewer, SoXtPlaneViewer

							     SoXtViewer(3IV)()

NAME | INHERITS FROM | SYNOPSIS | DESCRIPTION | METHODS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SoXtViewer&sektion=3iv&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help