Introduction
About HOOPS Visualize
Technical Overview
3DGS
MVO
Stream
HIO
OOC
Platform and File Support
Supported Platforms
File Formats
Device Guide
Release Notes
Acknowledgements
Getting Started
Installation contents
Setting a license
Building the sandboxes
Creating a prototype
Defining a scene graph
Developer support
Programming Guides
3DGS
1 Fundamentals
1.1 Library Access
1.2 Application Structure
1.3 Database Structure
1.4 Drivers
1.5 Drawing
1.6 Associating Data
1.7 API Conventions
1.8 Warnings and Errors
1.9 Debugging
1.10 Streamlining
2 Geometry
2.1 Coordinates
2.2 Conventions
2.3 Markers
2.4 Text
2.5 Lines
2.6 Polygons
2.7 Circles and Ellipses
2.8 Shells
2.9 Meshes
2.10 Grids
2.11 Images
2.12 Lights
2.13 Cutting Planes
2.14 NURBS Curves
2.15 NURBS Surfaces
2.16 Cylinders and Polycylinders
2.17 Spheres
2.18 Reference Geometry
3 Viewing and Modelling
3.1 Coordinate Systems
3.2 Cameras
3.3 Matrices
3.4 Windows
4 User Interaction
4.1 Event Loop
4.2 Selection Events
4.3 Window Systems
4.4 Highlighting
4.5 Scene Interaction
5 Materials
5.1 Color
5.2 Texture Mapping
5.3 Environment and Bump Mapping
5.4 Transparency
5.5 Double-Sided Materials
5.6 Skyboxes and Cube Maps
5.7 PBR
6 Rendering
6.1 Hidden Surfaces
6.2 Level of Detail
6.3 Lighting and Color Interpolation
6.4 Atmospheric Attenuation
6.5 Anti-aliasing
6.6 Stereo Viewing
6.7 Shadows
6.8 Reflection Planes
6.9 Hemispheric Ambient Lighting
6.10 Bloom
6.11 Depth of Field
7 Performance Guidelines
7.1 Overview
7.2 Segments
7.3 Geometry
7.4 Rendering
7.5 Memory
8 Intermediate Mode
8.1 Overview
8.2 Examples
8.3 Porting your legacy HOOPS I.M. Code
MVO
1 Introduction
2 Fundamentals
2.1 HDB Database
2.2 HBaseModel
2.3 HBaseView
2.4 Operators
2.5 Selection Sets
3 Annotations
4 File Input/Output and the I/O Manager
4.1 Introduction
4.2 Importing Data
4.3 Exporting Data
4.4 Image I/O Support
4.5 Using the HIO Plugin Architecture
4.6 I/O Progress and Error Reporting
4.7 Custom I/O Handlers
5 Maintaining Constant Framerate
5.1 Framerate Modes
5.2 Customizing Constant Framerate
5.3 Simplification Objects
5.4 Implementation Issues
6 Markup Manager
7 Undo Manager
7.1 Overview
7.2 Using the Undo Manager
7.3 Enhancing the Undo Manager
8 Geometry Manipulator Handles
8.1 Creating Geometry Handles
8.2 Custom Geometry Manipulator Handles
9 HSF Data Streaming
10 Behavior and Animation
10.1 Introduction
10.2 Behavior Manager
10.3 Defining Behaviors
10.4 Retrieving Animation Data
10.5 Sensors
10.6 Exporting Animations
10.7 Animation Collisions
11 XML Read/Write
11.1 Overview
11.2 Parsing XML Data
11.3 Writing XML Data
12 Event Handling
12.1 Overview
12.2 Creating a New Listener Type
12.3 Event Registration
12.4 Creating a new Event
12.5 3D Mouse/Joystick Events
12.6 Timer Events
12.7 Touch Events
13 The Plotting Classes
13.1 Overview
13.2 Pie Charts
13.3 Other 2D Plots
13.4 Labels and Legends
14 Callbacks
15 The PMI Classes
Base Stream
1 Introduction
2 Writing and Reading HSFs
2.1 Writing
2.2 Reading
2.3 Controlling the Reading and Writing Process
2.4 Verifying HSF files
2.5 HOOPS/3dGS Classes
3 Streaming an HSF File
3.1 Basic Streaming
3.2 Performing Streaming on a Separate Thread
4 Customizing the HOOPS Stream File
4.1 Customizing HSF Objects
4.2 Versioning and Storing Additional User Data
4.3 Tagging HSF Objects to Associate User Data
4.4 Remove Opcodes
5 Maximizing Performance
3DGS Stream
1 Introduction
2 Writing and Reading HSFs
2.1 Writing
2.2 Reading
2.3 Controlling the Reading and Writing Process
3 Streaming an HSF File
3.1 Basic streaming
3.2 Streaming on a separate thread
3.3 View dependent streaming
4 Customizing the HOOPS Stream File
4.1 Customizing HSF Objects
4.2 Versioning and Storing Additional User Data
4.3 Tagging HSF Objects to Associate User Data
4.4 Remove Opcodes
5 Maximizing Performance
HIO
AVI
HOOPS Exchange
HOOPS Publish
HTML
DGN Direct
RealDWG
SketchUp
OOC
1 Introduction
2 Preprocessing data
3 Using the point cloud API
4 Sample code
Parasolid
1 Introduction
2 Initialization and shutdown
3 Reading Parasolid files
4 Creating and rendering Parasolid entities
5 Controlling the Visualize-Parasolid mapping
6 Operating on Parasolid entities
API Reference
3DGS
MVO
3DGS Stream
Base Stream
HIO
OOC
Parasolid
Additional Resources
Languages
C/C++
C#
Java
HSF specification
GUI integration
MFC
Winforms
WPF
Qt
Java Swing
Java SWT
Augmented Reality
Virtual Reality
HOOPS Part Viewer
1.0 Overview
2.0 Using the HOOPS 3D Part Viewer
3.0 Keyframe Editor
4.0 Material Editor
Troubleshooting
Dev_Tools
base_stream
source
stream_common
BPointCloud.h
1
// Copyright (c) Tech Soft 3D, Inc.
2
//
3
// The information contained herein is confidential and proprietary to Tech Soft 3D, Inc.,
4
// and considered a trade secret as defined under civil and criminal statutes.
5
// Tech Soft 3D, Inc. shall pursue its civil and criminal remedies in the event of
6
// unauthorized use or misappropriation of its trade secrets. Use of this information
7
// by anyone other than authorized employees of Tech Soft 3D, Inc. is granted only under
8
// a written non-disclosure agreement, expressly prescribing the scope and manner of such use.
9
10
#ifndef BBINFILETK_BPOINTCLOUD
11
#define BBINFILETK_BPOINTCLOUD
12
#include "BStreamFileToolkit.h"
13
14
15
#ifndef DOXYGEN_SHOULD_SKIP_THIS
16
21
class
BPointCloud
22
#ifdef HPS_CORE_BUILD
23
:
public
CMO
24
#endif
25
{
26
private
:
27
class
BKDTree *m_kd;
//private helper class defined in BPointCloud.cpp
28
class
BStreamFileToolkit
*m_tk;
29
int
m_resolution;
//total bits per vertex, i.e. 3 * bits_per_sample
30
int
m_max_val;
//(1 << bits_per_sample) - 1
31
float
m_bbox[6];
32
float
m_cell_size[3];
//bbox size / m_max_val
33
int
m_original_point_count;
//the number of points in the original shell (and hence the point map length)
34
int
m_point_count;
//the number of unique points (possibly less than original shell)
35
float
*m_points;
//points list, stored in the order intrinsic to the kd tree, not the original shell
36
int
*m_point_map;
37
int
m_next_id;
38
unsigned
char
m_scheme;
//format identifier
39
40
void
put(
class
BKDTree *kd,
class
BPack *pack,
int
num_bits );
41
TK_Status
get
(
class
BKDTree *b,
class
BPack *pack,
int
num_bits,
int
i,
int
j,
int
k,
int
span );
42
43
44
public
:
46
BPointCloud(
class
BStreamFileToolkit
*tk );
47
~BPointCloud();
48
50
enum
scheme {
51
TKPC_Explicit = 0x0001
52
};
53
54
//write time functions
55
TK_Status
InitWrite(
int
resolution,
const
float
*bbox,
int
original_point_count,
const
float
*points );
56
int
GetSizeUpperBound()
const
;
57
void
Generate(
unsigned
char
*buffer,
int
bytes_allocated,
int
*bytes_used );
58
59
//read time functions
60
TK_Status
InitRead(
int
resolution,
const
float
*bbox,
int
original_point_count );
61
TK_Status
Parse(
const
unsigned
char
*buffer,
int
size );
62
TK_Status
GetPoints(
float
points[] );
63
64
};
65
66
#endif
/* DOXYGEN_SHOULD_SKIP_THIS */
67
#endif
/* BBINFILETK_BPOINTCLOUD */
68
69
BStreamFileToolkit
The BStreamFileToolkit class provides support for importing/exporting HOOPS Stream File information...
Definition:
BStreamFileToolkit.h:367
TK_Status
TK_Status
Codes which can be either passed to various toolkit functions, or indicate the result of a toolkit fu...
Definition:
BStream.h:274