#include <G4ReduciblePolygon.hh>
|
| G4ReduciblePolygon (const G4double a[], const G4double b[], G4int n) |
|
| G4ReduciblePolygon (const G4double rmin[], const G4double rmax[], const G4double z[], G4int n) |
|
virtual | ~G4ReduciblePolygon () |
|
G4int | NumVertices () const |
|
G4double | Amin () const |
|
G4double | Amax () const |
|
G4double | Bmin () const |
|
G4double | Bmax () const |
|
void | CopyVertices (G4double a[], G4double b[]) const |
|
void | ScaleA (G4double scale) |
|
void | ScaleB (G4double scale) |
|
G4bool | RemoveDuplicateVertices (G4double tolerance) |
|
G4bool | RemoveRedundantVertices (G4double tolerance) |
|
void | ReverseOrder () |
|
void | StartWithZMin () |
|
G4double | Area () |
|
G4bool | CrossesItself (G4double tolerance) |
|
G4bool | BisectedBy (G4double a1, G4double b1, G4double a2, G4double b2, G4double tolerance) |
|
void | Print () |
|
| G4ReduciblePolygon (__void__ &) |
|
Definition at line 61 of file G4ReduciblePolygon.hh.
Definition at line 49 of file G4ReduciblePolygon.cc.
void Create(const G4double a[], const G4double b[], G4int n)
std::vector< ExP01TrackerHit * > a
Definition at line 65 of file G4ReduciblePolygon.cc.
83 for( i=0; i <
n; i++, rOut++, zOut++, rIn--, zIn-- )
void Create(const G4double a[], const G4double b[], G4int n)
std::vector< ExP01TrackerHit * > a
G4ReduciblePolygon::~G4ReduciblePolygon |
( |
| ) |
|
|
virtual |
G4ReduciblePolygon::G4ReduciblePolygon |
( |
__void__ & |
| ) |
|
G4double G4ReduciblePolygon::Amax |
( |
| ) |
const |
|
inline |
G4double G4ReduciblePolygon::Amin |
( |
| ) |
const |
|
inline |
Definition at line 511 of file G4ReduciblePolygon.cc.
515 G4int nNeg = 0, nPos = 0;
518 G4double len12 = std::sqrt( a12*a12 + b12*b12 );
519 a12 /= len12; b12 /= len12;
529 if (cross < -tolerance)
531 if (nPos)
return true;
534 else if (cross > tolerance)
536 if (nNeg)
return true;
G4double G4ReduciblePolygon::Bmax |
( |
| ) |
const |
|
inline |
G4double G4ReduciblePolygon::Bmin |
( |
| ) |
const |
|
inline |
void G4ReduciblePolygon::CalculateMaxMin |
( |
| ) |
|
|
protected |
Definition at line 103 of file G4ReduciblePolygon.cc.
107 G4Exception(
"G4ReduciblePolygon::Create()",
"GeomSolids0002",
115 newVertex->a = *anext;
116 newVertex->b = *bnext;
124 prev->
next = newVertex;
128 }
while( ++anext, ++bnext <
b+
n );
std::vector< ExP01TrackerHit * > a
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition at line 453 of file G4ReduciblePolygon.cc.
455 G4double tolerance2 = tolerance*tolerance;
467 db1 = next1->b-curr1->b;
478 db2 = next2->b-curr2->b;
480 b12 = curr2->b-curr1->b;
486 if (std::fabs(deter) > tolerance2)
489 s1 = (a12*db2-b12*da2)/deter;
491 if (s1 >= zero && s1 < one)
493 s2 = -(da1*b12-db1*a12)/deter;
494 if (s2 >= zero && s2 < one)
return true;
G4int G4ReduciblePolygon::NumVertices |
( |
| ) |
const |
|
inline |
G4bool G4ReduciblePolygon::RemoveDuplicateVertices |
( |
G4double |
tolerance | ) |
|
Definition at line 219 of file G4ReduciblePolygon.cc.
222 *prev = 0, *next = 0;
228 if (std::fabs(curr->a-next->a) < tolerance &&
229 std::fabs(curr->b-next->b) < tolerance )
249 if (prev) prev->next = curr;
else vertexHead = curr;
G4bool G4ReduciblePolygon::RemoveRedundantVertices |
( |
G4double |
tolerance | ) |
|
Definition at line 273 of file G4ReduciblePolygon.cc.
280 G4double tolerance2 = tolerance*tolerance;
292 db = next->b - curr->b;
308 if (test==curr)
break;
314 dbt = test->b - curr->b;
316 if (std::fabs(dat*db-dbt*da)>tolerance2)
break;
340 if ((curr != next) && (next != test))
delete next;
void G4ReduciblePolygon::ReverseOrder |
( |
| ) |
|
void G4ReduciblePolygon::StartWithZMin |
( |
| ) |
|
G4int G4ReduciblePolygon::numVertices |
|
protected |
ABVertex* G4ReduciblePolygon::vertexHead |
|
protected |
The documentation for this class was generated from the following files: