CMS 3D CMS Logo

Public Member Functions | Private Types | Private Attributes

ModifiedSurfaceGenerator< T > Class Template Reference

#include <ModifiedSurfaceGenerator.h>

List of all members.

Public Member Functions

SurfacePointer atNewPosition (const Surface::PositionType &position, const Surface::RotationType &rotation) const
 ModifiedSurfaceGenerator (const T *surface)
 constructor from pointer
 ModifiedSurfaceGenerator (const SurfacePointer surface)
 constructor from ReferenceCountingPointer

Private Types

typedef
ReferenceCountingPointer< T
SurfacePointer

Private Attributes

ConstReferenceCountingPointer< TtheSurface
 original surface

Detailed Description

template<class T>
class ModifiedSurfaceGenerator< T >

Definition at line 13 of file ModifiedSurfaceGenerator.h.


Member Typedef Documentation

template<class T >
typedef ReferenceCountingPointer<T> ModifiedSurfaceGenerator< T >::SurfacePointer [private]

Definition at line 15 of file ModifiedSurfaceGenerator.h.


Constructor & Destructor Documentation

template<class T >
ModifiedSurfaceGenerator< T >::ModifiedSurfaceGenerator ( const T surface) [inline]

constructor from pointer

Definition at line 19 of file ModifiedSurfaceGenerator.h.

                                              :
    theSurface(surface) {}
template<class T >
ModifiedSurfaceGenerator< T >::ModifiedSurfaceGenerator ( const SurfacePointer  surface) [inline]

constructor from ReferenceCountingPointer

Definition at line 22 of file ModifiedSurfaceGenerator.h.

                                                          :
    theSurface(surface.get()) {}

Member Function Documentation

template<class T >
SurfacePointer ModifiedSurfaceGenerator< T >::atNewPosition ( const Surface::PositionType position,
const Surface::RotationType rotation 
) const [inline]

creation of a new surface at a different position, but with identical Bounds and MediumProperties

Definition at line 26 of file ModifiedSurfaceGenerator.h.

References ModifiedSurfaceGenerator< T >::theSurface.

                                                                           {
    const MediumProperties* mp(theSurface->mediumProperties());
    SurfacePointer newSurface(new T(position, rotation,theSurface->bounds()));
    if ( mp ) newSurface->setMediumProperties(const_cast<MediumProperties*>(mp));
    return newSurface;
  }

Member Data Documentation

original surface

Definition at line 36 of file ModifiedSurfaceGenerator.h.

Referenced by ModifiedSurfaceGenerator< T >::atNewPosition().