OOC

class HPS.OOC : IDisposable

The OOC class contains objects used for importing OOC files.

Public Types

enum IOResult

Designates the status of an IO operation.

Values:

Success
ErrorInvalidPointCloud
ErrorUnknownFailure
ErrorNoOOCView
ErrorCyclicFileDependencies
ErrorSerializationFailure
ErrorDeserializationFailure
ErrorIllegalFileName
ErrorFileSystemFailure
ErrorOOCRootAlreadyExists
ErrorInvalidBuffer

Public Functions

void Dispose ()
OOC (HPS.OOC in_that)
class Area : public IDisposable

The Area class is represents a quadrilateral area for highlighting.

Public Functions

Area ()
Area (HPS.OOC.Area in_that)
Area (HPS.Rectangle in_rect, HPS.MatrixKit in_world_to_window, string in_name)
void Dispose ()
string GetName ()

Returns the name associated with this Area

HPS.Point GetWindowMax ()
HPS.Point GetWindowMin ()
HPS.MatrixKit GetWorldToWindow ()

Returns the MatrixKit associated with this Area

bool Intersects (HPS.Point world_space_point)

Determines if a point intersects this Area.

Param world_space_point:
 The point to test
Return:true if the point intersects this area, false otherwise.
bool Intersects (HPS.SimpleCuboid world_space_bounding)

Determines if a cuboid intersects this Area.

Param world_space_bounding:
 The cuboid to test
Return:true if the cuboid interects this area, false otherwise.
class AreaHighlightTracker : public IDisposable

Override this class to customize Area Highlighting.

Public Functions

void AddArea (HPS.Rectangle in_rect, HPS.MatrixKit in_world_to_window, bool in_clear)

Adds an Area to track.

Param in_rect:The quadrilateral area to being tracking.
Param in_world_to_window:
 The MatrixKit associated with this Area.
Param in_clear:Indicates if all preexisting Areas should be removed before adding this new Area.
void AddPoint (HPS.WorldPoint in_point, bool in_clear)

Adds a world space point to track.

Param in_point:The world space point being tracking.
Param in_clear:Indicates if all preexisting point should be removed before adding this new point.
void AddSection (HPS.Plane[] in_planes)

Adds a CuttingSection to track.

Param in_planes:
 The section to also track.
void AddSection (HPS.Plane[] in_planes, bool in_clear)

Adds a CuttingSection to track.

Param in_planes:
 The section to also track.
Param in_clear:Indicates if all preexisting Sections should be removed before adding this new Section.
AreaHighlightTracker (HPS.Canvas in_canvas, HPS.SegmentKey in_area_cameras)
AreaHighlightTracker (HPS.OOC.AreaHighlightTracker in_that)
void Clear ()

Removes all Areas from this object.

void Dispose ()
delegate void DtorDelegate (IntPtr cPtr)
bool Empty ()

Returns true if this object is not tracking any Areas.

HPS.SegmentKey GetAreaCameraSegment ()

Returns the Camera SegmentKey associated with this object.

HPS.OOC.Area[] GetAreas ()

Returns an array of all of the tracked Areas.

HPS.Canvas GetCanvas ()

Returns the Canvas associated with this object.

bool GetInspecting ()
HPS.WindowKey GetWindowKey ()

Returns the WindowKey associated with this object.

bool Intersects (HPS.Point world_space_point)

Determines if a point intersects any of the tracked Areas.

Param world_space_point:
 The point to test
Return:true if the point intersects one of the tracked Areas, false otherwise.
bool Intersects (HPS.SimpleCuboid world_space_bounding)

Determines if a cuboid intersects any of the tracked Areas.

Param world_space_bounding:
 The cuboid to test
Return:true if the cuboid intersects one of the tracked Areas, false otherwise.
void Process (HPS.Key[] shell_keys)
class File : public IDisposable

The File class provides functions to import OOC files.

Public Functions

void Dispose ()
File (HPS.OOC.File in_that)

Public Static Functions

HPS.OOC.ImportNotifier Import (string in_file_name, HPS.OOC.ImportOptionsKit in_options)

Performs an asynchronous import of the specified OOC file with the provided options. May throw an IOException prior to starting the asynchronous import.

Deprecated:

This function has been deprecated, please use Import with an ImportNotifier as parameter.

Param in_file_name:
 The name of the OOC file to import.
Param in_options:
 The options controlling the import of the OOC file.
Return:An ImportNotfier object that can be used to query the import progress and status.
void Import (string in_file_name, HPS.OOC.ImportOptionsKit in_options, HPS.OOC.ImportNotifier in_notifier)

Performs an asynchronous import of the specified OOC file with the provided options. May throw an IOException prior to starting the asynchronous import.

Param in_file_name:
 The name of the OOC file to import.
Param in_options:
 The options controlling the import of the OOC file.
Param in_notifier:
 An ImportNotfier object that can be used to query the import progress and status.
class ImportNotifier : public HPS.IONotifier

The ImportNotifier class is a smart-pointer that is tied to a file import. It is used to interact with an ongoing import or get the results from a completed import.

Public Functions

override void Dispose ()
HPS.Model GetTarget ()

Get the the Model where the OOC data was imported into. Throws an IOException if the import is not complete or was not successful.

Return:The ImportResultsKit for a successful file import.
ImportNotifier ()

The default constructor creates an ImportNotifier object which is not tied to any file import.

ImportNotifier (HPS.IONotifier in_that)

The conversion constructor creates a new derived ImportNotifier object from a base IONotifier object. The copy will only be successful if the source notifier is really an upcast of this notifier type. Otherwise the copy will fail and the resulting ImportNotifier will be invalid.

Param in_that:The source IONotifier to copy.
ImportNotifier (HPS.OOC.ImportNotifier in_that)
override HPS.Type ObjectType ()

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Return:The declared type of the object in question, which may differ from the true, underlying type.
class ImportOptionsKit : public HPS.Sprocket

The ImportOptionsKit class is a user space object. It contains settings controlling what and how data is imported via OOC.

Public Functions

override void Dispose ()
override bool Empty ()

Indicates whether this ImportOptionsKit has any values set on it.

Return:true if no values are set on this ImportOptionsKit, false otherwise.
bool Equals (HPS.OOC.ImportOptionsKit in_kit)

Check if the source ImportOptionsKit is equivalent to this ImportOptionsKit.

Param in_kit:The source ImportOptionsKit to compare to this ImportOptionsKit.
Return:true if the objects are equivalent, false otherwise.
override bool Equals (Object obj)
override int GetHashCode ()
ImportOptionsKit ()

The default constructor creates an empty ImportOptionsKit object.

ImportOptionsKit (HPS.OOC.ImportOptionsKit in_kit)

The copy constructor creates a new ImportOptionsKit object that contains the same settings as the source ImportOptionsKit.

Param in_kit:The source ImportOptionsKit to copy.
override HPS.Type ObjectType ()

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Return:The declared type of the object in question, which may differ from the true, underlying type.
void Set (HPS.OOC.ImportOptionsKit in_kit)

Copies the source ImportOptionsKit into this ImportOptionsKit.

Param in_kit:The source ImportOptionsKit to copy.
HPS.OOC.ImportOptionsKit SetAreaHighlightTracker (HPS.OOC.AreaHighlightTracker in_area_highlight_tracker)

Sets the AreaHighlightTracker.

Note

You should pass in an instance of a class that derives from AreaHighlightTracker that implements your desired behavior.

Param in_area_highlight_tracker:
 The AreaHighlightTracker to use for this
Return:A reference to this ImportOptionsKit.
HPS.OOC.ImportOptionsKit SetCenterBounding (bool in_center_bounding)

Configures the model set a transform to the center of the bounding.

Param in_center_bounding:
 The new center bounding setting
Return:A reference to this ImportOptionsKit.
HPS.OOC.ImportOptionsKit SetManualUpdates (bool in_manual_updates)

Configures the model to only load based on manual updates.

Param in_manual_updates:
 The new manual update setting
Return:A reference to this ImportOptionsKit.
HPS.OOC.ImportOptionsKit SetTarget (HPS.Model in_target)

Uses the Model to set the root segment, library segment, and portfolio where the data will be imported.

Return:A reference to this ImportOptionsKit.
HPS.OOC.ImportOptionsKit SetTranslation (double in_x, double in_y, double in_z)

Configures a translate to be set on the model.

Param in_x:The x translate
Param in_y:The y translate
Param in_z:The z translate
Return:A reference to this ImportOptionsKit.
void Show (out HPS.OOC.ImportOptionsKit out_kit)

Copies this ImportOptionsKit into the given ImportOptionsKit.

Param out_kit:The ImportOptionsKit to populate with the contents of this ImportOptionsKit.
bool ShowCenterBounding (out bool out_center_bounding)

Shows if the model is configured to transform to the center of the bounding.

Param out_center_bounding:
 The current center bounding setting
Return:Returns false if there is no manual update setting.
bool ShowManualUpdates (out bool out_manual_updates)

Shows if the model is configured to only load based on manual updates.

Param out_manual_updates:
 The current manual update setting
Return:Returns false if there is no manual update setting.
bool ShowTarget (out HPS.Model out_model)

Shows the root and library segments and portfolio where the data will be imported. If no segments are specified, root segments will be created for this purpose during import.

Param out_model:
 Model to use to implicitly set Segment, Library and Portfolio into which the data will be imported.
Return:Returns false if there is no target, false otherwise.
bool ShowTranslation (out double out_x, out double out_y, out double out_z)

Shows if a translate is set.

Param out_x:The x translate
Param out_y:The y translate
Param out_z:The z translate
Return:Returns false if there is no manual update setting.
HPS.OOC.ImportOptionsKit UnsetAreaHighlightTracker ()

Removes the AreaHighlightTracker.

Return:A reference to this ImportOptionsKit.
HPS.OOC.ImportOptionsKit UnsetCenterBounding ()

Removes the center bounding setting.

Return:A reference to this ImportOptionsKit.
HPS.OOC.ImportOptionsKit UnsetEverything ()

Removes all settings from this ImportOptionsKit.

Return:A reference to this ImportOptionsKit.
HPS.OOC.ImportOptionsKit UnsetManualUpdates ()

Removes the manual update setting.

Return:A reference to this ImportOptionsKit.
HPS.OOC.ImportOptionsKit UnsetTarget ()

Removes the target and library segments, and Model import state.

Return:A reference to this ImportOptionsKit.
HPS.OOC.ImportOptionsKit UnsetTranslation ()

Removes a translate setting.

Return:A reference to this ImportOptionsKit.

Public Static Functions

HPS.OOC.ImportOptionsKit GetDefault ()

Creates an ImportOptionsKit which contains the default settings. The returned object will not necessarily have values set for every option, but it will have settings for those options where it is reasonable to have a default. These values will be used for import unless an option is overridden by the options passed to File.Import.

Return:An ImportOptionsKit with the default settings.
bool operator!= (HPS.OOC.ImportOptionsKit a, HPS.OOC.ImportOptionsKit b)
bool operator== (HPS.OOC.ImportOptionsKit a, HPS.OOC.ImportOptionsKit b)
class NodeHandle : public IDisposable

Public Functions

void Dispose ()
bool Empty ()

Check the state of the NodeHandle.

Return:Returns true if this NodeHandle doesn’t exist.
bool Equals (HPS.OOC.NodeHandle other)
override bool Equals (Object obj)
override int GetHashCode ()
HPS.SegmentKey GetSegment ()

Get the SegementKey associated with this node.

Return:Returns the SegmentKey, if any.
HPS.ShellKey GetShell ()

Get the ShellKey associated with this node. This is unsynchronized.

Return:Returns the ShellKey, if any.

Public Static Functions

bool operator!= (HPS.OOC.NodeHandle a, HPS.OOC.NodeHandle b)
bool operator== (HPS.OOC.NodeHandle a, HPS.OOC.NodeHandle b)
class PointCloud : public IDisposable

The PointCloud class provides interactions with a OOC point cloud.

Public Functions

ulong AddPoints (HPS.Point[] points, float[] intensities, HPS.RGBColor[] color)
Param points:The points to add
Param intensities:
 The intensities for each points
Param color:The color for each points
Return:number of points added
HPS.OOC.IOResult CommitDeltasToFile ()

Saves to disk any changes made to the point cloud. Beware that moving or renaming dependent files will impact the saved delta file (OOCD) because the OOCD file references them. The most likely result would be that the file cannot be loaded.

A file is generated in the directory xxx/yyy_deltas/ as zzz.oocd where

  • xxx is the root directory for the OOC files

  • yyy is given by xxx/yyy.ooc

  • zzz is the generated file_name for the changes saved to disk.

Example: C:/some_dir/ooc_house_root/house.ooc C:/some_dir/ooc_house_root/house_deltas/00535fe253-0000251e.oocd Here
  • xxx is C:/some_dir/ooc_house_root

  • yyy is house

  • zzz is 00535fe253-0000251e

Return:an IOResult return code.
HPS.OOC.IOResult CommitDeltasToFile (out string out_delta_file_name)
bool DeleteFromPointCloud (HPS.OOC.AreaHighlightTracker tracker)

Deletes points that intersect the areas from the provided tracker.

Return:Returns true if no error occurs Returns false otherwise.
void Destroy ()

Releases and removes point cloud. This is automatic when model is deleted.

void Dispose ()
bool Empty ()

Check the state of the PointCloud.

Return:Returns true if this PointCloud doesn’t exist.
bool Equals (HPS.OOC.PointCloud other)
override bool Equals (Object obj)
void Export ()

Export the point cloud to the ooc file

override int GetHashCode ()
HPS.OOC.NodeHandle GetNodeHandle (HPS.SegmentKey node_key)

Get a NodeHandle associated with a specific segment.

Param node_key:The SegmentKey for the requested Node.
Return:Returns the NodeHandle for the provided segment.
HPS.SegmentKey GetSegment ()

Gets a the top segment for this PointCloud.

Return:Returns the top segment for this PointCloud.
bool HasUncommittedDeltas ()

Queries whether or not there are any uncommitted deltas in memory for a particular PointCloud.

Return:Returns true if there have been any changes made to the point cloud that have not been committed to disk. Returns false otherwise.
PointCloud ()

Constructs an uninitialized point cloud.

Return:The uninitialized point cloud.
PointCloud (HPS.Model in_model)

Retrieve an already displayed point cloud under an existing Model.

Return:The point cloud.
PointCloud (HPS.Model in_model, HPS.OOC.PointCloudOptions pointCloudOptions)

Constructs a new point cloud under an existing Model, with a bounding box.

Param in_model:HPS.Model to use
Param pointCloudOptions:
 Options for the new PointCloud
bool PollUpdateNeeded ()

Used with manual updates load option. If this returns true an Update must be called on the model.

Return:Returns true if the model must be updated otherwise it returns false.
HPS.OOC.QueryIterator QueryPoints (HPS.OOC.QueryFilter filter)

Begin a query.

Param filter:The filter to apply to the query.
Return:Returns the QueryIterator.
void Release ()

Removes ooc hooks. This is automatic when model is deleted.

HPS.OOC.SynchronizedActions.Result Synchronize (HPS.OOC.Synchronized synchronized)

Begin a synchronized action.

Param synchronized:
 The object to synchronize.
Return:Returns the result of the synchronized actions.

Public Static Functions

bool operator!= (HPS.OOC.PointCloud a, HPS.OOC.PointCloud b)
bool operator== (HPS.OOC.PointCloud a, HPS.OOC.PointCloud b)
bool ShowPointClouds (HPS.Model in_model, out HPS.OOC.PointCloud[] out_point_clouds)

Returns an array of PointClouds that exist under this model.

Param in_model:The the model to use.
class PointCloudOptions : public IDisposable

Public Functions

void Dispose ()
HPS.Point GetBoundingBoxMax ()
HPS.Point GetBoundingBoxMin ()
string GetOutputOOCFileName ()
PointCloudOptions (HPS.OOC.PointCloudOptions in_that)
PointCloudOptions (string outputOOCFilename, HPS.Point min, HPS.Point max)
class QueryFilter : public IDisposable

QueryFilter is an class used to indicate what point data should be retrieved from OOC.PointCloud.QueryPoints. The default QueryFilter rejects nothing.

Public Functions

bool AcceptPoint (HPS.Point point, ulong point_index)

Determines whether or not a single point is accepted by the filter.

Param point:The coordinates of the point to accept or not in object space.
Param point_index:
 The index of the point to accept or not.
Return:Returns true if the point is accepted. Returns false otherwise.
void Dispose ()
delegate void DtorDelegate (IntPtr cPtr)
QueryFilter ()
QueryFilter (HPS.OOC.QueryFilter in_that)
bool RejectBounding (HPS.Point min_bound, HPS.Point max_bound)

Determines whether or not a bounding box of points is rejected by the filter.

Param min_bound:
 The minimum corner of the bounding box to accept or reject in object space.
Param max_bound:
 The maximum corner of the bounding box to accept or reject in object space.
Return:Returns true if the bounding is rejected. Returns false otherwise.
bool RejectNode (HPS.OOC.NodeHandle node_handle)

Determines whether or not a point cloud node is rejected by the filter.

Param node_handle:
 The handle of the node to accept or reject.
Return:Returns true if the node is rejected. Returns false otherwise.
bool RejectPointsInMemory ()

Determines whether or not points in memory are rejected by the filter.

Return:Returns true if the filter rejects points that are loaded into memory. Returns false otherwise.
bool RejectPointsOnDisk ()

Determines whether or not points not in memory are rejected by the filter.

Return:Returns true if the filter rejects points that are not loaded into memory. Returns false otherwise.
class QueryIterator : public IDisposable

The iterator returned from a call to OOC.PointCloud.QueryPoints.

Public Types

enum Status

Designates the status of an QueryIterator.

Values:

Alive
Dead
ErrorUnknownFailure
ErrorFileSystemFailure
ErrorDeserializationFailure
ErrorCouldNotFindNode
ErrorCorruptNode
enum Storage

Designates the location of an QueryResult.

Values:

Memory
Disk

Public Functions

void Dispose ()
HPS.OOC.NodeHandle GetNodeHandle ()

Yields the currently processed point’s node handle.

Return:the node handle of the current result
HPS.Point GetNodePoint ()

Yields the currently processed point’s coordinates in object space.

Return:the object space coordinates for the point of the current result
HPS.RGBColor GetNodePointColor ()

Yields the currently processed point’s RGB color.

Return:the RGB color for the point of the current result
ulong GetNodePointIndex ()

Yields the currently processed point’s index.

Return:the index for the point of the current result.
HPS.OOC.QueryIterator.Status GetStatus ()

return:the status of the iterator.

HPS.OOC.QueryIterator.Storage GetStorage ()

Yields the currently processed point’s storage.

Return:the storage for the point of the current result.
void Next ()

Advances the iterator to the next point result. This is only legal to call when this->GetStatus() returns OOC.QueryIterator.Status.Alive.

QueryIterator ()

Constructs a dead query iterator.

Return:The dead iterator
class Synchronized : public IDisposable

Override this class to access SynchronizedActions on a point cloud.

Public Functions

HPS.OOC.SynchronizedActions.Result Actions (HPS.OOC.SynchronizedActions actions)

A virtual function for performing actions on a point cloud in a synchronized mannor. Override this function to call SynchronizedActions on a point cloud by calling PointCloud.Synchronize.

Param actions:A SynchronizedActions object that enables you to perform delete and optimize operations on the point cloud.
Return:The result of the action.
void Dispose ()
delegate void DtorDelegate (IntPtr cPtr)
Synchronized ()
Synchronized (HPS.OOC.Synchronized in_that)
class SynchronizedActions : public IDisposable

This class provides ways to create and optimize OOC deltas.

Public Types

enum Result

Designates the result of an synchronized action.

Values:

Success
ErrorInvalidNode
ErrorInvalidPointCloud
ErrorUnknownFailure
ErrorInternalFailure
ErrorCouldNotFindNode
ErrorInputIndicesAreNotStrictlyIncreasing
ErrorIllegalInputIndices
ErrorCorruptNode
ErrorFileSystemFailure

Public Functions

HPS.OOC.SynchronizedActions.Result DeleteNode (HPS.OOC.NodeHandle node_handle)

Remove a whole node in the OOC model.

Param node_handle:
 The node to apply to delete from the point cloud.
Return:The result of the action.
HPS.OOC.SynchronizedActions.Result DeleteSpecificPoints (HPS.OOC.NodeHandle node_handle, Int32[] point_indices, ulong count)
void Dispose ()
HPS.OOC.SynchronizedActions.Result OptimizeDeltas ()

Optimize the deltas for this model.

Return:The result of the action.
SynchronizedActions (HPS.OOC.SynchronizedActions in_that)