# Overview

This guide explains how to use the HOOPS/Stream 3dgs-specific classes to create and read customized, stream-enabled HOOPS Stream Files (HSF). It also covers basic use of the HOOPS/Stream Toolkit, which involves black box reading and writing of HOOPS Stream Files. More advanced techniques are also covered, including reading/writing customized HSF files and passing data streamed in from a remote location to the HOOPS/Stream Toolkit.

If the data to be exported to an HSF file already resides in the HOOPS/3dGS scene-graph, or if data being imported from an HSF file needs to be mapped to the HOOPS/3dGS scene-graph, then the 3dGS-specific classes should be used.

The following are prerequisites to creating or importing an HSF file using the 3dGS classes:

1. Because an HSF file is essentially an archive of the HOOPS/3dGS scene-graph contents (geometry, attributes, and segments) it is important to understand how the scene-graph should be organized, and what geometry and attributes are supported. Refer to the database structure section for information on scene-graph architecture and details on geometry and attributes. The HOOPS/3dGS Reference Manual is also included with this SDK so that you can obtain specific details on geometry types and multi-option attributes. (The HOOPS/3dGS Reference Manual is located in the HOOPS/3dGS section of the documentation.)

2. An understanding of HSF opcodes, objects, opcode handlers, and general HOOPS/Stream Toolkit architecture. This information is reviewed in the HOOPS/Stream Technical Overview.

## Compiling and linking

If you need to recompile the HOOPS/Stream library, find the Microsoft Visual Studio project files or Unix makefile in the /dev_tools/hoops_stream/source directory. The HOOPS/Stream headers and exported library are located in the following directories:

Platform” | Header location | Library location | Library names
--- | --- | --- | ---
Windows | /Dev_Tools/hoops_stream/source/stream_common | /Dev_Tools/hoops_stream/lib/<platform> | hoops_stream.lib
Linux | <UNIX COMMON PACKAGE>/Dev_Tools/hoops_stream/source/stream_common | /Dev_Tools/hoops_stream/lib/linux | libhoops_stream.a
OS X | <UNIX COMMON PACKAGE>/Dev_Tools/hoops_stream/source/stream_common | /Dev_Tools/hoops_stream/lib/<platform> | libhoops_stream.dylib

Windows runtime DLLs are located at /bin/<platform>/hoops_stream<version>_<platform>.dll. Linux and OS X runtimes are the same as the exported libraries mentioned in the table above. Regardless of platform, you must include the HOOPS/3dGS runtime libraries in the execution environment.