CMS 3D CMS Logo

List of all members | Public Member Functions
DDLMaterial Class Reference

DDLMaterial processes Box elements. More...

#include <DDLMaterial.h>

Inheritance diagram for DDLMaterial:
DDXMLElement DDLCompositeMaterial DDLElementaryMaterial

Public Member Functions

 DDLMaterial (DDLElementRegistry *myreg)
 
virtual void setReference (const std::string &nmspace, DDCompactView &cpv)
 
- Public Member Functions inherited from DDXMLElement
void appendText (const std::string &inText)
 append to the current (i.e. most recently added) More...
 
virtual std::vector< DDXMLAttribute >::const_iterator begin (void)
 
virtual void clear (void)
 clear this element's contents. More...
 
 DDXMLElement (DDLElementRegistry *myreg)
 Constructor. More...
 
 DDXMLElement (DDLElementRegistry *myreg, const bool &clearme)
 Constructor for autoClear element. More...
 
virtual std::vector< DDXMLAttribute >::const_iterator end (void)
 
virtual const std::string & get (const std::string &name, size_t aIndex=0) const
 Returns a specific value from the aIndex set of attributes. More...
 
virtual const std::string & getAttribute (const std::string &name) const
 Access to attributes by name. More...
 
virtual const DDXMLAttributegetAttributeSet (size_t aIndex=0) const
 Get a "row" of attributes, i.e. one attribute set. More...
 
const virtual DDName getDDName (const std::string &defaultNS, const std::string &attname=std::string("name"), size_t aIndex=0)
 
const std::string getText (size_t tindex=0) const
 retrieve the text blob. More...
 
virtual std::vector< std::string > getVectorAttribute (const std::string &name)
 Returns a set of values as a std::vector of strings, given the attribute name. More...
 
virtual bool gotText (void) const
 gotText()? kind of like gotMilk? Yes = text has already been encountered. More...
 
virtual bool isEmpty (void) const
 Have any elements of this type been encountered but not processed? More...
 
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. More...
 
void loadText (const std::string &inText)
 Used to load both text and XML comments into this object. More...
 
std::vector< DDXMLAttribute >::const_iterator & operator++ (int inc)
 Allow the elements of this type to be iterated over using ++ operator. More...
 
const std::string & parent (void) const
 access to parent element name More...
 
virtual void preProcessElement (const std::string &name, const std::string &nmspace, DDCompactView &cpv)
 Called by loadAttributes AFTER attributes are loaded. More...
 
virtual void processElement (const std::string &name, const std::string &nmspace, DDCompactView &cpv)
 Processing the element. More...
 
void setParent (const std::string &pename)
 Set parent element name to central list of names. More...
 
void setSelf (const std::string &sename)
 Set self element name to central list of names. More...
 
virtual size_t size (void) const
 Number of elements accumulated. More...
 
virtual void stream (std::ostream &os) const
 Allow for the elements to have their own streaming method, but also provide a default. More...
 
void throwError (const std::string &keyMessage) const
 format std::string for throw an error. More...
 
virtual ~DDXMLElement (void)=default
 Destructor. More...
 

Additional Inherited Members

- Protected Attributes inherited from DDXMLElement
DDLElementRegistrymyRegistry_
 

Detailed Description

DDLMaterial processes Box elements.

Author
Michael Case

DDLMaterial.h - description

begin: Fri Oct 04 2002 email: case@.nosp@m.ucdh.nosp@m.ep.uc.nosp@m.davi.nosp@m.s.edu

This class currently serves one purpose only. That is to create a reference to the most recently created Material, no matter whether it is an ElementaryMaterial or CompositeMaterial.

Definition at line 29 of file DDLMaterial.h.

Constructor & Destructor Documentation

◆ DDLMaterial()

DDLMaterial::DDLMaterial ( DDLElementRegistry myreg)

Definition at line 11 of file DDLMaterial.cc.

11 : DDXMLElement(myreg) {}

Member Function Documentation

◆ setReference()

void DDLMaterial::setReference ( const std::string &  nmspace,
DDCompactView cpv 
)
virtual

Definition at line 13 of file DDLMaterial.cc.

13  {
14  // in case it there were any rMaterials
15  myRegistry_->getElement("rMaterial")->clear();
16 
17  // Attempt to make sure Material elements can be in LogicalPart elements.
18  if (myRegistry_->getElement("LogicalPart")->size() > 0) {
19  auto refmat = myRegistry_->getElement("rMaterial");
20  std::vector<std::string> names;
21  std::vector<std::string> values;
22  names.emplace_back("name");
24  values.emplace_back(atts.find("name")->second);
25  refmat->loadAttributes("rMaterial", names, values, nmspace, cpv);
26  }
27  // clear THIS material's values.
28  clear();
29 }

References DDXMLElement::clear(), DDXMLElement::getAttributeSet(), DDLElementRegistry::getElement(), DDXMLElement::myRegistry_, names, and contentValuesCheck::values.

Referenced by DDLElementaryMaterial::processElement(), and DDLCompositeMaterial::processElement().

DDXMLElement::clear
virtual void clear(void)
clear this element's contents.
Definition: DDXMLElement.cc:40
DDXMLElement::getAttributeSet
virtual const DDXMLAttribute & getAttributeSet(size_t aIndex=0) const
Get a "row" of attributes, i.e. one attribute set.
Definition: DDXMLElement.cc:54
names
const std::string names[nVars_]
Definition: PhotonIDValueMapProducer.cc:124
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
DDXMLElement::DDXMLElement
DDXMLElement(DDLElementRegistry *myreg)
Constructor.
Definition: DDXMLElement.cc:14
DDXMLAttribute
std::map< std::string, std::string > DDXMLAttribute
Definition: DDXMLElement.h:45
DDLElementRegistry::getElement
std::shared_ptr< DDXMLElement > getElement(const std::string &name)
THE most important part. Getting the pointer to a given element type.
Definition: DDLElementRegistry.cc:42
DDXMLElement::myRegistry_
DDLElementRegistry * myRegistry_
Definition: DDXMLElement.h:173