HDB

HBaseModel

HBaseView

HEventInfo

HModelInfo

HSelectionSet

Operator Classes

HBaseOperator 
Camera Operators

HOpCameraOrbit
HOpCameraPan
HOpCameraWalk
HOpCameraZoom
HOpCameraZoomBox

Object Operators

HOpObjectRotate
HOpObjectTranslate

Selection Operators

HOpSelectAperture
HOpSelectArea

Construction Geometry Operators

HOpConstructPolyline
HOpConstructRectangle

Creation Operators

HOpCreateCone
HOpCreateCylinder
HOpCreateSphere
HOpCreateCuttingPlane

 Utility Classes

HUtility 

HUtilityImage


HOOPS/MVO Class Reference

HDB

Stores the information of how many and which type of HOOPS driver instances the associated object HBaseView creates. It also initializes some HOOPS attributes in its Init method. 

HDB.h
 
 

HBaseModel

Encapsulates an Include Library segment and its sub-segments. Geometry may be read into the HBaseModel from a HMF file or explicitly created using one of the Model Operator objects. It is typically referenced by an HBaseView object, specifically meaning that the HBaseModel's Include Library segment is included in the HBaseView's "scene" segment. 

HBaseModel.h
 
 

HBaseView

Encapsulates a HOOPS Driver Instance segment and its subsegments. Its Init method creates a default segment structure under the driver instance segment which is used to manage such things as the inclusion of the HBaseModel segment in the Include Library, lights for the scene, and segments with camera and window attributes convenient for temporary graphics based on user input. 

The HBaseView object has associations with the following objects: 

  • HBaseModel
  • HEventInfo
  • HSelectionSet
  • HBaseOperator
It also implements the following viewing manipulations by setting the appropriate HOOPS camera attributes: 
  • Fit the view's camera to the model's extents,
  • Fit the view's camera to the extents of the current selection set
  • Fit the view's camera to the extents of the entire world.
  • Set View to default angles (XY, YZ, XZ target planes)
It also manages storing and setting the HOOPS segment attributes for: 
  • Rendering methods
  • Hidden Surface Removal Algorithms
  • Lighting Interpolation
  • Camera Projection
HBaseView.h
 
 

HEventInfo

Encapsulates the information associated with a HOOPS event including the type (keyboard, mouse, timer), the location in various coordinate systems and the mouse state. 

HEventInfo.h
 
 
 

HModelInfo

Computes and encapsulates statistical information associated with an HBaseModel object such as total number of triangles, vertices, and faces. 

HModelInfo.h
 


HSelectionSet

Manages the creation of a set of HOOPS segments and/or geometry defined by a series of HOOPS selection events including providing visual feedback by changing the color of the members of the selection set. 

HSelectionSet.h

 

Operator Classes

Interactive 3D applications are about interacting with the 3D data be it creating new data dynamically or modifying existing data. In the Model/View paradigm, the application user interacts with the model via one or more of its views. The interaction itself is application code that responds to events the user generates with an input device and performs the desired operations to modify either the model or the view. The HOOPS/MVO Operator Objects encapsulate several types of typical operations found in many 3D interactive applications. 

The Operator classes include objects for operating on: 

  • View's Camera
  • Selection Sets
  • Object 's in a View's Selection Set
These classes may be used directly in applications as well as serve as templates for creating application specific Operator classes. 
 

HBaseOperator

The Operator objects are all based on the abstract class HBaseOperator which contains virtual implementations of the methods invoked by user generated input events such as "OnLButtonDown". Derived classes must supply the appropriate implementation of these methods. 

HBaseOperator.h
 
 

Camera Operators

The Camera Operators change the camera attributes associated with an HBaseView object. 

HOpCameraOrbit

Responds to mouse events and continuously orbits the View's camera around its target and updates the lights to follow the camera. 

HOpCameraOrbit.h
 

HOpCameraPan

Responds to mouse events and continuously pans the camera based on the direction of mouse movement and updates the lights to follow the camera. 

HOpCameraPan.h
 

HOpCameraWalk

Responds to mouse events and continuously moves the View's camera through scene by panning from side to side and dollying in and out based on the direction of mouse movement. The position of lights are updated to follow the camera. 

HOpCameraWalk.h
 

HOpCameraZoom 

Responds to mouse events and continuously zooms the camera either in or out and updates the lights to follow the camera. 

HOpCameraZoom.h
 

HOpCameraZoomBox

Responds to Mouse events and builds a temporary rectangular box in the HOOPS View based on the location of the first mouse down event and subsequent mouse down and moved events. On the mouse up event, it uses the dimensions of the box specified by the first and last mouse positions to set the View's camera attributes. The overall effect is to set the View's camera to view the extents of the model as specified by the user defined box.   This class is derived from the HOpConstructRectangle construction operator in order to leverage that class' ability to create a temporary construction rectangle.  It overloads the LButtonUp method of it's base class to make the appropriate changes to the camera.

HOpCameraZoomBox.h
 
 
 

Object Operators

The Object Operators interact with the objects in the View's associated SelectionSet object. 

HOpObjectTranslate

Responds to mouse events and continuously translates the objects in the View's associated Selection Set object. 

HOpObjectTranslate.h
 

HOpObjectRotate

Responds to mouse events and continuously rotates the objects in the View's associated SelectionSet object.  This object is in development, and will be made available for download from the Tech Soft 3D ftp site upon completion. 

HOpObjectRotate.h
 
 
 

Selection Operators

The Selection Operators respond to mouse events using the mouse position during a "down, drag and up" sequence to define a sub-region of the View to use in generating a HOOPS selection event.  The objects selected are placed in a list in the view's HSelectionSet object. 

HOpSelectAperture

Responds to mouse down events and uses the position of the mouse to compute a HOOPS selection event. 

HOpSelectAperture.h
 

HOpSelectArea

Responds to mouse events and uses the first and last point points in an up, drag, release sequence to define a rectangular area of the screen to compute a HOOPS selection event.  This class is derived from the HOpConstructRectangle construction operator in order to leverage that class' ability to create a temporary construction rectangle.  It overloads the LButtonUp method of it's base class to instruct HOOPS to perform a selection test by area, and to manage the selection list by calling methods of the HSelectionSet object.

HOpSelectArea.h
 
 
 
 

Construction Geometry Operators

The Construction Operators serve as utility operators to create temporary construction geometry.  They are typically used as base classes for operators that control viewing parameters or manipulate/create geometry.  For example, the HOpCameraZoomBox and HOpSelectArea operators are derived from HOpConstructRectangle.  The geometry created by these operators is drawn in 'screen-space', in that it is overlaid on top of the scene using HOOPS' 'quick-moves' drawing mode.  (Geometry drawn in the 'quick-moves' drawing mode is either drawn in XOR mode, or in the overlay planes.  HOOPS automatically determines what is available on the host system, and uses the best approach possible.)
 

HOpConstructPolyline

Responds to mouse down and motion events to provide for the creation of a polyline.

HOpConstructPolyline.h
 

HOpConstructRectangle

Responds to mouse events and uses the first and last point points in an up, drag, release sequence to define a rectangular area of the screen to draw a temporary box. The box is drawn from the first point (mouse down event) to the intermediate points (mouse down and dragged). 

HOpConstructRectangle.h
 
 
 
 

Creation Operators

The Creation Operators serve as reference classes which demonstrate how to dynamically create objects using the MVO Class Library.  They respond to mouse down, drag, and up events to 'rubberband' wireframe representations of objects which the mouse is down and moving, and then insert the created object into the HOOPS database upon a mouse up event.
 

HOpCreateSphere

Rubberbands a wireframe sphere represented by three circles, and then inserts a HOOPS shell that represents a sphere into the HOOPS database.

HOpCreateSphere.h
 

HOpCreateCone

Rubberbands the base of cone, represented by a circle, during the initial mouse down and drag.  It then rubberbands an entire cone during the mouse up and drag.  The final click inserts a HOOPS shell that represents a cone into the HOOPS database. 

HOpCreateCone.h
 

HOpCreateCylinder

Rubberbands the base of cylinder, represented by a circle, during the initial mouse down and drag.  It then rubberbands an entire cylinder during the mouse up and drag.  The final click inserts a HOOPS shell that represents a cylinder into the HOOPS database. 

HOpCreateCylinder.h
 

HOpCreateCuttingPlane

Derived from HOpObjectTranslate, inserts and dynamically moves a HOOPS cutting plane which is represented with a HOOPS Grid. 

HOpCreateCuttingPlane.h

 

Utility Classes

The Utility classes  change the camera attributes associated with an HBaseView object. 

HUtility

Contains a set of utility functions and data structures. 

HUtility.h
 

HUtilityImage

Contains TIF and GIF utility functions used by HBaseModel::Read and HBaseModel::Write. 

HUtilityImage.h