Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Typedefs | Functions
G4AttFilterUtils Namespace Reference

Typedefs

typedef G4CreatorFactoryT
< G4VAttValueFilter, G4TypeKey,
G4VAttValueFilter *(*)()> 
G4AttValueFilterFactory
 

Functions

G4AttValueFilterFactoryGetAttValueFilterFactory ()
 
G4VAttValueFilterGetNewFilter (const G4AttDef &def)
 

Typedef Documentation

Definition at line 42 of file G4AttFilterUtils.hh.

Function Documentation

G4AttValueFilterFactory * G4AttFilterUtils::GetAttValueFilterFactory ( )

Definition at line 55 of file G4AttFilterUtils.cc.

References G4CreatorFactoryT< T, Identifier, Creator >::Register().

Referenced by GetNewFilter().

55  {
57  static G4bool init(false);
58 
59  if (!init) {
60  // Register typekey<->creator pairs
61  factory->Register(G4TypeKeyT<G4String>(), newFilter<G4String>);
62  factory->Register(G4TypeKeyT<G4int>(), newFilter<G4int>);
63  factory->Register(G4TypeKeyT<G4double>(), newFilter<G4double>);
64  factory->Register(G4TypeKeyT<G4ThreeVector>(), newFilter<G4ThreeVector>);
65  factory->Register(G4TypeKeyT<G4bool>(), newFilter<G4bool>);
66  factory->Register(G4TypeKeyT<G4DimensionedDouble>(), newFilter<G4DimensionedDouble>);
67  factory->Register(G4TypeKeyT<G4DimensionedThreeVector>(), newFilter<G4DimensionedThreeVector>);
68  init = true;
69  }
70 
71  return factory;
72  }
G4CreatorFactoryT< G4VAttValueFilter, G4TypeKey, G4VAttValueFilter *(*)()> G4AttValueFilterFactory
bool G4bool
Definition: G4Types.hh:79
G4VAttValueFilter * G4AttFilterUtils::GetNewFilter ( const G4AttDef def)

Definition at line 74 of file G4AttFilterUtils.cc.

References assert, filter, GetAttValueFilterFactory(), G4AttUtils::GetKey(), G4AttDef::GetTypeKey(), and G4TypeKey::IsValid().

Referenced by G4TrajectoryDrawByAttribute::Draw(), and G4AttributeFilterT< T >::Evaluate().

74  {
75 
76  G4TypeKey myKey = def.GetTypeKey();
77 
78  // Get correct type key if original G4AttDef's being used
79  if (!myKey.IsValid()) {
80  myKey = G4AttUtils::GetKey(def);
81  }
82 
83  // Should be valid now
84  assert(myKey.IsValid());
85 
87 
88  G4VAttValueFilter* filter = factory->Create(myKey);
89  assert (0 != filter);
90 
91  return filter;
92  }
pid_t filter
Definition: tracer.cxx:30
G4CreatorFactoryT< G4VAttValueFilter, G4TypeKey, G4VAttValueFilter *(*)()> G4AttValueFilterFactory
#define assert(x)
Definition: mymalloc.cc:1309
G4TypeKey GetKey(const G4AttDef &def)
Definition: G4AttUtils.cc:41
G4AttValueFilterFactory * GetAttValueFilterFactory()
G4bool IsValid()
Definition: G4TypeKey.hh:50
const G4TypeKey & GetTypeKey() const
Definition: G4AttDef.hh:89