OOC

class HPS.OOC : public 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.

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.

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.

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

void Assign (HPS.OOC.ImportNotifier in_that)

Associate this ImportNotifier with the same file import as the source ImportNotifier.

Param in_that

The source ImportNotifier for the assignment.

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)

The copy constructor creates a new ImportNotifier object that is associated with the same file import as the source ImportNotifier.

Param in_that

The source ImportNotifier 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.

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

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)
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)

Constructs a point cloud under an existing Model.

Return

The point cloud.

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 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)