45 std::shared_ptr<DDXMLElement> myret(
nullptr);
51 myret = std::make_shared<DDLBox>(
this);
52 }
else if (
name ==
"Cone") {
53 myret = std::make_shared<DDLCone>(
this);
54 }
else if (
name ==
"Polyhedra" ||
name ==
"Polycone") {
55 myret = std::make_shared<DDLPolyGenerator>(
this);
56 }
else if (
name ==
"Trapezoid" ||
name ==
"Trd1") {
57 myret = std::make_shared<DDLTrapezoid>(
this);
58 }
else if (
name ==
"PseudoTrap") {
59 myret = std::make_shared<DDLPseudoTrap>(
this);
60 }
else if (
name ==
"Tubs" ||
name ==
"CutTubs" ||
name ==
"Tube" ||
name ==
"TruncTubs") {
61 myret = std::make_shared<DDLTubs>(
this);
62 }
else if (
name ==
"Torus") {
63 myret = std::make_shared<DDLTorus>(
this);
64 }
else if (
name ==
"UnionSolid" ||
name ==
"SubtractionSolid" ||
name ==
"IntersectionSolid") {
65 myret = std::make_shared<DDLBooleanSolid>(
this);
66 }
else if (
name ==
"ShapelessSolid") {
67 myret = std::make_shared<DDLShapelessSolid>(
this);
68 }
else if (
name ==
"Sphere") {
69 myret = std::make_shared<DDLSphere>(
this);
70 }
else if (
name ==
"EllipticalTube") {
71 myret = std::make_shared<DDLEllipticalTube>(
this);
72 }
else if (
name ==
"ExtrudedPolygon") {
73 myret = std::make_shared<DDLPgonGenerator>(
this);
74 }
else if (
name ==
"Assembly")
75 myret = std::make_shared<DDLAssembly>(
this);
79 else if (
name ==
"PosPart") {
80 myret = std::make_shared<DDLPosPart>(
this);
81 }
else if (
name ==
"CompositeMaterial") {
82 myret = std::make_shared<DDLCompositeMaterial>(
this);
83 }
else if (
name ==
"ElementaryMaterial") {
84 myret = std::make_shared<DDLElementaryMaterial>(
this);
85 }
else if (
name ==
"LogicalPart") {
86 myret = std::make_shared<DDLLogicalPart>(
this);
87 }
else if (
name ==
"ReflectionRotation" ||
name ==
"Rotation") {
88 myret = std::make_shared<DDLRotationAndReflection>(
this);
89 }
else if (
name ==
"SpecPar") {
90 myret = std::make_shared<DDLSpecPar>(
this);
91 }
else if (
name ==
"RotationSequence") {
92 myret = std::make_shared<DDLRotationSequence>(
this);
93 }
else if (
name ==
"RotationByAxis") {
94 myret = std::make_shared<DDLRotationByAxis>(
this);
97 else if (
name ==
"SpecParSection") {
98 myret = std::make_shared<DDXMLElement>(
this,
true);
99 }
else if (
name ==
"Vector") {
100 myret = std::make_shared<DDLVector>(
this);
101 }
else if (
name ==
"Map") {
102 myret = std::make_shared<DDLMap>(
this);
103 }
else if (
name ==
"String") {
104 myret = std::make_shared<DDLString>(
this);
105 }
else if (
name ==
"Numeric") {
106 myret = std::make_shared<DDLNumeric>(
this);
107 }
else if (
name ==
"Algorithm") {
108 myret = std::make_shared<DDLAlgorithm>(
this);
109 }
else if (
name ==
"Division") {
110 myret = std::make_shared<DDLDivision>(
this);
116 else if (
name ==
"MaterialFraction" ||
name ==
"RZPoint" ||
name ==
"XYPoint" ||
name ==
"PartSelector" ||
117 name ==
"Parameter" ||
name ==
"ZSection" ||
name ==
"ZXYSection" ||
name ==
"Translation" ||
118 name ==
"rSolid" ||
name ==
"rMaterial" ||
name ==
"rParent" ||
name ==
"rChild" ||
name ==
"rRotation" ||
119 name ==
"rReflectionRotation" ||
name ==
"DDDefinition") {
120 myret = std::make_shared<DDXMLElement>(
this);
130 myret = std::make_shared<DDXMLElement>(
this);
std::shared_ptr< DDXMLElement > getElement(const std::string &name)
THE most important part. Getting the pointer to a given element type.