Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes
HyperRect Struct Reference

Public Member Functions

 HyperRect (int dim, const double *min, const double *max)
 
 ~HyperRect ()
 
 HyperRect (const HyperRect &rect)
 
void Extend (const double *pos)
 
bool CompareDistSqr (const double *pos, const double *bestmatch)
 
int GetDim ()
 
double * GetMin ()
 
double * GetMax ()
 

Protected Attributes

int fDim
 
double * fMin
 
double * fMax
 

Detailed Description

Definition at line 83 of file G4KDTree.cc.

Constructor & Destructor Documentation

HyperRect::HyperRect ( int  dim,
const double *  min,
const double *  max 
)
inline

Definition at line 86 of file G4KDTree.cc.

87  {
88  fDim = dim;
89  fMin = new double[fDim];
90  fMax = new double[fDim];
91  size_t size = fDim * sizeof(double);
92  memcpy(fMin, min, size);
93  memcpy(fMax, max, size);
94  }
int fDim
Definition: G4KDTree.cc:156
double * fMin
Definition: G4KDTree.cc:157
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
double * fMax
Definition: G4KDTree.cc:157
HyperRect::~HyperRect ( )
inline

Definition at line 97 of file G4KDTree.cc.

98  {
99  delete[] fMin;
100  delete[] fMax;
101  }
double * fMin
Definition: G4KDTree.cc:157
double * fMax
Definition: G4KDTree.cc:157
HyperRect::HyperRect ( const HyperRect rect)
inline

Definition at line 103 of file G4KDTree.cc.

References fDim, fMax, and fMin.

104  {
105  fDim = rect.fDim;
106  fMin = new double[fDim];
107  fMax = new double[fDim];
108  size_t size = fDim * sizeof(double);
109  memcpy(fMin, rect.fMin, size);
110  memcpy(fMax, rect.fMax, size);
111  }
int fDim
Definition: G4KDTree.cc:156
double * fMin
Definition: G4KDTree.cc:157
double * fMax
Definition: G4KDTree.cc:157

Member Function Documentation

bool HyperRect::CompareDistSqr ( const double *  pos,
const double *  bestmatch 
)
inline

Definition at line 130 of file G4KDTree.cc.

References sqr().

Referenced by G4KDTree::__NearestToNode(), and G4KDTree::__NearestToPosition().

131  {
132  double result = 0;
133 
134  for (int i=0; i < fDim; i++)
135  {
136  if (pos[i] < fMin[i])
137  {
138  result += sqr(fMin[i] - pos[i]);
139  }
140  else if (pos[i] > fMax[i])
141  {
142  result += sqr(fMax[i] - pos[i]);
143  }
144 
145  if(result >= *bestmatch) return false ;
146  }
147 
148  return true ;
149  }
int fDim
Definition: G4KDTree.cc:156
double * fMin
Definition: G4KDTree.cc:157
double * fMax
Definition: G4KDTree.cc:157
T sqr(const T &x)
Definition: templates.hh:145
void HyperRect::Extend ( const double *  pos)
inline

Definition at line 113 of file G4KDTree.cc.

Referenced by G4KDTree::Build(), and G4KDTree::Insert().

114  {
115  int i;
116 
117  for (i=0; i < fDim; i++)
118  {
119  if (pos[i] < fMin[i])
120  {
121  fMin[i] = pos[i];
122  }
123  if (pos[i] > fMax[i])
124  {
125  fMax[i] = pos[i];
126  }
127  }
128  }
int fDim
Definition: G4KDTree.cc:156
double * fMin
Definition: G4KDTree.cc:157
double * fMax
Definition: G4KDTree.cc:157
int HyperRect::GetDim ( )
inline

Definition at line 151 of file G4KDTree.cc.

151 {return fDim;}
int fDim
Definition: G4KDTree.cc:156
double* HyperRect::GetMax ( )
inline

Definition at line 153 of file G4KDTree.cc.

Referenced by G4KDTree::__NearestToNode(), and G4KDTree::__NearestToPosition().

153 {return fMax;}
double * fMax
Definition: G4KDTree.cc:157
double* HyperRect::GetMin ( )
inline

Definition at line 152 of file G4KDTree.cc.

Referenced by G4KDTree::__NearestToNode(), and G4KDTree::__NearestToPosition().

152 {return fMin;}
double * fMin
Definition: G4KDTree.cc:157

Field Documentation

int HyperRect::fDim
protected

Definition at line 156 of file G4KDTree.cc.

Referenced by G4KDTree::GetDim(), and HyperRect().

double * HyperRect::fMax
protected

Definition at line 157 of file G4KDTree.cc.

Referenced by HyperRect().

double* HyperRect::fMin
protected

Definition at line 157 of file G4KDTree.cc.

Referenced by HyperRect().


The documentation for this struct was generated from the following file: