=====================
About HOOPS Visualize
=====================

HOOPS Visualize consists of an integrated suite of components which enable the rapid development of high-performance design, visualization, and engineering applications. HOOPS 3DF maintains platform independence within each component, providing cross-platform solutions on :doc:`Windows, Linux, and Mac OS X <supported_platforms>`. 
	  
HOOPS Visualize consists of the following components:

**HOOPS/3dGS - HOOPS 3D Graphics System**
:doc:`HOOPS/3dGS </tech_overview/3dgs_technical_overview>` 
provides developers with a high-level, object oriented scene-graph API 
that encapsulates a graphics database and optimized algorithms for the 
storage, creation, editing, manipulation, querying, rendering, and printing 
of 3D and 2D graphical information.

**HOOPS/Stream - The HOOPS Stream Toolkit**
:doc:`HOOPS/Stream </tech_overview/stream_technical_overview>` 
is a FileIO toolkit for the HSF file format. It allows developers to 
import/export customized HSF files or data streams to/from the HOOPS/3dGS 
scene graph, or proprietary and third-party graphics systems.

**HOOPS/MVO - The Model/View/Operator Class Library**
:doc:`HOOPS/MVO </tech_overview/mvo_technical_overview>`
is a set of platform and GUI independent C++ classes that implement 
much of the common functionality found in CAD/CAM/CAE applications such 
as model viewing, creation, annotation, manipulation, selection and 
hardcopy. The classes can be directly embedded into an application and 
the open source code can be easily extended to build customized application-specific 
logic. HOOPS/MVO has been designed to cleanly integrate with the various 
HOOPS/3dAF components.

**HOOPS/GUI - Graphical User Interface Modules**
HOOPS/GUI modules encapsulate the work needed to connect the HOOPS 
3DF to several different Graphical User Interface (GUI) toolkits. HOOPS/GUI 
provides the following integrations:
	
	* :doc:`HOOPS/MFC </prog_guide/misc/mfc_integration>`
	* :doc:`HOOPS/Winforms </prog_guide/misc/winforms_integration>`
	* :doc:`HOOPS/WPF </prog_guide/misc/wpf_integration>`
	* :doc:`HOOPS/Qt </prog_guide/misc/qt_integration>`
	* HOOPS/Java :doc:`Swing </prog_guide/misc/swing_integration>` and :doc:`SWT </prog_guide/misc/swt_integration>`	
	

.. only:: standard
 
	**HOOPS/Parasolid - Geometric Modeler Bridge**
	:doc:`HOOPS/Parasolid </prog_guide/misc/parasolid_integration>`
	connects the Parasolid modelling kernel to the HOOPS 3D Graphics 
	System. HOOPS/Parasolid saves developers the task of designing and implementing 
	the graphical output interfaces that these sophisticated modeling packages 
	require. See the following link for more information about HOOPS/Parasolid:


Reference Applications
----------------------

The HOOPS 3DF Reference Applications are built with the various componentsof the HOOPS 3D Framework and demonstrate its functionality across all supported platforms. In addition, they provide a model for the base architecture of new applications. Readable source code for the Reference Applications is provided as part of the development system and developers are free to use any part of the code within their application. Here is a list of available reference applications:

	* :doc:`HOOPS 3D Part Viewer </reference_applications/01_HOOPSViewDemo_Intro>`
	* :doc:`Qt Cross-Platform App </reference_applications/UsingQtHOOPSDemo_C>`

The diagram below illustrates how these components are connected to each other and how user generated events flow from the GUI toolkit to Visualize.

.. image:: images/3daf_components_hoops.gif

In HOOPS Visualize, user-generated events are collected by a GUI framework's event queue. The HOOPS/GUI integration module monitors the event queue and dispatches appropriate events to either the HOOPS/MVO objects or directly to HOOPS/3dGS. The HOOPS/MVO application objects in turn engage the API of either the geometric modeler or HOOPS Visualize itself to interact with the data stored in each component.
