25 # define OOC_API __declspec(dllexport)
35 class PointCloudWorld;
45 class NodeHandleSerializer;
46 class NodeHandleDeserializer;
62 friend class ReifiedEnv;
71 bool operator== (
Env const & other)
const;
72 bool operator!= (
Env const & other)
const;
99 return r >= 0.0f && g >= 0.0f && b >= 0.0f;
137 return Point(x + other.
x, y + other.
y, z + other.
z);
146 return Point(x - other.
x, y - other.
y, z - other.
z);
155 return Point(x * scale, y * scale, z * scale);
164 return Point(x / scale, y / scale, z / scale);
176 friend class delta::on_disk::NodeHandleSerializer;
177 friend class delta::on_disk::NodeHandleDeserializer;
180 NodeHandle (uint32_t node_file_id, uint32_t node_file_offset);
206 size_t Hash ()
const;
215 return node_file_id == other.node_file_id && node_file_offset == other.node_file_offset;
225 return !(*
this == other);
235 if (node_file_id < other.node_file_id) {
238 if (node_file_id > other.node_file_id) {
241 return node_file_offset < other.node_file_offset;
245 uint32_t node_file_id;
246 uint32_t node_file_offset;
382 PointCloudWorld & GetWorld ()
const;
388 PointCloudWorld & pcw;
479 PointCloudWorld & GetWorld ()
const;
486 void operator& ()
const;
490 PointCloudWorld & pcw;
498 PointCloudWorld & pcw = synchronizer.GetWorld();
613 virtual bool RejectPointsInMemory () = 0;
619 virtual bool RejectPointsOnDisk () = 0;
626 virtual bool RejectNode (
NodeHandle const & node_handle) = 0;
634 virtual bool RejectBounding (
Point const & min_bound,
Point const & max_bound) = 0;
641 virtual bool AcceptPoint (
Point const & point,
size_t point_index) = 0;
663 RGBColor const & GetNodePointColor ()
const;
669 Point const & GetNodePoint ()
const;
675 size_t GetNodePointIndex ()
const;
687 size_t node_point_index;
755 Status GetStatus ()
const;
762 void InvalidateWith (Status status);
765 HookStatus_Success_Hooked,
766 HookStatus_Success_Skipped,
767 HookStatus_Error_Unknown_Failure,
768 HookStatus_Error_File_System_Failure,
769 HookStatus_Error_Deserialization_Failure,
770 HookStatus_Error_Corrupt_Node,
774 HookStatus HookNode (
NodeHandle const & node_handle, HC_KEY
const node_segment_key);
775 HookStatus HookNodePoints (HC_KEY
const node_segment_key);
776 HookStatus HookNodePointsAgainstShell (HC_KEY
const node_shell_key);
777 HookStatus HookNodePointsAgainstDisk (HC_KEY
const node_segment_key);
780 QueryIterator (QueryIterator
const &);
781 void operator= (QueryIterator
const &);
782 void operator= (QueryIterator &&);
785 void * typeless_pending_node_keys;
786 void * typeless_point_buffer;
787 void * typeless_color_buffer;
788 size_t point_buffer_idx;
791 QueryResult query_result;
816 void SetLogFile (
wchar_t const * log_file);
817 void AddPointCloudFile (
wchar_t const * point_cloud_file);
818 void SetMaxShellSize (
int shell_size);
819 void SetMaxMemoryUsage (
size_t max_memory_usage);
820 void SetSubSamplePercentage (
double percentage);
821 void SetCullingBoundingBox (
Point const & min,
Point const & max);
822 void OverwriteExistingFiles (
bool overwrite);
825 void * opaque_point_cloud;
Definition: PointCloudAPI.h:519
Definition: PointCloudAPI.h:392
Definition: PointCloudAPI.h:719
Definition: PointCloudAPI.h:512
float r
Definition: PointCloudAPI.h:103
Definition: PointCloudAPI.h:397
OOC_API bool GetEnv(HC_KEY ooc_root, Env &out_env)
OOC_API QueryIterator QueryPoints(Env env, Filter &filter)
Definition: PointCloudAPI.h:394
float b
Definition: PointCloudAPI.h:105
Definition: PointCloudAPI.h:356
Definition: PointCloudAPI.h:510
PreprocessStatus
Definition: PointCloudAPI.h:799
OOC_API ModifyResult DeleteSpecificPoints(SyncToken const &sync_token, NodeHandle const &node_handle, int32_t const point_indices[], size_t count)
Definition: PointCloudAPI.h:515
OOC_API int Configure(char const *in, char *out)
Definition: PointCloudAPI.h:375
OOC_API bool PollNodesLoadingOrHaveBeenLoaded(Env env)
Status
Definition: PointCloudAPI.h:713
float g
Definition: PointCloudAPI.h:104
Definition: PointCloudAPI.h:396
Point(float x, float y, float z)
Definition: PointCloudAPI.h:125
virtual ~Filter()
Definition: PointCloudAPI.h:607
Definition: PointCloudAPI.h:717
Definition: PointCloudAPI.h:800
Definition: PointCloudAPI.h:803
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:355
OOC_API void Destroy(Env env)
float x
Definition: PointCloudAPI.h:168
Filter()
Definition: PointCloudAPI.h:606
Definition: PointCloudAPI.h:720
Definition: PointCloudAPI.h:709
Definition: PointCloudAPI.h:805
Definition: PointCloudAPI.h:393
Definition: PointCloudAPI.h:511
Definition: PointCloudAPI.h:716
Definition: PointCloudAPI.h:81
OOC_API SyncResult SynchronizeWith(Env, std::function< void(SyncToken const &)>)
Definition: PointCloudAPI.h:495
Definition: PointCloudAPI.h:175
OOC_API HC_KEY GetRoot(Env env)
Definition: PointCloudAPI.h:598
Definition: PointCloudAPI.h:456
OptimizeResult
Definition: PointCloudAPI.h:433
Definition: PointCloudAPI.h:714
float z
Definition: PointCloudAPI.h:170
Definition: PointCloudAPI.h:435
Definition: PointCloudAPI.h:399
Definition: PointCloudAPI.h:646
Storage
Definition: PointCloudAPI.h:596
Definition: PointCloudAPI.h:718
Definition: PointCloudAPI.h:439
OOC_API IOResult FileInputByKey(wchar_t const *file_name, HC_KEY segment_key, HInputHandlerOptions const &options)
Definition: PointCloudAPI.h:809
OOC_API OptimizeResult OptimizeDeltas(SyncToken const &sync_token, OptimizeConfig const &config)
NodeHandle()
Definition: PointCloudAPI.h:184
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:513
OOC_API void Release(Env env)
class OOC_API SyncToken
Definition: PointCloudAPI.h:352
Definition: PointCloudAPI.h:61
bool IsValid() const
Definition: PointCloudAPI.h:98
Definition: PointCloudAPI.h:597
Definition: PointCloudAPI.h:514
Definition: PointCloudAPI.h:804
Point()
Definition: PointCloudAPI.h:113
float y
Definition: PointCloudAPI.h:169
Definition: PointCloudAPI.h:516
RGBColor()
Definition: PointCloudAPI.h:84
Definition: PointCloudAPI.h:715
IOResult
Definition: PointCloudAPI.h:509
Definition: PointCloudAPI.h:518
Definition: PointCloudAPI.h:398
RGBColor(float r, float g, float b)
Definition: PointCloudAPI.h:91
Definition: PointCloudAPI.h:110
Definition: PointCloudAPI.h:802
OOC_API IOResult CommitDeltasToFile(Env env, H_UTF8 *out_generated_file_name=0)
Definition: PointCloudAPI.h:395
#define OOC_API
Definition: PointCloudAPI.h:27
OOC_API bool HasUncommittedDeltas(Env env)
Definition: PointCloudAPI.h:517
OOC_API int PointCount(Env env, NodeHandle const &handle)
Definition: PointCloudAPI.h:602
ModifyResult
Definition: PointCloudAPI.h:391
Definition: PointCloudAPI.h:801
Definition: PointCloudAPI.h:434