20 #include <Math/RotationX.h>
21 #include <Math/RotationY.h>
22 #include <Math/RotationZ.h>
41 DCOUT_V(
'P',
"DDLRotationByAxis::processElement started " << name);
45 if (
parent() !=
"RotationSequence")
47 std::string axis = atts.find(
"axis")->second;
48 std::string
angle = atts.find(
"angle")->second;
54 if (atts.find(
"name") == atts.end())
60 std::string tn = pName.
name() + std::string(
"Rotation");
61 std::vector<std::string>
names;
62 names.push_back(
"name");
66 std::vector<std::string>
values;
79 DCOUT_V(
'P',
"DDLRotationByAxis::processElement completed");
93 R = ROOT::Math::RotationX(dAngle);
95 else if ( axis ==
"y" ) {
96 R = ROOT::Math::RotationY(dAngle);
98 else if ( axis ==
"z" ) {
99 R = ROOT::Math::RotationZ(dAngle);
102 std::string
msg =
"\nDDLRotationByAxis invalid axis... you must not have validated XML sources! Element is ";
DDLElementRegistry * myRegistry_
virtual const DDXMLAttribute & getAttributeSet(size_t aIndex=0) const
Get a "row" of attributes, i.e. one attribute set.
void throwError(const std::string &keyMessage) const
format std::string for throw an error.
DDName is used to identify DDD entities uniquely.
const std::string & parent(void) const
access to parent element name
type of data representation of DDCompactView
std::map< std::string, std::string > DDXMLAttribute
DDLRotationByAxis(DDLElementRegistry *myreg)
Constructor.
Represents a uniquely identifyable rotation matrix.
DDXMLElement * getElement(const std::string &name)
THE most important part. Getting the pointer to a given element type.
static value_type & instance()
void loadAttributes(const std::string &elemName, const std::vector< std::string > &names, const std::vector< std::string > &values, const std::string &nmspace, DDCompactView &cpv)
Load the element attributes.
virtual DDRotationMatrix processOne(DDRotationMatrix R, std::string &axis, std::string &angle)
Interface of an Expression Evaluator.
virtual void preProcessElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv)
Called by loadAttributes AFTER attributes are loaded.
virtual void processElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv)
Processing the element.
#define DCOUT_V(M_v_Y, M_v_S)
virtual double eval(const std::string &ns, const std::string &expr)=0
evaluate an expression expr inside the local namespace
This is a base class for processing XML elements in the DDD.
virtual ~DDLRotationByAxis(void)
Destructor.
The main class for processing parsed elements.
virtual void clear(void)
clear this element's contents.
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
virtual const DDName getDDName(const std::string &defaultNS, const std::string &attname=std::string("name"), size_t aIndex=0)
static const HistoName names[]
const std::string & name() const
Returns the name.
T angle(T x1, T y1, T z1, T x2, T y2, T z2)