41 : degree(0), controlPointsList(0), knots(0), weightsData(0)
46 std::vector<G4double>* knots0,
47 std::vector<G4double>* weightsData0)
51 G4int nbpoints = controlPointsList0->size();
55 for(a = 0; a < nbpoints; a++)
57 (*controlPointsList)[a] = (*controlPointsList0)[a];
60 G4int nbknots = knots0->size();
61 knots =
new std::vector<G4double>(nbknots,0.);
62 for(a = 0; a < nbknots; a++)
64 (*knots)[a] = (*knots0)[a];
67 G4int nbweights = weightsData0->size();
68 weightsData =
new std::vector<G4double>(nbweights,0.);
69 for(a = 0; a < nbweights; a++)
71 (*weightsData)[a] = (*weightsData0)[a];
106 if (&right ==
this) {
return *
this; }
153 G4Exception(
"G4BSplineCurve::IntersectRay2D()",
"GeomSolids0001",
184 for (
G4int i=0; i<n; i++)
186 G4Point3D& p= (*newControlPointsList)[i];
187 p= tr*(*controlPointsList)[i];
191 std::vector<G4double>* newKnots=
new std::vector<G4double>(*
knots);
192 std::vector<G4double>* newWeightsData=
194 :
new std::vector<G4double>(0);
197 r->
Init(
degree, newControlPointsList, newKnots, newWeightsData);
199 delete newControlPointsList;
201 delete newWeightsData;
299 for (
G4int i=1; i<pointCount; i++)
337 G4Exception(
"G4BSplineCurve::Tangent()",
"GeomSolids0001",
std::vector< G4Point3D > G4Point3DVector
HepGeom::Point3D< G4double > G4Point3D
virtual G4bool Tangent(G4CurvePoint &cp, G4Vector3D &v)
virtual G4Curve * Project(const G4Transform3D &tr=G4Transform3D::Identity)
virtual void InitBounded()
G4BSplineCurve & operator=(const G4BSplineCurve &right)
std::vector< G4double > * knots
virtual G4double GetPMax() const
G4Point3DVector * controlPointsList
virtual G4double GetPPoint(const G4Point3D &p) const
std::vector< G4double > * weightsData
virtual G4Point3D GetPoint(G4double param) const
virtual G4int IntersectRay2D(const G4Ray &ray)
virtual ~G4BSplineCurve()
void Init(G4int degree0, G4Point3DVector *controlPointsList0, std::vector< G4double > *knots0, std::vector< G4double > *weightsData0)
void Init(const G4Point3D &)
void Extend(const G4Point3D &)
void SetBounds(G4double p1, G4double p2)
G4double GetPStart() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)