45 for (
size_t i=0; i<vertices.size(); i++)
48 G4Point3D p2= vertices[(i+1) % vertices.size()];
64 while (segments.size()>0)
68 for (G4CurveVector::iterator i=segments.begin(); i!=segments.end();)
72 i = segments.erase(i);
94 for (
size_t i=0; i<segments.size(); i++)
96 c = segments[i]->Project(tr);
100 while (newSegments.size()>0)
102 a = newSegments.back();
103 newSegments.pop_back();
104 for (G4CurveVector::iterator it=newSegments.begin();
105 it!=newSegments.end();)
109 it = newSegments.erase(it);
120 newSegments.push_back(c);
124 r->
Init(newSegments);
132 G4Exception(
"G4CompositeCurve::GetPMax()",
"GeomSolids0002",
139 G4Exception(
"G4CompositeCurve::GetPoint()",
"GeomSolids0002",
147 G4Exception(
"G4CompositeCurve::GetPPoint()",
"GeomSolids0002",
178 for (
size_t i=0; i<segments.size(); i++)
209 for (
size_t i=1; i<segments.size(); i++)
211 b= segments[i]->BBox();
std::vector< G4Curve * > G4CurveVector
std::vector< G4Point3D > G4Point3DVector
HepGeom::Point3D< G4double > G4Point3D
void Init(const G4Point3D &)
G4Point3D GetBoxMin() const
void Extend(const G4Point3D &)
G4Point3D GetBoxMax() const
virtual G4double GetPMax() const
virtual G4Curve * Project(const G4Transform3D &tr=G4Transform3D::Identity)
virtual G4String GetEntityType() const
virtual G4bool Tangent(G4CurvePoint &cp, G4Vector3D &v)
virtual void InitBounded()
virtual G4double GetPPoint(const G4Point3D &p) const
virtual G4Point3D GetPoint(G4double param) const
void Init(const G4CurveVector &segments0)
virtual ~G4CompositeCurve()
virtual G4int IntersectRay2D(const G4Ray &ray)
G4Curve & GetCurve() const
virtual G4int IntersectRay2D(const G4Ray &ray)=0
void SetBounds(G4double p1, G4double p2)
virtual G4bool Tangent(G4CurvePoint &cp, G4Vector3D &v)=0
void Init(const G4Point3D &pnt0, const G4Vector3D &dir0)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)