94 void init_tetrahedron_base(
double x0,
double y0,
double z0,
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3);
95 void translate(
double x,
double y,
double z);
105 void vertices(
double x,
double y,
double z,std::vector<double> &
v);
111 void normals(std::vector<double> &
v);
112 template<
class vc_
class>
161 template<
class vc_
class>
174 int current_marginal;
189 template<
class vc_
class>
191 template<
class vc_
class>
193 template<
class vc_
class>
195 void add_memory_ds(
int *&
stackp);
196 void add_memory_ds2(
int *&
stackp2);
197 template<
class vc_
class>
199 template<
class vc_
class>
201 template<
class vc_
class>
202 inline bool delete_connection(
vc_class &
vc,
int j,
int k,
bool hand);
203 template<
class vc_
class>
205 template<
class vc_
class>
207 inline bool plane_intersects_track(
double x,
double y,
double z,
double rs,
double g);
208 inline void normals_search(std::vector<double> &
v,
int i,
int j,
int k);
209 inline bool search_edge(
int l,
int &
m,
int &k);
210 inline int m_test(
int n,
double &
ans);
211 int check_marginal(
int n,
double &
ans);
251 double rsq=x*x+y*y+z*z;
260 inline bool plane(
double x,
double y,
double z,
double rsq) {
268 inline bool plane(
double x,
double y,
double z) {
269 double rsq=x*x+y*y+z*z;
277 inline void init(
double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax) {
293 inline void init_tetrahedron(
double x0,
double y0,
double z0,
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3) {
294 init_tetrahedron_base(
x0,
y0,
z0,
x1,
y1,
z1,
x2,
y2,
z2,
x3,
y3,
z3);
299 inline void n_allocate(
int i,
int m) {};
300 inline void n_add_memory_vertices(
int i) {};
301 inline void n_add_memory_vorder(
int i) {};
302 inline void n_set_pointer(
int neIndex,
int n) {};
303 inline void n_copy(
int a,
int b,
int c,
int d) {};
304 inline void n_set(
int a,
int b,
int c) {};
305 inline void n_set_aux1(
int k) {};
306 inline void n_copy_aux1(
int a,
int b) {};
307 inline void n_copy_aux1_shift(
int a,
int b) {};
308 inline void n_set_aux2_copy(
int a,
int b) {};
309 inline void n_copy_pointer(
int a,
int b) {};
310 inline void n_set_to_aux1(
int j) {};
311 inline void n_set_to_aux2(
int j) {};
312 inline void n_allocate_aux1(
int i) {};
313 inline void n_switch_to_aux1(
int i) {};
314 inline void n_copy_to_aux1(
int i,
int m) {};
315 inline void n_set_to_aux1_offset(
int k,
int m) {};
316 inline void n_neighbors(std::vector<int> &
v) {
v.clear();};
365 double rsq=x*x+y*y+z*z;
375 inline bool plane(
double x,
double y,
double z,
double rsq) {
386 inline bool plane(
double x,
double y,
double z) {
387 double rsq=x*x+y*y+z*z;
390 void init(
double xmin,
double xmax,
double ymin,
double ymax,
double zmin,
double zmax);
392 void init_tetrahedron(
double x0,
double y0,
double z0,
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3);
401 inline void n_allocate(
int i,
int m) {
mne[i]=
new int[
m*i];}
402 inline void n_add_memory_vertices(
int i) {
403 int **
pp=
new int*[i];
408 inline void n_add_memory_vorder(
int i) {
409 int **
p2=
new int*[i];
414 inline void n_set_pointer(
int neIndex,
int n) {
417 inline void n_copy(
int a,
int b,
int c,
int d) {
ne[a][b]=
ne[c][d];}
418 inline void n_set(
int a,
int b,
int c) {
ne[a][b]=c;}
419 inline void n_set_aux1(
int k) {paux1=
mne[k]+k*
mec[k];}
420 inline void n_copy_aux1(
int a,
int b) {paux1[b]=
ne[a][b];}
421 inline void n_copy_aux1_shift(
int a,
int b) {paux1[b]=
ne[a][b+1];}
422 inline void n_set_aux2_copy(
int a,
int b) {
424 for(
int i=0;i<b;i++)
ne[a][i]=paux2[i];
426 inline void n_copy_pointer(
int a,
int b) {
ne[a]=
ne[b];}
427 inline void n_set_to_aux1(
int j) {
ne[j]=paux1;}
428 inline void n_set_to_aux2(
int j) {
ne[j]=paux2;}
429 inline void n_allocate_aux1(
int i) {paux1=
new int[i*
mem[i]];}
430 inline void n_switch_to_aux1(
int i) {
delete []
mne[i];
mne[i]=paux1;}
431 inline void n_copy_to_aux1(
int i,
int m) {paux1[
m]=
mne[i][
m];}
432 inline void n_set_to_aux1_offset(
int k,
int m) {
ne[k]=paux1+
m;}
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
A class representing a single Voronoi cell.
Definition cell.hh:37
int current_vertex_order
Definition cell.hh:49
int current_delete2_size
Definition cell.hh:53
int ** mep
Definition cell.hh:159
bool nplane(vc_class &vc, double x, double y, double z, double rsq, int p_id)
Definition cell.cc:413
void face_perimeters(std::vector< double > &v)
Definition cell.cc:1724
void check_duplicates()
Definition cell.cc:350
void copy(voronoicell_base *vb)
Definition cell.cc:72
void init_base(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
Definition cell.cc:265
void face_areas(std::vector< double > &v)
Definition cell.cc:1357
int number_of_faces()
Definition cell.cc:1667
virtual void neighbors(std::vector< int > &v)
Definition cell.hh:125
void reset_edges()
Definition cell.cc:1518
int number_of_edges()
Definition cell.cc:1925
double max_radius_squared()
Definition cell.cc:1475
int cycle_up(int a, int vertexIndex)
Definition cell.hh:137
int up
Definition cell.hh:64
int current_delete_size
Definition cell.hh:51
int p
Definition cell.hh:56
void centroid(double &cx, double &cy, double &cz)
Definition cell.cc:1429
int cycle_down(int a, int vertexIndex)
Definition cell.hh:143
voronoicell_base()
Definition cell.cc:27
void face_vertices(std::vector< int > &v)
Definition cell.cc:1756
int ** ed
Definition cell.hh:82
void print_edges()
Definition cell.cc:2196
double volume()
Definition cell.cc:1320
double total_edge_distance()
Definition cell.cc:1489
void face_freq_table(std::vector< int > &v)
Definition cell.cc:1808
double * pts
Definition cell.hh:89
void init_octahedron_base(double l)
Definition cell.cc:294
int * mem
Definition cell.hh:147
int current_vertices
Definition cell.hh:43
void translate(double x, double y, double z)
Definition cell.cc:112
void vertices(std::vector< double > &v)
Definition cell.cc:1697
int * nu
Definition cell.hh:86
virtual void print_edges_neighbors(int i)
Definition cell.hh:131
virtual ~voronoicell_base()
Definition cell.cc:50
int * mec
Definition cell.hh:151
void vertex_orders(std::vector< int > &v)
Definition cell.cc:1690
void init_tetrahedron_base(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)
Definition cell.cc:320
void check_relations()
Definition cell.cc:339
void normals(std::vector< double > &v)
Definition cell.cc:1585
double surface_area()
Definition cell.cc:1393
void check_memory_for_copy(vc_class &vc, voronoicell_base *vb)
Definition cell.cc:63
void construct_relations()
Definition cell.cc:357
bool plane_intersects(double x, double y, double z, double rsq)
Definition cell.cc:1837
void face_orders(std::vector< int > &v)
Definition cell.cc:1783
bool plane_intersects_guess(double x, double y, double z, double rsq)
Definition cell.cc:1850
Extension of the voronoicell_base class to represent a Voronoi cell with neighbor information.
Definition cell.hh:327
virtual ~voronoicell_neighbor()
Definition cell.cc:2025
virtual void neighbors(std::vector< int > &v)
Definition cell.cc:2032
bool nplane(double x, double y, double z, double rsq, int p_id)
Definition cell.hh:354
void init_octahedron(double l)
Definition cell.cc:1960
void neighborsTArray(TArray< int > &nbrs, bool excludeBounds)
Definition cell.cc:2052
voronoicell_neighbor()
Definition cell.cc:2013
void init_tetrahedron(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)
Definition cell.cc:1980
int ** ne
Definition cell.hh:341
virtual void print_edges_neighbors(int i)
Definition cell.cc:2213
bool plane(double x, double y, double z)
Definition cell.hh:386
void check_facets()
Definition cell.cc:1992
bool nplane(double x, double y, double z, int p_id)
Definition cell.hh:364
int ** mne
Definition cell.hh:334
bool plane(double x, double y, double z, double rsq)
Definition cell.hh:375
void init(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
Definition cell.cc:1938
void operator=(voronoicell &c)
Definition cell.cc:87
void extractCellInfo(const FVector &CellPosition, TArray< FVector > &Vertices, TArray< int32 > &FaceVertexIndices, TArray< int32 > &Nbrs, TArray< FVector > &Normals)
Definition cell.cc:2074
Extension of the voronoicell_base class to represent a Voronoi cell without neighbor information.
Definition cell.hh:222
void operator=(voronoicell &c)
Definition cell.hh:228
void init_octahedron(double l)
Definition cell.hh:284
bool nplane(double x, double y, double z, int p_id)
Definition cell.hh:250
void init(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
Definition cell.hh:277
void init_tetrahedron(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)
Definition cell.hh:293
bool plane(double x, double y, double z, double rsq)
Definition cell.hh:260
bool nplane(double x, double y, double z, double rsq, int p_id)
Definition cell.hh:240
bool plane(double x, double y, double z)
Definition cell.hh:268
void extractCellInfo(const FVector &CellPosition, TArray< FVector > &Vertices, TArray< int32 > &FaceVertexIndices)
Definition cell.cc:2154
Header file for the small helper functions.
Master configuration file for setting various compile-time options.
float v
Definition radaudio_mdct.cpp:62