UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
rad_option.hh
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2// Modified version of Voro++'s source file
3
4// Voro++, a 3D cell-based Voronoi library
5//
6// Author : Chris H. Rycroft (LBL / UC Berkeley)
7// Email : chr@alum.mit.edu
8// Date : August 30th 2011
9
14#ifndef VOROPP_RAD_OPTION_HH
15#define VOROPP_RAD_OPTION_HH
16
17#include <cmath>
18
19namespace voro {
20
28 public:
29 struct radius_info // intentionally empty; no special radius info needs to be passed in for radius_mono case
30 {
31 };
32 protected:
37 inline void r_init(int ijk,int s,radius_info& radius_out) const {}
40 inline void r_prime(double rv,radius_info& radius_out) const {}
47 inline bool r_ctest(double crs,double mrs,const radius_info& rad_info) const {return crs>mrs;}
51 inline double r_cutoff(double lrs, const radius_info& rad_info) const {return lrs;}
55 inline double r_max_add(double rs) const {return rs;}
62 inline double r_current_sub(double rs,int ijk,int q) const {return rs;}
69 inline double r_scale(double rs,int ijk,int q, const radius_info& rad_info) const {return rs;}
80 inline bool r_scale_check(double &rs,double mrs,int ijk,int q, const radius_info& rad_info) const {return rs<mrs;}
81};
82
90 public:
92 {
93 double r_rad, r_mul, r_val;
94 };
96 double **ppr;
104 protected:
109 inline void r_init(int ijk, int s, radius_info& radius_out) const {
110 radius_out.r_rad=ppr[ijk][4*s+3]*ppr[ijk][4*s+3];
112 }
115 inline void r_prime(double rv, radius_info& radius_out) const {
116 radius_out.r_val = 1 + radius_out.r_mul / rv;
117 }
124 inline bool r_ctest(double crs, double mrs, const radius_info& rad_info) const {return crs+ rad_info.r_mul>sqrt(mrs*crs);}
128 inline double r_cutoff(double lrs, const radius_info& rad_info) const {return lrs* rad_info.r_val;}
132 inline double r_max_add(double rs) const {return rs+max_radius*max_radius;}
139 inline double r_current_sub(double rs,int ijk,int q) const {
140 return rs-ppr[ijk][4*q+3]*ppr[ijk][4*q+3];
141 }
148 inline double r_scale(double rs,int ijk,int q, const radius_info& rad_info) const {
149 return rs+ rad_info.r_rad-ppr[ijk][4*q+3]*ppr[ijk][4*q+3];
150 }
161 inline bool r_scale_check(double &rs,double mrs,int ijk,int q, const radius_info& rad_info) const {
162 double trs=rs;
163 rs+= rad_info.r_rad-ppr[ijk][4*q+3]*ppr[ijk][4*q+3];
164 return rs<sqrt(mrs*trs);
165 }
166
167};
168
169}
170#endif
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Class containing all of the routines that are specific to computing the regular Voronoi tessellation.
Definition rad_option.hh:27
double r_scale(double rs, int ijk, int q, const radius_info &rad_info) const
Definition rad_option.hh:69
double r_current_sub(double rs, int ijk, int q) const
Definition rad_option.hh:62
void r_prime(double rv, radius_info &radius_out) const
Definition rad_option.hh:40
double r_cutoff(double lrs, const radius_info &rad_info) const
Definition rad_option.hh:51
bool r_ctest(double crs, double mrs, const radius_info &rad_info) const
Definition rad_option.hh:47
void r_init(int ijk, int s, radius_info &radius_out) const
Definition rad_option.hh:37
bool r_scale_check(double &rs, double mrs, int ijk, int q, const radius_info &rad_info) const
Definition rad_option.hh:80
double r_max_add(double rs) const
Definition rad_option.hh:55
Class containing all of the routines that are specific to computing the radical Voronoi tessellation.
Definition rad_option.hh:89
double r_scale(double rs, int ijk, int q, const radius_info &rad_info) const
Definition rad_option.hh:148
radius_poly()
Definition rad_option.hh:103
void r_init(int ijk, int s, radius_info &radius_out) const
Definition rad_option.hh:109
double r_current_sub(double rs, int ijk, int q) const
Definition rad_option.hh:139
void r_prime(double rv, radius_info &radius_out) const
Definition rad_option.hh:115
double r_cutoff(double lrs, const radius_info &rad_info) const
Definition rad_option.hh:128
bool r_scale_check(double &rs, double mrs, int ijk, int q, const radius_info &rad_info) const
Definition rad_option.hh:161
double r_max_add(double rs) const
Definition rad_option.hh:132
bool r_ctest(double crs, double mrs, const radius_info &rad_info) const
Definition rad_option.hh:124
double ** ppr
Definition rad_option.hh:96
double max_radius
Definition rad_option.hh:100
Definition c_loops.cc:15
Definition rad_option.hh:30
Definition rad_option.hh:92
double r_rad
Definition rad_option.hh:93
double r_mul
Definition rad_option.hh:93
double r_val
Definition rad_option.hh:93