1.0 Introduction
This section introduces the the Model/View/Operator paradigm, its relationship
to the HOOPS 3D Graphics System, and its implementation using HOOPS/3dGS including
the HOOPS/3dGS segment structure it generates.
2.0 The Model/View/Operator Paradigm
While the architecture of HOOPS-based applications vary depending
on their specific needs, there are some fundamental architectural relationships
that serve most applications quite well. One in particular is the object-oriented
model/view/operator paradigm.
The model/view/operator paradigm partitions the architecture of software
application into three distinct areas:
- Model : Application data
- View : Representations of the application data
- Operator : Algorithms that operate on the application data
The user of the application operates on the model via the views of the
model. Views are designed specifically to facilitate a given model interaction
such as data creation or editing. Views can "look at" multiple models and models
can "be seen" by multiple views (a many to many mapping). Operators are associated
with views.
3.0 The MVO Paradigm and HOOPS
In HOOPS, 3D objects are organized into segments containing geometry,
attributes and sub-segments. For each application, the 3D model maps to
some section of the HOOPS segment tree, typically in the Include Library.
Views are mapped to HOOPS driver instance segments with camera and window
attributes. The model is either directly built under the driver instance
segment or included from another spot in the segment tree. This relationship
of HOOPS model to HOOPS views is generic and applicable to most applications
built with HOOPS.
Operators consist of the application code that manipulates the application
data. When building HOOPS-MVO applications, the operators use the HOOPS
API, along with other component or application-specific APIs, to manipulate
the data stored in both HOOPS and application-specific data structures.
4.0 Implementing the MVO Paradigm
The HOOPS/MVO Classes provide a HOOPS-specific implementation of the
model/view/operator paradigm, which may be directly incorporated into an application
and extended.

Figure 1: This diagram illustrates the relationship of the vaious HOOPS/MVO Class
5.0 MVO's HOOPS 3dGS Segment Structure
The class library builds higher level objects for the model and view out of
HOOPS segment structures. The HBaseModel object is built out of the include
library and the HBaseView object is built out of HOOPS driver segment instances.
View objects also build an initial segment structure for managing the inclusion
of model objects, interacting with user input, lighting of the scene, etc...

Figure 2: This diagram illustrates the HOOPS segment structure built by HOOPS/MVO Objects.