1.0 Overview
The HOOPS 3D Part Viewer for ACIS is available for the MS Windows platform
and is built using the ACIS Kernel Modeler and the HOOPS 3D Application Framework.
By licensing these components, developers can easily customize or extend this
application or port it to the major UNIX platforms, including Linux. Web-based
applications may also be created using HOOPS/ActiveX extensions, HOOPS/Netscape
extensions, or the HOOPS JNI bindings. In addition, developers may license additional
modules for the reading and writing of the STEP, IGES, VDA-FS. CATIA, Pro/E
and X_T file formats.
The underlying architecture of this part viewer consists of the HOOPS 3D Product
Suite from TSA, including it's tight integration with the ACIS Modeling Kernel
from Spatial. The HOOPS and ACIS components are modular and extensible tools
which help developers rapidly deliver world class 2D/3D applications.
The Part Viewer includes the following functionality:
- Read and Save SAT files.
- Read and Save ASF (Acis Stream File) files.
- Read HSF (HOOPS Stream Format) files as well as VRML, STL and OBJ (Alias|Wavefront)
formats.
- Web publish any loaded files via the "Save As HTML" and "Save as HSF"
capabilities. HSF is the HOOPS Stream Format at the center of the OpenHSF
Initiative.
- Navigate even the most complex parts in real time by turning on the constant
frame rate manipulators.
- Save SAT files as AcisHOOPS Stream Files (ASFs) for faster file loading
and visualization. ASFs contain both the original CAD geometry and its corresponding
faceted representation. Storing the faceted data with the model means that
the model does not need to be re-tessellated when read in, which results
in significantly faster load times.
- Save files as Windows EMF and tiff image formats.
- Query the ACIS model and do distance calculations.
- Browse the topological hierarchy of the ACIS part file.
- Create selection sets of ACIS entities.
- Switch between Render Modes (Shaded, Triangulated, Wireframe, Hidden
Line).
- Visualization operations such as Orbit, Pan, Zoom, etc.
- Markup capabilities such as freehand, circular, text.
- Move entities within the scene using the high-speed HOOPS "Spriting"
algorithm.
- Print, Print Preview and Copy to Clipboard.
- Real-time, simultaneous collaboration between multiple users.
- On-demand and view-dependent HSF file streaming from HOOPS/Net server.
- Playback of HSF animation
In addition to its use for viewing ACIS models, saving to other ACIS versions,
web-publishing your SAT files and allowing users to collaborate in real-time,
this application is intended as a demonstration of the power of the HOOPS 3D
Product Suite and ACIS Kernel. As such, it serves as a reference architecture
from which developers may extend and build their own CAD/CAM/CAE applications.
For more information about licensing the framework to build custom CAD/CAM/CAE
application please contact either info@techsoft3d.com.
3.0 Using
the HOOPS 3D Part Viewer for ACIS
The HOOPS 3D Part Viewer
for ACIS has been designed to work and act like any standard Windows
application. It uses the MFC multi-document interface (MDI), supporting
the standard MFC services (New, Open, Save As, Print, Print Preview,
Copy to Clipboard). ACIS SAT files may be read, interrogated, viewed
and saved.
The Viewer has the concept
of an active render mode and an active model operator. The render modes (Wireframe,
Triangulated, Gouraud Shaded, Hidden Line) can be toggled by using
the "right click" menu.
- The model operators can be selected to invoke camera manipulation (Orbit,
Pan, Zoom, Zoom to Window, Zoom to Extents, Set View Plane) or the selection
operators (Select by Single Click, Select by Window). The operators
can be made active by clicking on the appropriate icon or pull down menu.
There are various toolbars available.
These can be hidden/shown through View-Toolbar menu.
Standard Toolbar:
-
File New - Creates a new empty
window. Files can then be loaded into the new scene via the File/Load button
-
File Open - Launches the MFC file browser. Use this
to find and open a ACIS Part File or HOOPS Stream File
-
Copy - Copies the contents of
the current (top) MDI window to the Windows clipboard
-
Print - Prints the contents of
the current (top) MDI window via the Windows system printer
-
Zoom to Extents - Resets the
camera to view the entire scene
-
Orbit - Use the mouse to interactively
orbit the camera
-
Pan - Use the mouse to interactively
pan the camera in the active view
-
Zoom - Use the mouse to interactively
change the camera field (Zoom
in or out)
-
Zoom to Window - Use the mouse
to define a new camera view field
-
Zoom to Selection - Zooms to
the currently selected object
-
Select By Single Click - Use
the mouse to select on ACIS entities
-
Select by Window - Use the mouse
to define a window to select ACIS entities
-
Shaded - Sets the rendermode to Shaded
-
Hiddenline - Sets the rendermode to Hiddenline
-
Wireframe - Sets the rendermode to Wireframe
Tools Toolbar:
- Annotation - Create a text annotation. After clicking on this button, click
on an object in the scene to which annotation is to be attached. Move the
mouse and click again and begin typing your text annotation. Press 'Enter'
to complete. You can also click on the annotation and drag it to relocate
it.
- Measure Distance - Interactively query the distance between two points on
the Model.
- Create Cutting Plane - Creates a cutting plane and inserts it in the scene.
Clicking again removes the cutting plane. Holding Down [SHIFT] while clicking
on th button while the cutting plane is active removes the handles from the
plane. Use the mouse to interactively rotate/pan the cutting plane to see
the sections of models in various planes.
- Query Model- Interactively query the geometry and topology in the scene.
- Test Performance - Animates the model in the scene to test the performance.
Displays the information about the performance (in frames/second) achieved.
Markup-Text Toolbar:
-
Freehand Markup - Use this tool to draw free-hand markups in the scene.
Click the left mouse button and drag.
-
Rectangle Markup - Use this tool to draw rectangular markups in the scene.
Click the left mouse button and drag.
-
Circle Markup - Use this tool to draw circular markups in the scene.
Click the left mouse button and drag.
-
Text Markup - Use this tool to insert text markups in the scene.
- Save/Restore Markup 1,2 -Pressing any of these buttons for the first time
the application will store the markup data and current camera position and
associate it to that button. Clicking on the button at any later time in your
session will cause the application to re-position your view at the saved camera
position with the markup data restored. To erase a saved camera position hold
down the [SHIFT] key while clicking on the button.
Standard Views Toolbar:
-
Front - Sets the camera in the active view to the front of the object.
-
Back - Sets the camera in the active view to the back of the object.
-
Top - Sets the camera in the active view to the top of the object.
-
Bottom - Sets the camera in the active view to the bottom of the object.
-
Right - Sets the camera in the active view to the right of the object.
-
Left - Sets the camera in the active view to the left of the object.
-
Isometric - Sets the camera in the active view to show the object in isometric position.
There are also a number of settings that can be toggled by clicking on the
right mouse button. They are:
-
Selection Level - Allows user
to toggle the topological selection level on the active view, including
selectability of vertices, edges, faces and bodies.
- Visibility - Allows user
to toggle on/off the visibility of different ACIS topological entities
including vertices, edges and faces, as well as the visibility of
lights in the scene.
- Render Mode - Allows user to switch between different visualization modes,
including triangulated (flat shaded), wireframe, Gouraud shaded, or hidden-lines
removed.
The full set of features are explained in more detail below:
2.1 Opening/Reading Files
The Part Viewer reads SAT, HSF, STL, VRML and HMF files. For your
convenience, a set of demonstration files are contained on this media located
in the parts directory of your installation. The files are of varying degrees
of complexity so certain files may take a couple of seconds to load depending
on the speed of your system.
2.2 Command Line Arguments
In certain cases it may be preferable to start the Part Viewer from the command
line. To do this, specify the files which you want loaded. For example,
> acispartviewer.exe bnc.sat
2.3 Modifying Application Settings
The application settings are the options which are applicable to all the documents
in the application. These are stored in the registry and are restored back when
the application is launched again. You can modify these settings by clicking
on Tools-Options menu.
General Settings
Display
- Driver: Sets the HOOPS display driver.
- Disable Hardware Acceleration: Sets HOOPS to use software rendering. Only works for
the OpenGL and Direct3D drivers.
- Axis Triad: If checked, displays X-Y-Z axis triad at the left-bottom
corner of each document.
- Shadow Rendering: Sets the Shadow Rendering Mode. Can be used to
work around hardware problems with shadow rendering.
Camera
- Smooth Transition: If checked, the camera is transitioned
between two positions smoothly (in small increments).
- Projection: Sets the camera projection.
Rendering
- Shadows: If checked, shadows will be generated.
- Display Lists: If checked, display lists will be used. Usage
of display lists can increase the performance upto 5 times. This option is
only valid if you have OpenGL driver set.
- Occlusion Culling: If checked Occlusion Culling will be performed
on the current scene which can result in significant performance gains with
some models. This option currently only has effect when the OpenGL driver
is selected and certain hardware requirements are met.
- Framerate enabled on Startup: If checked Constant Framerate
Logic will be activated when a new model is loaded
- Fast HLR: If checked HOOPS will never use the precise, analytical
Hidden Line mode.
- Culling Threshold: If checked will set the pixel culling threshold for
occlusion culling.
Geometry Manipulation
- Update Shadows: If checked shadows will be updated during
translation/rotation of objects.
- Use 3D Spriting: If checked spriting is used during translation/rotation
of objects
Transparency
- Style: Allows you to set the style of transparency.
- Sorting: Allows you to set the sorting algorithm used for transparency.
- Layers: Allows you to set the number of layers for the depth peeling
transparency sorting algorithm.
Antialiasing
- Use Anti-aliasing: If checked, enables scene anti-aliasing, with the
option to set the anti-aliasing quality (number of samples).
- Text: If checked, enables text anti-aliasing.
- Lines + Edges: If checked, enables anti-aliasing for only lines and edges.
In practice, this setting is redundant if screen anti-aliasing is already enabled.
Apply: Pressing this button will Apply the current settings
to the associated view.
Reset: Pressing this button will restore the settings to factory
default.
Appearance Settings
Line/Edge Geometry
- Default Line/Edge Weight: Sets the default line/edge weight.
Background Color
- Top: Sets the background color for the
upper portion of the window. The background color can have a gradient from
top to bottom.
- Bottom: Sets the background color for the
lower portion of the window. If you prefer a single background color without
any gradient, set this color exactly same as the Top Background Color.
Color Interpolation
- Color Interpolation: If checked, honors the color settings
at each vertex of the Shells in the scene and applies a color ramp across
the shell.
- By Value: Controls the color interpolation scheme for Shells
which have vertex level coloring. If checked, the color at eachpixel in
the face is determined by simply linearly interpolating the RGB color set
on the adjacent vertices.
- By Colormap: Controls the color interpolation scheme for
Shells which have vertex level coloring. If checked, the color at each pixel
by is determined by interpolating between the indices in the colormap. This
option is only valid if the Shell vertex colors have been set by Index.
- Isolines: If checked, renders only the Isolines for Shells
in the scene which have colors set on their vertices.
Markup
- Color: Sets the color of Markup lines.
- Weight: Sets the line weight (thickness) for the
Markup.
Shadow
- Color: Sets the color of the Shadow.
- Res: Sets the shadow resolution (values
between 32 and 256 are allowed)
- Blur: Sets the amount of shadow blurring
(values between 1 and 64 are allowed)
Fonts
- Name: Sets the current font for the scene.
- Size: Sets the current font size in points.
- Scalable: If checked annotation will scale as the
camera position changes.
Apply: Pressing this button will Apply the current settings
to the associated view.
Reset: Pressing this button will restore the settings to factory
default.
File Settings
HOOPS Stream File Export Options
- Compress Vertices: Compresses the vertices of entities which
reduces HSF file size, but can sometimes result in visual artifacts.
- Bits per Vertex: Number of bits to be used for storing each
vertex. This can be any integer between 8 & 72. This is applicable only if
Compress Vertices is chosen.
- Compress Normals: Compresses the normals of entities
which reduces HSF file size, but can sometimes result in visual artifacts.
- Bits per Normal: Number of bits to be used for storing each
normal. This can be any integer between 8 & 72. This is applicable only if
Compress Normals is chosen.
- HSF Version: The export version number for HSF files.
- Include File Dictionary: Export the file dictionary information.
File Dictionary provides random entity access capability, but usually results
in marginal increase in the size.
- Use Advanced Compression: Export the HSF file using the advanced
edge-breaker connectivity compression. For more details on this type of compression,
please refer to the HOOPS/Stream documentation.
- Include Line/Edge Data: Exports non-surface data to the HSF
file, such as lines, arcs, text, circles, etc... It is useful to export
this data if either:
- A. the data originated as an SAT file and accurate wireframe or
hidden-line renderings are desired
- B. much of the interesting geometry in the file is 'line data';
this would of course be the case if the model was an AEC-type model such
as a 2D floorplan.
- Include Topology Information: If selected, HSFs will
contain the associativity information between the graphical entities and their
assembly structure. This can then be used to navigate the topological structure
of the model without the need for the modeling kernel or the SAT file. Since
this information is stored within the file it does increase the file size,
which may be undesirable if you are streaming the files across bandwidth constrained
networks.
ACIS (.SAT) File Settings
- Export Version Number: The export version number for ACIS
files.
- Location of Part files: The directory location of the SAT
files.
Reset: Pressing this button will restore the settings to factory
default.
Interaction
Walk Options
- Use Keyboard: Checking this enables keyboard controls for movement.
Keyboard controls are as follows:
- W: Forward
- A: Strafe Left
- S: Back
- D: Strafe Right
- Q: Up
- Z: Down
- Collision Detection: This enables collision detection between the camera
and geometry in the scene.
- Snap to Floor: If checked, the walk operator will prevent the camera from
floating too high over a surface, and snap to the floor when possible.
- Avatar Height: This controls the height of the camera when the camera
is snapped to the floor.
- Automatic: Allows HOOPS to automatically set the avatar
height to be a fraction of the scene extents.
- Step Height Up: This set the height at which the avatar will automatically
walk up stairs and over small obstacles.
- Step Height Down: This sets the maximum height that the avatar can drop. Thus,
if the drop is too large, the avatar will not be able to walk over an edge.
Animation
- Show Every Tick: If checked displays every tick of the animation
regardless of the time per frame.
- Update Camera: If not checked camera movement which is part
of the animation will be surpressed
- Jump To Keyframe: If checked the +/- button of the
animation toolbar will move the animation to the next keyframe instead of
the next tick
- Disable Constant Framerate: If checked the Constant
Framerate Logic will be disabled while an animation is running.
- Timer Based Update: If checked updates are happening on regular
intervals which allows animations to interact smoothly with other user input.
Turning this off can help in code debugging.
- Show Collisions: If checked will enable visualization of collision
detection in animations.
Camera
- Front View Axis: Sets what the partviewer will consider the "front view"
for use with the "standard views" buttons.
- Top View Axis: Sets what the partviewer will consider the "top view"
for use with the "standard views" buttons.
Selection
Appearance
- Polygons: Sets the selection color for polygons
(faces).
- Lines: Sets the selection color for lines
(edges).
- Markers: Sets the selection color for markers
(vertices).
- Transparency: Sets the transparency level (%)
for the selected entities.
- Gray Scale Selection: If checked, sets the scene to grayscale when
performing a selection.
Behavior
- Visibility based selection: If checked all selection operations
take visibility of objects into account (versus the standard analytical selection
mode of HOOPS)
- Dynamic Highlighting: If checked, will automatically highlight
geometry on a mouseover (and subsequently unhighlight when the mouse leaves.
- Honor Line/Edge weight/patterns: If checked, HOOPS will honor the
weights and patterns of lines and patterns.
2.4 Saving Files
The Part Viewer allows you to save models as:
SAT : Save file as a ACIS SAT File. You can choose the ACIS version
number of the file is via the 'File Settings' button under the File menu.
ASF : Saving the model as an ASF file will cause the original SAT
file data, the faceted information, and the associatively between the two
to be stored within a single file. Since re-facetting will not need to occur
when you load these files, load times will be significantly reduced.
HSF: Saving Files as HOOPS Stream Files will create a compressed
file containing the faceted data in the scene. If 'Write Topology Information'
was enabled in the 'File Settings' dialog, then additional user data which
specifies the topological structure of the original CAD model will be exported
to the HSF file as well. Since this file format contains a compressed, tessellated
3D representation of the SAT file, load times are significantly faster than
that of a standard SAT file. File sizes are also substantially smaller typically
in the range of 10% - 20% the size of the original model. To ensure that Levels
of Details (LODs) of objects in the scene are included in the HSF you must
instruct the PartViewer to generate LODs for the scene. This is automatically
done by turning on Level of Details when you set a constant framerate via
the Frame Rate Options dialog in the view menu.
HTML: Choosing the "Save as HTML" option creates an HTML page with
the selected HSF embedded. These HTML pages can then be posted to a web site
as live 3D data. The HTML page also has an embedded HOOPS 3D Stream Control
which will stream the HSF from either a local disk or a web site. The embedded
object will, behind the scenes, download and install the HOOPS 3D Control
if it is not already installed on the machine reading the web page. This means
that developers simply need to put the HTML and HSF file on their Web site
and any user of MSIE can view the model over the web by simply pointing their
browser to the page's URL.
EMF (Windows Encapsulated Metafiles) : These files can then be imported
into any standard Windows application. The output is vector data when in either
wireframe or hidden line mode. EMF output is used when you 'Copy to Clipboard'.
TIFF: These image files can be used to bring any of the data into
any of the standard image editing software package.
2.5 Creating HTML Pages
HTML pages are created simply by saving the file as
a HTML page. When you save a file as an HTML page two files will be created;
an HTML file which references a newly created HSF file with the exact same filename.
(So, SaveAs-> 'foo.html' would create two files: foo.html and foo.hsf.) To publish
your model to the web simply copy both these files to your web site. The HTML
page uses the HOOPS 3D Stream Control which, if not already installed the user's
system, will be automatically downloaded and installed when the HTML page is
viewed. By default, the PartViewer does not include Levels of Detail (LODs)
in the HSF. Since LODs are ordered in the front of the file and are much smaller
than the original objects they represent it is very beneficial to have LODs
in the HSF to facilitate streaming. LODs may be generated through the Frame
Rate Options in the View pulldown menu.
2.6 Copying to Clipboard
As is standard with Windows Applications, Ctrl-C will copy the contents of
the screen to the clipboard (in the form of an EMF). You can then easily import
the metafile into any of the usual windows applications such as Microsoft Word,
Excel, Power Point, etc.
2.7 Printing/Print Preview
The application supports standard Windows GDI Printing and Print Preview.
Although not currently in this version of the application, HOOPS/3dGS supports
HPGL, Postscript and CGM output. Developers wishing to extend this viewer to
contain such functionality may easily expose it by licensing the HOOPS 3D Application
Framework.
2.6 Camera Manipulation
Each MFC window has a separate HOOPS camera that may be manipulated to change
the current view of the model. The camera operations implemented are:
These are modal Operators on the View and are chosen by toggling the appropriate
menu button or by using the pull down menus on the frame. Once a camera manipulation
operator has been selected, the camera may be interactively manipulated with
the mouse. All operators respond to the following sequence: left mouse button
down, left mouse button down & moved (motion), left mouse button up.
Starting with this release the functionality of the Orbit Operator has been
extended to allow for panning and zooming without switching operators. Holding
down the [SHIFT] key while dragging the mouse will initiate a camera pan while
holding down the [CTRL] key will zoom the camera. In addition holding down the
middle (or third) mouse button while over an object will orbit the camera around
the selected point.
At any time double clicking the middle mouse button will either zoom to the
object under the cursor or (if no object is under the cursor) will reset the
camera to the scene extents.
Smooth Transition
This feature can be toggled on or off via the Manipulate pull down menu.
When turned on the camera will be smoothly transitioned (producing animation
effect) when user zooms to window, changes the view plain or resets the camera.
2.9 Entity Selection
There are three primary ways of selecting entities in the ACIS model:
Select by Single Click
Select by Single Click is the default pick mode. Selections highlight
the ACIS entity type that is nearest to the Windows mouse click.
Select by Window
Select by Window selects and highlights all the specified ACIS entity types
under the window defined. The window is defined by a sequence of events using
the left mouse button: down, down and motion, up.
Selecting via the Topology Browser
Entities may also be selected via the topology browser. Clicking on the entity
in the browser will automatically highlighted the corresponding graphical
entity in the scene. Clicking the 'Zoom to Selection' checkbox in the browser
dialog will cause the camera to be automatically positioned in front of the
highlighted entity.
Selection lists containing multiple entities may be created by holding down
either the Shift or Ctrl key while using either of the Selection Operators and
can be used to build up selection lists for the topology browser.
The Part Viewer makes use of the MFC "right click" user interface to provide
a mechanism for controlling the visibility and selectability of entities in
the scene. Positioning the mouse in the view window and pressing the right mouse
button invokes a floating menu bar. The behavior of the selection operators
can be configured via this floating menu bar interface. The interface may be
used to determine which ACIS Topological Entity type is selectable. Selections
can be made on the nearest ACIS: Vertex, Edge, Face, or Body. The color
of the selected geometry is changed to white (or "highlighted").
To ensure optimal rendering performance, face selection is disabled by default.
Face selection can be enabled from this menu, however note that this will cause
the object to be re-tesselated which can take time depending on the size of
the model.
2.10 Querying the Model
The query operator allows users to query information about the ACIS part and
is selected by toggling the appropriate menu bar button. Once selected, the
mouse may be used to interactively query ACIS Models. The first time the left
mouse button is pressed while in the view and over an ACIS model an MFC dialog
window is created and displays the following information:
-
Analytical intersection of the
selection ray with the ACIS geometry
-
ACIS Entity Body Pointer
entity queried
-
Number of Edges and Faces
in the Body queried
Moving the mouse around the scene with the left button depressed will cause
this information to be updated in real-time.
2.11 Measuring Distance
Users can query and measure the distance between two points in the scene.
When this operator is selected, a dialog similar to the Query dialog will
appear. In addition to displaying the standard query information the distance
between two points will be displayed. A left mouse button click will select
the beginning point of the measurement. Measurement is shown by holding the
left button down and dragging to the desired end point of the measurement. A
line will be shown between the two points.
2.12 Setting Visibility of Lights
The application makes use of the MFC "right click" user interface to provide
a mechanism for controlling the visibility and selectability of the entities
in the scene. Positioning the mouse in the view window and pressing the right
mouse button invokes a floating menu bar. Lights may be toggled off or on in
the Visibility. Turning Lights off will cause the model to appear "flat" or
non-shaded.
2.13 Setting Visibility of ACIS Entities
Via the same right click floating menu bar, the user can turn the visibility
of ACIS Vertices, Edges or Faces off or on.
2.14 Setting Selectability of ACIS
Entities
The Selectability of ACIS entities are also be controlled via the right click
button. By moving to "Selection Level" you can enable or disable the selection
of ACIS Vertices, Edges, Faces or Bodies. Note that selection of faces is turned
off by default for rendering optimization. If Face level selection is
enabled, the model will be need to be re-tesselated. To highlight a face in
the scene without requiring a re-tesselation, simply click the "Show Face Outlines"
button.
2.15 Changing the Render Mode
Render Modes for the scene are also controlled via the right click mouse button.
There are 4 different rendering modes provided for viewing models.
-
Wireframe
-
Triangulated (allows you to see
the facetting of the model)
-
Gouraud (Smooth) Shaded
-
Hidden Line
Upon startup, the default rendering mode is Smooth Shaded. Please note that
the Hidden Line algorithm is computationally intensive and for large models
may take several seconds. Visibility of the hidden lines is controlled
by the right click Visibility menu.
2.16 Changing the Viewing Projection
By default, the scene is rendered with a Perspective viewing projection, you
can change this to an Orthographic viewing projection via the View menu.
2.17 Topology Browser
Selecting the Topology Browser from the Query Menu allows you to browse the
topological structure of the model. As you select on entities in the dialog
they are highlighted in the visualization window and any user-defined attributes
are displayed in the Topology browser's text box. To ensure optimal rendering
performance, face selection is disabled by default. Turning on face selection
can be enabled from this menu, however this will cause the object to be re-tesselated
which can take time depending on the size of the model.
2.18 Frame Rate Options
From the "View" pulldown menu, users may define a desired framerate to be
maintained during rendering. When setting this option you can ask the application
to 'Use Levels of Detail' in order to maintain the requested framerate.
This causes HOOPS to generate simplification levels for each body. The default
values may be used, or the user may control the number of levels which are generated
and the percentage fall-off between levels.
The 'LOD Settings' tab provides control over the LOD generation process. 'Detail
Levels' allows the user to control how many Levels of Detail should be generated.
The Falloff Value represents what percentage of vertices the new LOD should
contain as compared to the next highest level. For example, a falloff value
of 0.30 would mean that the Level 1 LOD would have 30% of the vertices of the
original object. If desired you can see the individual LOD levels directly via
the 'LOD Level' item in the 'View' menu pulldown.
If the system can't maintain the user specified frame rate HOOPS will drop
through the different simplification levels in order to keep up with the desired
frame rate. Generating levels of detail has an associated one time pre-process
cost which can be significant depending on the size of the model.
Turning on the Threshold LOD type will cause the application to utilize further
HOOPS/3dGS logic to determine the LOD level on each body separately, depending
on its triangle count per square window space unit.
You can also tell the viewer to simplify to allow one of the LODs to be simply
the bounding box of the object. Depending on the model these may or may not
be desirable.
2.19 Shadow Display
Display of Shadow for the objects
in scene can be toggled using "Shadow" option from "View"
menu. Shadow is displayed on the plane perpendicular to the current view-up vector.
2.20 Axis Triad
Beyond indicating the current orientation of the camera the axis triad can
be used to access the Orbit/Pan/Zoom functionality (as described in 2.6) by
clicking and dragging the mouse pointer in the axis window. Also clicking at
any of the arcs indicating a particular view plane the camera will automatically
realign the view to that plane.
3.0 Creating/Joining Collaborative Sessions
Collaboration Sessions require a HOOPS/Net server to be running and accessible
by any clients that want to be involved in a session. The server supports both
TCP/IP and HTTP connections. For a TCP/IP connection you provide an IP address
and a port number while for a HTTP connection you simply provide the URL
of the webserver hosting the HOOPS/Net Server.
To allow you to launch you own server the server executable, hnet_server,
resides in the bin directory of your viewer?s installation. The server?s configuration
file, hnet_server.conf, which is also located in the bin directory specifies
the server?s initial admin and access passwords (both of which are defaulted
to a null string) and the port over which the server listens for initial client
TCP/IP connections (this has a default value of 11111).
Connecting to the Server
Once the server is running (you do this by running the hnet_server executable)
you connect to the server via the Network button in
the File pulldown menu of your viewer.
In the Network dialog you provide the address and server port depending upon
the connection type. For TCP/IP connection, the address field must of form "foo.com"
or "62.127.1.50" and server port must be a valid socket port number, from 1
-> 65534. For HTTP connection, the address field must be of form http://www.foo.com
and the server port must be the fully rooted pathname to the hnet_connect.cgi
script. Following are examples.
- TCP/IP connection to a server running on a local machine
TCP/IP = 127.0.0.1
Server port = 11111
- TCP/IP connection to a remote server
TCP/IP = hoops3d.com
Server port = 8080
- HTTP connection to a remote server
HTTP = http://www.HNetHost.com
Server port = /cgi/hnet_connect.cgi
- HTTP connection to a remote server with proxy-authentication
HTTP = "http://www.foobar.com proxy://my.proxy.com:1212
Server port = /cgi/hnet_connect.cgi
- Windows Users: If you wish your HTTP connection to use your System's Internet
Settings simply prepend the Server string with 'wininet'.
HTTP = "wininet http://www.foobar.com:80"
Server port = /cgi/hnet_connect.cgi
Pressing the Connect button should connect you to the
server. If there are any currently active sessions these will be listed
in the Session dialog. You can create a new session by typing the name
of the session in the Session Name text box, entering an optional password for
this session in the Session Password box and your name in the Client name text
box and then pressing the Create button. If
the session is already created simply enter the session name you wish to joint,
along with your name and the password for that session and press the Join
button. You will then be connected to the active session.
Creating/Joining a session will create a new window which will include a tabbed-dialogbar
on the right size. On the 'Peers' tab you will find controls for sending text
?Chat? messages to other members of the session and a button for requesting
or releasing control of the session. If you do not have control of the
session you will only be able to view the activities of the user who is in control
and will not be able to ?drive? the session. Chat messages can always be
sent by anybody and to anybody regardless of who is controlling the
session. The controlling user can load HSF files into the scene, create,
manipulate and delete geometry as well as annotate and select objects within
the scene.
Requesting/Releasing Control
To request control, simply press the Request Control button. The controlling
user will be sent a message that control has been requested. Once that control
has been released, the user requesting control will then be leading the session.
TSA will host a number of demonstration sessions on our company website to
demonstrate the HTTP capabilities of the HOOPS/Net Server. Please connect
to www.hoops3d.com for further details.
4.0 Streaming from HOOPS/Net Server
Streaming HOOPS Stream files (HSF) from a HOOPS/Net Server also requires a
HOOPS/Net server to be running and accessible by any client that wants to stream
the file. Refer to previous section 'Creating/Joining Collaborative Sessions'
for details on how to connect to a server and create a session.
Once the client is connected to a server through a session, you will have
a tabbed-dialogbar at the right-hand side of the window. 'Files' tab provides
the controls required for streaming files from the server.
Associating with a directory on the Server
To stream files on server, the client is first required to associate the current
session with a particular directory on the server. Note that for doing this
the client must be in control of the session. Clicking on the Associate
Directory... will pop-up a dialog box listing the directories
on the server. If you don't find any directories in the list, you should ensure
that the HOOPS/Net server configured to host directories. Please refer to HOOPS/Net
programming guide for details. Choose a directory from the list and type
the password required to access the directory and click OK.
You will find that a listing of files (if there are any in the directory) appears
in the 'Files' tab of client dialog-bar. These are the files in the directory
you have associated with the session.
File Streaming
There are various modes a client can stream data from the server. These can
be controlled by the control in the bottom portion of 'Files' tab. The streaming
is initiated by double-clicking on a file in the files listing.
-
'Read Skeleton Tree'
If checked, only the HOOPS segment tree from the file will be streamed in. There won't be any geometry
in the scene. A HOOPS segment tree browser will appear in the 'Files' tab. You can double-click on any of
the segments to request streaming of all the geometry in that segment (and the child segments).
-
Read Simplified Geometry
If checked, the lowest LOD representation from the files will be streamed in (along the HOOPS segment tree)
You can now select any geometry in the scene and click on 'Sweeten' button to stream in the finer resolutions
of the objects. You can also use the segment browser tree to sweeten segments of interest.
-
Stream objects in current view
If checked, all the objects that fall in the current view frustrum will be requested from streaming. As
the camera position get changed, new requests will be sent to the server for the objects in the current view
-
Sweeten
Pressing this button will sweeten (stream in finer resolution) all the selected objects.
Note that for all these modes to be effective, the files on the server must
be generated using HOOPS/StreamToolkit 8.0 or later with TK_Generate_Dictionary
option. Results with the other formats are not guaranteed.
5.0 MaterialEditor
The Material Editor makes it easy to create a library of Material "Styles"
based on colors, textures and visibility settings and apply them to geometry
in the scene.

The left side of the dialog contains the style preview window as well as a
horizontal list of styles which allows the user to select among the various
styles and apply them to the current selection. There are also options for creating
a new style, deleting, renaming or cloning the current style. A set of styles
can be saved out to an hsf file or loaded back into the current model.
The right side of the dialog contains the texture, color and visibility settings
for the selected style and allows the user to manipulate the texture parameters
(which are global to all styles). In the "Texture Settings" window
a new image can be loaded which will automatically be associated to a texture.
Various texture parameters are exposed and can be changed (please refer to the
HOOPS 3DGS Reference Manual for more information on textures in HOOPS). Additionally
individual images or textures can be deleted and existing textures can be cloned.
The "Style Settings" on the right side expose the various color
components of a particular style grouped by entity type. Textures can be applied
to the various face color components and the visibility for the entity types
can be changed. All those changes are imediatly reflected in the preview window
as well as all geometry to which the selected style has been applied.