Class xlifepp::RevTrunk#

class RevTrunk : public xlifepp::Trunk#

Inheritence diagram for xlifepp::RevTrunk:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "4" [label="xlifepp::Geometry" tooltip="xlifepp::Geometry"] "5" [label="xlifepp::RevCone" tooltip="xlifepp::RevCone"] "6" [label="xlifepp::RevCylinder" tooltip="xlifepp::RevCylinder"] "1" [label="xlifepp::RevTrunk" tooltip="xlifepp::RevTrunk" fillcolor="#BFBFBF"] "2" [label="xlifepp::Trunk" tooltip="xlifepp::Trunk"] "3" [label="xlifepp::Volume" tooltip="xlifepp::Volume"] "5" -> "1" [dir=forward tooltip="public-inheritance"] "6" -> "1" [dir=forward tooltip="public-inheritance"] "1" -> "2" [dir=forward tooltip="public-inheritance"] "2" -> "3" [dir=forward tooltip="public-inheritance"] "3" -> "4" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::RevTrunk:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "23" [label="xlifepp::Collection< string_t >" tooltip="xlifepp::Collection< string_t >"] "16" [label="xlifepp::Matrix< real_t >" tooltip="xlifepp::Matrix< real_t >"] "20" [label="xlifepp::Vector< real_t >" tooltip="xlifepp::Vector< real_t >"] "31" [label="xlifepp::Vector< xlifepp::Vector< real_t > >" tooltip="xlifepp::Vector< xlifepp::Vector< real_t > >"] "40" [label="std::list< std::pair< number_t, real_t > >" tooltip="std::list< std::pair< number_t, real_t > >"] "12" [label="std::map< number_t, std::vector< number_t > >" tooltip="std::map< number_t, std::vector< number_t > >"] "10" [label="std::map< number_t, xlifepp::Geometry * >" tooltip="std::map< number_t, xlifepp::Geometry * >"] "39" [label="std::map< string_t, number_t >" tooltip="std::map< string_t, number_t >"] "41" [label="std::list< T >" tooltip="std::list< T >"] "11" [label="std::map< K, T >" tooltip="std::map< K, T >"] "7" [label="std::vector< T >" tooltip="std::vector< T >"] "26" [label="std::vector< T >" tooltip="std::vector< T >"] "19" [label="std::vector< K >" tooltip="std::vector< K >"] "6" [label="std::vector< RealPair >" tooltip="std::vector< RealPair >"] "22" [label="std::vector< const xlifepp::Transformation * >" tooltip="std::vector< const xlifepp::Transformation * >"] "27" [label="std::vector< number_t >" tooltip="std::vector< number_t >"] "17" [label="std::vector< real_t >" tooltip="std::vector< real_t >"] "36" [label="std::vector< std::vector< GeoNumPair > >" tooltip="std::vector< std::vector< GeoNumPair > >"] "13" [label="std::vector< std::vector< int_t > >" tooltip="std::vector< std::vector< int_t > >"] "24" [label="std::vector< string_t >" tooltip="std::vector< string_t >"] "35" [label="std::vector< xlifepp::GeomDomain * >" tooltip="std::vector< xlifepp::GeomDomain * >"] "34" [label="std::vector< xlifepp::GeomElement * >" tooltip="std::vector< xlifepp::GeomElement * >"] "38" [label="std::vector< xlifepp::Parameter * >" tooltip="std::vector< xlifepp::Parameter * >"] "9" [label="std::vector< xlifepp::Point >" tooltip="std::vector< xlifepp::Point >"] "28" [label="std::vector< xlifepp::Transformation * >" tooltip="std::vector< xlifepp::Transformation * >"] "32" [label="std::vector< xlifepp::Vector< real_t > >" tooltip="std::vector< xlifepp::Vector< real_t > >"] "5" [label="xlifepp::BoundingBox" tooltip="xlifepp::BoundingBox"] "25" [label="xlifepp::Collection< T >" tooltip="xlifepp::Collection< T >"] "14" [label="xlifepp::ExtrusionData" tooltip="xlifepp::ExtrusionData"] "42" [label="xlifepp::GeoNode" tooltip="xlifepp::GeoNode"] "4" [label="xlifepp::Geometry" tooltip="xlifepp::Geometry"] "18" [label="xlifepp::Matrix< K >" tooltip="xlifepp::Matrix< K >"] "33" [label="xlifepp::Mesh" tooltip="xlifepp::Mesh"] "8" [label="xlifepp::MinimalBox" tooltip="xlifepp::MinimalBox"] "37" [label="xlifepp::Parameters" tooltip="xlifepp::Parameters"] "30" [label="xlifepp::Parametrization" tooltip="xlifepp::Parametrization"] "29" [label="xlifepp::Point" tooltip="xlifepp::Point"] "1" [label="xlifepp::RevTrunk" tooltip="xlifepp::RevTrunk" fillcolor="#BFBFBF"] "43" [label="xlifepp::Surface" tooltip="xlifepp::Surface"] "15" [label="xlifepp::Transformation" tooltip="xlifepp::Transformation"] "2" [label="xlifepp::Trunk" tooltip="xlifepp::Trunk"] "21" [label="xlifepp::Vector< K >" tooltip="xlifepp::Vector< K >"] "3" [label="xlifepp::Volume" tooltip="xlifepp::Volume"] "23" -> "24" [dir=forward tooltip="public-inheritance"] "23" -> "25" [dir=forward tooltip="template-instance"] "16" -> "17" [dir=forward tooltip="public-inheritance"] "16" -> "18" [dir=forward tooltip="template-instance"] "20" -> "17" [dir=forward tooltip="public-inheritance"] "20" -> "21" [dir=forward tooltip="template-instance"] "31" -> "32" [dir=forward tooltip="public-inheritance"] "31" -> "21" [dir=forward tooltip="template-instance"] "40" -> "41" [dir=forward tooltip="template-instance"] "12" -> "11" [dir=forward tooltip="template-instance"] "10" -> "11" [dir=forward tooltip="template-instance"] "39" -> "11" [dir=forward tooltip="template-instance"] "19" -> "7" [dir=forward tooltip="template-instance"] "6" -> "7" [dir=forward tooltip="template-instance"] "22" -> "7" [dir=forward tooltip="template-instance"] "27" -> "7" [dir=forward tooltip="template-instance"] "17" -> "7" [dir=forward tooltip="template-instance"] "36" -> "7" [dir=forward tooltip="template-instance"] "13" -> "7" [dir=forward tooltip="template-instance"] "24" -> "7" [dir=forward tooltip="template-instance"] "35" -> "7" [dir=forward tooltip="template-instance"] "34" -> "7" [dir=forward tooltip="template-instance"] "38" -> "7" [dir=forward tooltip="template-instance"] "9" -> "7" [dir=forward tooltip="template-instance"] "28" -> "7" [dir=forward tooltip="template-instance"] "32" -> "7" [dir=forward tooltip="template-instance"] "5" -> "6" [dir=forward tooltip="usage"] "25" -> "26" [dir=forward tooltip="public-inheritance"] "14" -> "15" [dir=forward tooltip="usage"] "14" -> "23" [dir=forward tooltip="usage"] "14" -> "27" [dir=forward tooltip="usage"] "14" -> "17" [dir=forward tooltip="usage"] "14" -> "20" [dir=forward tooltip="usage"] "14" -> "28" [dir=forward tooltip="usage"] "14" -> "29" [dir=forward tooltip="usage"] "42" -> "42" [dir=forward tooltip="usage"] "42" -> "4" [dir=forward tooltip="usage"] "4" -> "5" [dir=forward tooltip="usage"] "4" -> "8" [dir=forward tooltip="usage"] "4" -> "10" [dir=forward tooltip="usage"] "4" -> "12" [dir=forward tooltip="usage"] "4" -> "13" [dir=forward tooltip="usage"] "4" -> "14" [dir=forward tooltip="usage"] "4" -> "30" [dir=forward tooltip="usage"] "4" -> "4" [dir=forward tooltip="usage"] "4" -> "42" [dir=forward tooltip="usage"] "18" -> "19" [dir=forward tooltip="public-inheritance"] "33" -> "4" [dir=forward tooltip="usage"] "33" -> "9" [dir=forward tooltip="usage"] "33" -> "34" [dir=forward tooltip="usage"] "33" -> "35" [dir=forward tooltip="usage"] "33" -> "27" [dir=forward tooltip="usage"] "33" -> "36" [dir=forward tooltip="usage"] "33" -> "33" [dir=forward tooltip="usage"] "8" -> "9" [dir=forward tooltip="usage"] "37" -> "38" [dir=forward tooltip="usage"] "37" -> "39" [dir=forward tooltip="usage"] "30" -> "4" [dir=forward tooltip="usage"] "30" -> "20" [dir=forward tooltip="usage"] "30" -> "31" [dir=forward tooltip="usage"] "30" -> "33" [dir=forward tooltip="usage"] "30" -> "37" [dir=forward tooltip="usage"] "30" -> "40" [dir=forward tooltip="usage"] "29" -> "17" [dir=forward tooltip="public-inheritance"] "1" -> "2" [dir=forward tooltip="public-inheritance"] "43" -> "4" [dir=forward tooltip="public-inheritance"] "43" -> "9" [dir=forward tooltip="usage"] "43" -> "17" [dir=forward tooltip="usage"] "43" -> "27" [dir=forward tooltip="usage"] "15" -> "16" [dir=forward tooltip="usage"] "15" -> "20" [dir=forward tooltip="usage"] "15" -> "22" [dir=forward tooltip="usage"] "2" -> "3" [dir=forward tooltip="public-inheritance"] "2" -> "43" [dir=forward tooltip="usage"] "2" -> "29" [dir=forward tooltip="usage"] "21" -> "19" [dir=forward tooltip="public-inheritance"] "3" -> "4" [dir=forward tooltip="public-inheritance"] "3" -> "9" [dir=forward tooltip="usage"] "3" -> "27" [dir=forward tooltip="usage"] "3" -> "17" [dir=forward tooltip="usage"] }

A object of revolution is defined by its axis (P1,P2) and the radii of two circles obtained by intersection with a plane orthogonal to (P1,P2).

The object is delimited by the two planes, orthogonal to (P1,P2), passing by P1 and P2, and this is the default end shape of the object when it is meshed with volumic elements (gesFlat or equivalently in this case, gesNone). When the elements are surfacic, the default is to leave the ends empty (gesNone).

Moreover, on both ends of this object, one can add part of a cone (gesCone), an ellipsoid (gesEllipsoid) or a sphere (gesSphere), connected to the boundary circle of the object. Let us consider the boundary circle whose center is P1. The apex of the cone or the ellipsoid is assumed to lie on the line (P1,P2) at a given distance distance1_ from P1. This distance is irrelevant in the case of the sphere. The same apply on the other end of the object. When the elements are surfacic, one can additonnaly chose a flat “lid” (gesFlat) ; the distance argument is then also irrelevant in this case.

RevTrunk constructors are based on a key-value system. Here are the available keys:

  • _center1, _center2: to define centers of bases when they are elliptical

  • _radius1, _radius2: the radii of the bases

  • _end1_shape, _end2_shape: the shape of extension parts on both ends of the RevTrunk

  • _end1_distance, _end2_distance: the lengths of extension parts on both ends of the RevTrunk

  • _nbsubdomains: the number of slices of the RevTrunk (subdivision mesg generator only)

  • _type: indicator to fit curved boundaries (default) or not which gives flat (or plane) boundaries

  • _nnodes: to define the number of nodes on the edges of the RevTrunk

  • _hsteps: to define the local mesh steps on build points of the RevTrunk

  • _domain_name: to define the domain name

  • _side_names: to define the side names

  • _varnames: to define the variable names for print purpose

Subclassed by xlifepp::RevCone, xlifepp::RevCylinder

Public Functions

RevTrunk(const RevTrunk &r)#

copy constructor

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4)#

constructor with 4 Parameter

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5)#

constructor with 5 Parameter

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5, Parameter p6)#

constructor with 6 Parameter

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5, Parameter p6, Parameter p7)#

constructor with 7 Parameter

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5, Parameter p6, Parameter p7, Parameter p8)#

constructor with 8 Parameter

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5, Parameter p6, Parameter p7, Parameter p8, Parameter p9)#

constructor with 9 Parameter

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5, Parameter p6, Parameter p7, Parameter p8, Parameter p9, Parameter p10)#

constructor with 10 Parameter

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5, Parameter p6, Parameter p7, Parameter p8, Parameter p9, Parameter p10, Parameter p11)#

constructor with 11 Parameter

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5, Parameter p6, Parameter p7, Parameter p8, Parameter p9, Parameter p10, Parameter p11, Parameter p12)#

constructor with 12 Parameter

RevTrunk(Parameter p1, Parameter p2, Parameter p3, Parameter p4, Parameter p5, Parameter p6, Parameter p7, Parameter p8, Parameter p9, Parameter p10, Parameter p11, Parameter p12, Parameter p13)#

constructor with 13 Parameter

RevTrunk(real_t scale = 1., bool defineBasisAndP = true)#

default constructor

virtual string_t asString() const#

format as string: “RevTrunk (P1=(.,.,.), P2=(.,.,.), radius=R, end1=., end2=., d1=., d2=.)”

Format RevTrunk as string: “RevTrunk(C1=(.,.,.), C2=(.,.,.), radius1=R1, radius2=R2, end1=., end2=., d1=., d2=.)”.

virtual std::vector<const Point*> boundNodes() const#

returns list of points on boundary (const)

inline virtual Geometry *clone() const#

virtual copy constructor

virtual std::vector<std::pair<ShapeType, std::vector<const Point*>>> curves() const#

returns list of curves (const)

inline real_t distance1() const#

returns height of first end

inline real_t distance2() const#

returns height of second end

inline GeometricEndShape endShape1() const#

returns shape of first end

inline GeometricEndShape endShape2() const#

returns shape of second end

inline virtual RevTrunk &homothetize(const Parameter &p1)#

apply a homothety on a RevTrunk (1 key)

inline virtual RevTrunk &homothetize(const Parameter &p1, const Parameter &p2)#

apply a homothety on a RevTrunk (2 keys)

inline virtual RevTrunk &homothetize(const Point &c = Point(0., 0., 0.), real_t factor = 1.)#

apply a homothety on a RevTrunk

inline virtual RevTrunk &homothetize(real_t factor)#

apply a homothety on a RevTrunk

virtual number_t nbSubdiv() const#

returns number of subdivisions

inline virtual number_t nbSubdomains() const#

returns number of elements on lateral edges

inline virtual RevTrunk &pointReflect(const Parameter &p1)#

apply a point reflection on a RevTrunk (1 key)

inline virtual RevTrunk &pointReflect(const Point &c = Point(0., 0., 0.))#

apply a point reflection on a RevTrunk

inline real_t radius1() const#

returns radius of first basis

inline real_t radius2() const#

returns radius of second basis

inline virtual RevTrunk &reflect2d(const Parameter &p1)#

apply a reflection2d on a RevTrunk (1 key)

inline virtual RevTrunk &reflect2d(const Parameter &p1, const Parameter &p2)#

apply a reflection2d on a RevTrunk (2 keys)

inline virtual RevTrunk &reflect2d(const Point &c, real_t dx, real_t dy = 0.)#

apply a reflection2d on a RevTrunk

inline virtual RevTrunk &reflect2d(const Point &c = Point(0., 0.), std::vector<real_t> d = std::vector<real_t>(2, 0.))#

apply a reflection2d on a RevTrunk

inline virtual RevTrunk &reflect3d(const Parameter &p1)#

apply a reflection3d on a RevTrunk (1 key)

inline virtual RevTrunk &reflect3d(const Parameter &p1, const Parameter &p2)#

apply a reflection3d on a RevTrunk (2 keys)

inline virtual RevTrunk &reflect3d(const Point &c, real_t nx, real_t ny, real_t nz = 0.)#

apply a reflection3d on a RevTrunk

inline virtual RevTrunk &reflect3d(const Point &c = Point(0., 0., 0.), std::vector<real_t> n = std::vector<real_t>(3, 0.))#

apply a reflection3d on a RevTrunk

inline virtual RevTrunk *revTrunk()#

access to child RevTrunk object

inline virtual const RevTrunk *revTrunk() const#

access to child RevTrunk object (const)

inline virtual RevTrunk &rotate2d(const Parameter &p1)#

apply a rotation 2D on a RevTrunk (1 key)

inline virtual RevTrunk &rotate2d(const Parameter &p1, const Parameter &p2)#

apply a rotation 2D on a RevTrunk (2 keys)

inline virtual RevTrunk &rotate2d(const Point &c, real_t angle = 0.)#

apply a rotation 2D on a RevTrunk

inline virtual RevTrunk &rotate3d(const Parameter &p1)#

apply a rotation 3D on a RevTrunk (1 key)

inline virtual RevTrunk &rotate3d(const Parameter &p1, const Parameter &p2)#

apply a rotation 3D on a RevTrunk (2 keys)

inline virtual RevTrunk &rotate3d(const Parameter &p1, const Parameter &p2, const Parameter &p3)#

apply a rotation 3D on a RevTrunk (3 keys)

inline virtual RevTrunk &rotate3d(const Point &c, real_t dx, real_t dy, real_t angle)#

apply a rotation on a RevTrunk

inline virtual RevTrunk &rotate3d(const Point &c, real_t dx, real_t dy, real_t dz, real_t angle)#

apply a rotation on a RevTrunk

inline virtual RevTrunk &rotate3d(const Point &c, std::vector<real_t> d = std::vector<real_t>(3, 0.), real_t angle = 0.)#

apply a rotation 3D on a RevTrunk

inline virtual RevTrunk &rotate3d(real_t dx, real_t dy, real_t angle)#

apply a rotation 3D on a RevTrunk

inline virtual RevTrunk &rotate3d(real_t dx, real_t dy, real_t dz, real_t angle)#

apply a rotation 3D on a RevTrunk

virtual std::vector<std::pair<ShapeType, std::vector<const Point*>>> surfs() const#

returns list of faces (const)

virtual RevTrunk &transform(const Transformation &t)#

apply a geometrical transformation on a RevTrunk

inline virtual RevTrunk &translate(const Parameter &p1)#

apply a translation on a RevTrunk (1 key)

inline virtual RevTrunk &translate(real_t ux, real_t uy = 0., real_t uz = 0.)#

apply a translation on a RevTrunk (3 reals version)

inline virtual RevTrunk &translate(std::vector<real_t> u)#

apply a translation on a RevTrunk (vector version)

inline virtual dimen_t type() const#

returns type of subdivision