CMS 3D CMS Logo

Public Member Functions

DDLSolid Class Reference

DDLSolid processes Box elements. More...

#include <DDLSolid.h>

Inheritance diagram for DDLSolid:
DDXMLElement DDLBooleanSolid DDLBox DDLCone DDLEllipsoid DDLEllipticalTube DDLOrb DDLParallelepiped DDLPolyGenerator DDLPseudoTrap DDLReflectionSolid DDLShapelessSolid DDLSphere DDLTorus DDLTrapezoid DDLTubs

List of all members.

Public Member Functions

 DDLSolid (DDLElementRegistry *myreg)
 Constructor.
void setReference (const std::string &nmspace, DDCompactView &cpv)
virtual ~DDLSolid (void)
 Destructor.

Detailed Description

DDLSolid processes Box elements.

Author:
Michael Case

DDLSolid.h - description ------------------- begin: Thu Oct 03, 2002 email: case@ucdhep.ucdavis.edu

This class currently serves one purpose only. That is to create a reference to the most recently processed DDLSolid, no matter whether it is an Box, Boolean, Cone, Cons, Polyhedra, Polycone, Reflection, Shapeless, Trapezoid, Trd1, Tube or Tubs!

Definition at line 27 of file DDLSolid.h.


Constructor & Destructor Documentation

DDLSolid::DDLSolid ( DDLElementRegistry myreg)

Constructor.

Definition at line 18 of file DDLSolid.cc.

  : DDXMLElement( myreg )
{}
DDLSolid::~DDLSolid ( void  ) [virtual]

Destructor.

Definition at line 22 of file DDLSolid.cc.

{}

Member Function Documentation

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

Definition at line 26 of file DDLSolid.cc.

References DDXMLElement::clear(), DCOUT_V, spr::find(), DDXMLElement::getAttributeSet(), DDLElementRegistry::getElement(), DDXMLElement::loadAttributes(), DDXMLElement::myRegistry_, h::names, DDXMLElement::parent(), edm::second(), and makeHLTPrescaleTable::values.

Referenced by DDLTrapezoid::processElement(), DDLBooleanSolid::processElement(), DDLCone::processElement(), DDLShapelessSolid::processElement(), DDLEllipsoid::processElement(), DDLReflectionSolid::processElement(), DDLOrb::processElement(), DDLPseudoTrap::processElement(), DDLTubs::processElement(), DDLBox::processElement(), DDLPolyGenerator::processElement(), DDLParallelepiped::processElement(), DDLEllipticalTube::processElement(), DDLTorus::processElement(), and DDLSphere::processElement().

{
  // in case it was a BooleanSolid or a ReflectionSolid, clear rSolid.
  DDXMLElement* myrSolid = myRegistry_->getElement("rSolid");
  myrSolid->clear();

  // Make sure Solid elements are in LogicalPart elements.
  if (parent() == "LogicalPart")
  {
    DDXMLElement* refsol = myRegistry_->getElement("rSolid");
    std::vector<std::string> names;
    std::vector<std::string> values;
    names.push_back("name");
    values.push_back(getAttributeSet().find("name")->second);
    refsol->loadAttributes("rSolid", names, values, nmspace, cpv);
  }

  // clear THIS solid's values.
  clear();

  DCOUT_V('P', "DDLSolid::setReference completed");
}