59 x = std::atan2(mat.
zy(),mat.
zz());
60 y = std::atan2(-mat.
zx(),cosb);
61 z = std::atan2(mat.
yx(),mat.
xx());
65 x = std::atan2(-mat.
yz(),mat.
yy());
66 y = std::atan2(-mat.
zx(),cosb);
85 scaleElement->setAttributeNode(
NewAttribute(
"name",name));
89 element->appendChild(scaleElement);
101 rotationElement->setAttributeNode(
NewAttribute(
"name",name));
102 rotationElement->setAttributeNode(
NewAttribute(
"x",x/degree));
103 rotationElement->setAttributeNode(
NewAttribute(
"y",y/degree));
104 rotationElement->setAttributeNode(
NewAttribute(
"z",z/degree));
105 rotationElement->setAttributeNode(
NewAttribute(
"unit",
"deg"));
106 element->appendChild(rotationElement);
118 positionElement->setAttributeNode(
NewAttribute(
"name",name));
119 positionElement->setAttributeNode(
NewAttribute(
"x",x/mm));
120 positionElement->setAttributeNode(
NewAttribute(
"y",y/mm));
121 positionElement->setAttributeNode(
NewAttribute(
"z",z/mm));
122 positionElement->setAttributeNode(
NewAttribute(
"unit",
"mm"));
123 element->appendChild(positionElement);
CLHEP::Hep3Vector G4ThreeVector
G4DLLIMPORT std::ostream G4cout
virtual void DefineWrite(xercesc::DOMElement *)
void Scale_vectorWrite(xercesc::DOMElement *, const G4String &, const G4String &, const G4ThreeVector &)
xercesc::DOMElement * defineElement
void Position_vectorWrite(xercesc::DOMElement *, const G4String &, const G4String &, const G4ThreeVector &)
void Rotation_vectorWrite(xercesc::DOMElement *, const G4String &, const G4String &, const G4ThreeVector &)
static const G4double kLinearPrecision
static const G4double kAngularPrecision
virtual ~G4GDMLWriteDefine()
G4ThreeVector GetAngles(const G4RotationMatrix &)
static const G4double kRelativePrecision
xercesc::DOMElement * NewElement(const G4String &)
xercesc::DOMAttr * NewAttribute(const G4String &, const G4String &)