API Documentation
Loading...
Searching...
No Matches
SelectionTreeManager.h
Go to the documentation of this file.
1#pragma once
2#include <NDEVR/DesignObjectBase.h>
3#if NDEVR_VIEWPORT
4#include <NDEVR/Model.h>
5#include <NDEVR/TimeSpan.h>
6namespace NDEVR
7{
8 class DesignObjectLookup;
9 class Model;
10 class Geometry;
11 class BasicThread;
12 class ProgressInfo;
13
14 /**--------------------------------------------------------------------------------------------------
15 \brief Manages selection trees, which optimize the process of selecting data within large Geometry
16 objects
17 **/
18 class NDEVR_DESIGN_API SelectionTreeManager
19 {
20 public:
21 SelectionTreeManager();
22#if NDEVR_SUPPORTS_THREADING
23 void startLoop(DesignObjectLookup* lookup, const TimeSpan& loop_time);
24 void stopLoop();
25#endif
26 void createTrees(DesignObjectLookup* lookup);
27 protected:
28 void createTrees(const Model& model, const void* lock);
29 void createTree(const Geometry& geo, PrimitiveProperty primitive_property, VertexProperty vertex_property, const void* lock);
30 void createModelTree(const Buffer<Model>& models, const void* lock);
31 protected:
32 Buffer<PrimitiveProperty> m_primitive_properties;
33 Buffer<VertexProperty> m_vertex_properties;
34 uint04 m_point_bucket_size = 64;
35 uint04 m_line_bucket_size = 32;
36 uint04 m_triangle_bucket_size = 16;
37 uint04 m_model_child_bucket_size = 8;
38 ProgressInfo* m_log = nullptr;
39 DesignObjectLookup* m_loop_lookup = nullptr;
40 TimeSpan m_loop_timespan = Constant<TimeSpan>::Invalid;
41#if NDEVR_SUPPORTS_THREADING
42 BasicThread* m_loop_thread = nullptr;
43#endif
44 Time m_last_modified_time = Time(0);
45 };
46}
47#endif
#define NDEVR_DESIGN_API
Definition DLLInfo.h:55
Definition ACIColor.h:37
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...
Definition BaseValues.hpp:96