1.3.64
 
Loading...
Searching...
No Matches
VoxelIntersection.h
Go to the documentation of this file.
1
16#ifndef VOXELINTERSECTION
17#define VOXELINTERSECTION
18
19#include "Context.h"
20
22public:
24
28
30 static int selfTest(int argc = 0, char **argv = nullptr);
31
34
36
39 void calculatePrimitiveVoxelIntersection(std::vector<uint> UUIDs);
40
42 void disableMessages();
43
45 void enableMessages();
46
48
56 helios::vec3 linesIntersection(helios::vec3 line1_point, helios::vec3 line1_direction, helios::vec3 line2_point, helios::vec3 line2_direction);
57
59
65 std::vector<uint> slicePrimitive(uint UUID, std::vector<helios::vec3> voxel_face_vertices, helios::WarningAggregator &warnings);
66
68
75 std::vector<uint> slicePrimitivesUsingGrid(std::vector<uint> UUIDs, helios::vec3 grid_center, helios::vec3 grid_size, helios::int3 grid_divisions);
76
78
82 std::vector<std::vector<uint>> getCellPrimitives();
83
85
92 bool approxSame(float a, float b, float absTol, float relTol);
93
95
101 bool approxSame(helios::vec3 a, helios::vec3 b, float absTol);
102
104
113
114private:
115 helios::Context *context;
116
117 bool printmessages;
118
119 std::vector<std::vector<uint>> cell_primitives;
120};
121
122#endif