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
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
|