Class xlifepp::EllipsoidSidePart#
-
class EllipsoidSidePart : public xlifepp::Surface#
-
Inheritence diagram for xlifepp::EllipsoidSidePart:
Collaboration diagram for xlifepp::EllipsoidSidePart:
definition of a part of ellipsoid side in R^3 (surface), defined by an ellipsoid and angles theta, phi related to ellisoid axes: theta = (1-u)theta_min + u theta_max, phi = (1-v)phi_min + v phi_max P(u,v) = P0 + (P1-P0) cos(theta) cos(phi) + (P2-P0) sin(theta) cos(phi) + (P6-P0) sin(phi) no construction via key parameter, no geometric transformation available, no mesh (p_,n_,h_ not managed) not a user geometry for the moment !!!
Public Functions
-
EllipsoidSidePart(const Geometry &g, real_t tmin, real_t tmax, real_t pmin, real_t pmax, EllipsoidParametrizationType = _thetaphi)#
-
default constructor
eplicit constructor
-
inline virtual ~EllipsoidSidePart()#
-
destructor
-
virtual string_t asString() const#
-
format as string
format as string: “EllipsoidSidePart …)”
-
Vector<real_t> biStereographicParametrization(const Point &pt, Parameters &pars, DiffOpType d = _id) const#
-
bi-stereographic parametrization
Bi-stereographic parametrization of sphere S(C,R), u in [0,1], v in [0,1] (t=2pi.v-pi) :
4ucos(t) 4usin(t) 4u^2-1
4(1-u)cos(t) 4(1-u)sin(t) 1-4(1-u)^2 0.5 < u <= 1 : x = Cx + R ———— y = Cy + R ———— z = Cz + R ——-— 1+4(1-u)^2 1+4(1-u)^2 1+4(1-u)^2
u = 0 -> C+(0,0,-R) u = 0.5 -> C+(Rcos(t), Rsin(t),0) u = 1 -> C+(0,0,R) 0<t<1 gives circle parallel to the xy plane 0<u<1 gives meridian parallel to perpendicular plane to xy plane
C0 Parametrization [0,1]x[0,1]->S, but not C1 at u=0.5 !
To deal with any ellipsoid E, use the transformation that maps the unit sphere S(0,1) to E: (x,y,z) -> C + x(P1-C) + y(P2-C) + z(P3-C) (P1,P2,P3 first apogees of E)
-
inline virtual EllipsoidSidePart *ellipsoidSidePart()#
-
access to child EllipsoidSidePart object
-
inline virtual const EllipsoidSidePart *ellipsoidSidePart() const#
-
access to child EllipsoidSidePart object (const)
-
Vector<real_t> funParametrization(const Point &pt, Parameters &pars, DiffOpType d = _id) const#
-
parametrization
EllipsoidSidePart parametrization.
-
virtual GeometricGeodesic geodesic(const Point &x, const Point &dx, bool wCA = false, bool wT = false)#
-
build a geometric geodesic starting at (x,dx) x must be located on ellipsoid and dx must in the tangent space (not checked here)
-
Vector<real_t> invBiStereographicParametrization(const Point &pt, Parameters &pars, DiffOpType d = _id) const#
-
inv of bi-stereographic parametrization
inverse of bi-stereographic parametrization
-
Vector<real_t> invParametrization(const Point &pt, Parameters &pars, DiffOpType d = _id) const#
-
inverse of parametrization
inverse of EllipsoidSidePart parametrization (u,v)=invf(p)
-
Vector<real_t> invStereographicParametrization(const Point &pt, Parameters &pars, DiffOpType d = _id) const#
-
inv of stereographic parametrization
inverse of stereographic parametrization: u = (x-Cx)/(R+z-Cz) v = (y-Cy)/(R+z-Cz)
-
Vector<real_t> invThetaPhiParametrization(const Point &pt, Parameters &pars, DiffOpType d = _id) const#
-
inv of theta-phi parametrization
inverse of EllipsoidSidePart parametrization (u,v)=invf(p)
-
bool isFull() const#
-
true if full ellisoid side
-
Vector<real_t> stereographicParametrization(const Point &pt, Parameters &pars, DiffOpType d = _id) const#
-
stereographic parametrization
Stereographic parametrization of sphere S(C,R), (u,v) in ]0,1[x]0,1[ : (u,v) -> (s,t) = (tan(pi(u-0.5),tan(pi(v-0.5)) maps ]0,1[x]0,1[ to R2 Stereographic parametrization of sphere S(C,R) (s,t) in R2 2s 2t 1-s^2-t^2 x = Cx + R ——— y = Cy + R ——— z = Cz + R ——— 1+s^2+t^2 1+s^2+t^2 1+s^2+t^2.
(s,t) = (0,0) -> C+(0,0,R) (s,t) = (cos(a),sin(a)) -> C+(Rcos(a), Rsin(a),0) |(s,t)|-> +inf -> C+(0,0,-R) C-inf parametrization R^2 -> S/south
To deal with any ellipsoid E, use the transformation that maps the unit sphere S(0,1) to E: (x,y,z) -> C + x(P1-C) + y(P2-C) + z(P3-C) (P1,P2,P3 first apogees of E)
-
Vector<real_t> thetaPhiParametrization(const Point &pt, Parameters &pars, DiffOpType d = _id) const#
-
theta-phi parametrization
(theta-phi) parametrization of EllipsoidSidePart theta = (1-u)theta_min + u theta_max, phi = (1-v)phi_min + v phi_max P - P0 = (P1-P0) cos(theta) cos(phi) + (P2-P0) sin(theta) cos(phi) + (P6-P0) sin(phi)
-
EllipsoidSidePart(const Geometry &g, real_t tmin, real_t tmax, real_t pmin, real_t pmax, EllipsoidParametrizationType = _thetaphi)#