CMS 3D CMS Logo

List of all members | Public Member Functions
DDI::ExtrudedPolygon Class Reference

#include <ExtrudedPolygon.h>

Inheritance diagram for DDI::ExtrudedPolygon:
DDI::Solid

Public Member Functions

 ExtrudedPolygon (const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &z, const std::vector< double > &zx, const std::vector< double > &zy, const std::vector< double > &zscale)
 
void stream (std::ostream &) const override
 
double volume () const override
 
- Public Member Functions inherited from DDI::Solid
const std::vector< double > & parameters () const
 
void setParameters (std::vector< double > const &p)
 
DDSolidShape shape () const
 
 Solid ()
 
 Solid (DDSolidShape shape)
 
virtual ~Solid ()
 

Additional Inherited Members

- Protected Attributes inherited from DDI::Solid
std::vector< double > p_
 
DDSolidShape shape_
 

Detailed Description

Definition at line 11 of file ExtrudedPolygon.h.

Constructor & Destructor Documentation

ExtrudedPolygon::ExtrudedPolygon ( const std::vector< double > &  x,
const std::vector< double > &  y,
const std::vector< double > &  z,
const std::vector< double > &  zx,
const std::vector< double > &  zy,
const std::vector< double > &  zscale 
)

Definition at line 13 of file ExtrudedPolygon.cc.

References ddextrudedpolygon, and DDI::Solid::p_.

20 {
21  assert( x.size() == y.size());
22  assert( z.size() == zx.size());
23  assert( z.size() == zy.size());
24  assert( z.size() == zscale.size());
25 
26  p_.reserve( x.size() + y.size() + z.size() + zx.size() + zy.size() + zscale.size() + 1 );
27  p_.emplace_back( z.size());
28  p_.insert( p_.end(), x.begin(), x.end());
29  p_.insert( p_.end(), y.begin(), y.end());
30  p_.insert( p_.end(), z.begin(), z.end());
31  p_.insert( p_.end(), zx.begin(), zx.end());
32  p_.insert( p_.end(), zy.begin(), zy.end());
33  p_.insert( p_.end(), zscale.begin(), zscale.end());
34 }
Solid()
Definition: Solid.h:14
std::vector< double > p_
Definition: Solid.h:32

Member Function Documentation

void DDI::ExtrudedPolygon::stream ( std::ostream &  os) const
overridevirtual

Reimplemented from DDI::Solid.

Definition at line 44 of file ExtrudedPolygon.cc.

References geant_units::operators::convertMmToCm(), createfilelist::int, gen::k, funct::m, and DDI::Solid::p_.

45 {
46  auto xysize = ( unsigned int )(( p_.size() - 4*p_[0]) * 0.5 );
47  os << " XY Points[cm]=";
48  for( unsigned int k = 1; k <= xysize; ++k )
49  os << convertMmToCm( p_[k] ) << ", " << convertMmToCm( p_[k + xysize] ) << "; ";
50  os << " with " << p_[0] << " Z sections:";
51  unsigned int m0 = p_.size() - 4*p_[0];
52  for( unsigned int m = m0; m < m0 + p_[0]; ++m )
53  {
54  os << " z[cm]=" << convertMmToCm( p_[m] );
55  os << ", x[cm]=" << convertMmToCm( p_[m+p_[0]] );
56  os << ", y[cm]=" << convertMmToCm( p_[m+2*p_[0]] );
57  os << ", scale[cm]=" << convertMmToCm( p_[m+3*p_[0]] ) << ";";
58  }
59 }
int k[5][pyjets_maxn]
std::vector< double > p_
Definition: Solid.h:32
constexpr NumType convertMmToCm(NumType millimeters)
Definition: GeantUnits.h:110
double ExtrudedPolygon::volume ( void  ) const
overridevirtual

Reimplemented from DDI::Solid.

Definition at line 36 of file ExtrudedPolygon.cc.

37 {
38  double volume = 0;
39  /* FIXME: volume is not implemented */
40  return volume;
41 }
double volume() const override