14 #include "ooci_api_shim.h"
22 # define OOC_API __declspec(dllexport)
36 class PointCloudWorld;
46 class NodeHandleSerializer;
47 class NodeHandleDeserializer;
63 friend class ReifiedEnv;
72 bool operator== (
Env const & other)
const;
73 bool operator!= (
Env const & other)
const;
100 return r >= 0.0f && g >= 0.0f && b >= 0.0f;
138 return Point(x + other.
x, y + other.
y, z + other.
z);
147 return Point(x - other.
x, y - other.
y, z - other.
z);
156 return Point(x * scale, y * scale, z * scale);
165 return Point(x / scale, y / scale, z / scale);
177 friend class delta::on_disk::NodeHandleSerializer;
178 friend class delta::on_disk::NodeHandleDeserializer;
181 NodeHandle (uint32_t node_file_id, uint32_t node_file_offset);
207 size_t Hash ()
const;
216 return node_file_id == other.node_file_id && node_file_offset == other.node_file_offset;
226 return !(*
this == other);
236 if (node_file_id < other.node_file_id) {
239 if (node_file_id > other.node_file_id) {
242 return node_file_offset < other.node_file_offset;
246 uint32_t node_file_id;
247 uint32_t node_file_offset;
383 PointCloudWorld & GetWorld ()
const;
389 PointCloudWorld & pcw;
480 PointCloudWorld & GetWorld ()
const;
489 void operator& ()
const;
493 PointCloudWorld & pcw;
501 PointCloudWorld & pcw = synchronizer.GetWorld();
617 virtual bool RejectPointsInMemory () = 0;
623 virtual bool RejectPointsOnDisk () = 0;
630 virtual bool RejectNode (
NodeHandle const & node_handle) = 0;
638 virtual bool RejectBounding (
Point const & min_bound,
Point const & max_bound) = 0;
645 virtual bool AcceptPoint (
Point const & point,
size_t point_index) = 0;
667 RGBColor const & GetNodePointColor ()
const;
673 Point const & GetNodePoint ()
const;
679 size_t GetNodePointIndex ()
const;
691 size_t node_point_index;
759 Status GetStatus ()
const;
766 void InvalidateWith (Status status);
769 HookStatus_Success_Hooked,
770 HookStatus_Success_Skipped,
771 HookStatus_Error_Unknown_Failure,
772 HookStatus_Error_File_System_Failure,
773 HookStatus_Error_Deserialization_Failure,
774 HookStatus_Error_Corrupt_Node,
778 HookStatus HookNode (
NodeHandle const & node_handle, HC_KEY
const node_segment_key);
779 HookStatus HookNodePoints (HC_KEY
const node_segment_key);
780 HookStatus HookNodePointsAgainstShell (HC_KEY
const node_shell_key);
781 HookStatus HookNodePointsAgainstDisk (HC_KEY
const node_segment_key);
784 QueryIterator (QueryIterator
const &);
785 void operator= (QueryIterator
const &);
786 void operator= (QueryIterator &&);
789 void * typeless_pending_node_keys;
790 void * typeless_point_buffer;
791 void * typeless_color_buffer;
792 size_t point_buffer_idx;
795 QueryResult query_result;
822 void SetLogFile (
wchar_t const * log_file);
823 void AddPointCloudFile (
wchar_t const * point_cloud_file);
824 void SetMaxShellSize (
int shell_size);
825 void SetMaxMemoryUsage (
size_t max_memory_usage);
826 void SetSubSamplePercentage (
double percentage);
827 void SetCullingBoundingBox (
Point const & min,
Point const & max);
828 void OverwriteExistingFiles (
bool overwrite);
829 void SetDoublePrecision (
bool doubled);
830 void SetUseLASZIP (
bool doubled);
833 void * opaque_point_cloud;
Definition: PointCloudAPI.h:522
Definition: PointCloudAPI.h:393
Definition: PointCloudAPI.h:723
Definition: PointCloudAPI.h:515
float r
Definition: PointCloudAPI.h:104
Definition: PointCloudAPI.h:398
OOC_API bool GetEnv(HC_KEY ooc_root, Env &out_env)
OOC_API QueryIterator QueryPoints(Env env, Filter &filter)
Definition: PointCloudAPI.h:395
float b
Definition: PointCloudAPI.h:106
Definition: PointCloudAPI.h:357
Definition: PointCloudAPI.h:513
PreprocessStatus
Definition: PointCloudAPI.h:804
OOC_API ModifyResult DeleteSpecificPoints(SyncToken const &sync_token, NodeHandle const &node_handle, int32_t const point_indices[], size_t count)
Definition: PointCloudAPI.h:518
OOC_API int Configure(char const *in, char *out)
Definition: PointCloudAPI.h:376
OOC_API bool PollNodesLoadingOrHaveBeenLoaded(Env env)
Status
Definition: PointCloudAPI.h:717
float g
Definition: PointCloudAPI.h:105
Definition: PointCloudAPI.h:397
Point(float x, float y, float z)
Definition: PointCloudAPI.h:126
virtual ~Filter()
Definition: PointCloudAPI.h:611
Definition: PointCloudAPI.h:721
Definition: PointCloudAPI.h:805
Definition: PointCloudAPI.h:808
OOC_API HC_KEY GetShellKey(Env env, NodeHandle const &node_handle)
OOC_API bool IsRoot(HC_KEY ooc_root)
OOC_API ModifyResult DeleteNode(SyncToken const &sync_token, NodeHandle const &node_handle)
SyncResult
Definition: PointCloudAPI.h:356
OOC_API void Destroy(Env env)
float x
Definition: PointCloudAPI.h:169
Filter()
Definition: PointCloudAPI.h:610
Definition: PointCloudAPI.h:724
Definition: PointCloudAPI.h:713
Definition: PointCloudAPI.h:810
Definition: PointCloudAPI.h:394
Definition: PointCloudAPI.h:514
Definition: PointCloudAPI.h:720
Definition: PointCloudAPI.h:82
OOC_API SyncResult SynchronizeWith(Env, std::function< void(SyncToken const &)>)
Definition: PointCloudAPI.h:498
Definition: PointCloudAPI.h:176
OOC_API HC_KEY GetRoot(Env env)
Definition: PointCloudAPI.h:602
Definition: PointCloudAPI.h:457
OptimizeResult
Definition: PointCloudAPI.h:434
Definition: PointCloudAPI.h:718
float z
Definition: PointCloudAPI.h:171
Definition: PointCloudAPI.h:436
Definition: PointCloudAPI.h:400
Definition: PointCloudAPI.h:650
Storage
Definition: PointCloudAPI.h:600
Definition: PointCloudAPI.h:722
Definition: PointCloudAPI.h:440
OOC_API IOResult FileInputByKey(wchar_t const *file_name, HC_KEY segment_key, HInputHandlerOptions const &options)
Definition: PointCloudAPI.h:814
OOC_API OptimizeResult OptimizeDeltas(SyncToken const &sync_token, OptimizeConfig const &config)
NodeHandle()
Definition: PointCloudAPI.h:185
OOC_API HC_KEY GetSegmentKey(Env env, NodeHandle const &node_handle)
OOC_API bool GetNodeHandle(Env env, HC_KEY node_segment_key, NodeHandle &out_node_handle)
Definition: PointCloudAPI.h:516
OOC_API void Release(Env env)
class OOC_API SyncToken
Definition: PointCloudAPI.h:353
Definition: PointCloudAPI.h:62
bool IsValid() const
Definition: PointCloudAPI.h:99
Definition: PointCloudAPI.h:601
Definition: PointCloudAPI.h:517
Definition: PointCloudAPI.h:809
Point()
Definition: PointCloudAPI.h:114
float y
Definition: PointCloudAPI.h:170
Definition: PointCloudAPI.h:519
RGBColor()
Definition: PointCloudAPI.h:85
Definition: PointCloudAPI.h:719
IOResult
Definition: PointCloudAPI.h:512
Definition: PointCloudAPI.h:521
Definition: PointCloudAPI.h:399
RGBColor(float r, float g, float b)
Definition: PointCloudAPI.h:92
Definition: PointCloudAPI.h:111
Definition: PointCloudAPI.h:807
OOC_API IOResult CommitDeltasToFile(Env env, H_UTF8 *out_generated_file_name=0)
Definition: PointCloudAPI.h:396
#define OOC_API
Definition: PointCloudAPI.h:24
OOC_API bool HasUncommittedDeltas(Env env)
Definition: PointCloudAPI.h:520
OOC_API int PointCount(Env env, NodeHandle const &handle)
Definition: PointCloudAPI.h:606
ModifyResult
Definition: PointCloudAPI.h:392
Definition: PointCloudAPI.h:806
Definition: PointCloudAPI.h:435