Geant4  10.02.p01
DefaultHepRepInstance.cc
Go to the documentation of this file.
1 // Copyright FreeHEP, 2005.
2 
3 #include <iostream>
4 
5 #include "cheprep/DefaultHepRepInstance.h"
6 
7 using namespace std;
8 using namespace HEPREP;
9 
14 namespace cheprep {
15 
16 DefaultHepRepInstance::DefaultHepRepInstance(HepRepInstance* instance, HepRepType* heprepType)
17  : DefaultHepRepAttribute(), parent(instance), type(heprepType) {
18 
19  if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl;
20  parent->addInstance(this);
21 }
22 
23 DefaultHepRepInstance::DefaultHepRepInstance(HepRepInstanceTree* instanceTree, HepRepType* heprepType)
24  : DefaultHepRepAttribute(), parent(NULL), type(heprepType) {
25 
26  if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl;
27  instanceTree->addInstance(this);
28 }
29 
30 DefaultHepRepInstance::~DefaultHepRepInstance() {
31  parent = NULL;
32  type = NULL;
33  for (vector<HepRepInstance*>::iterator i1 = instances.begin(); i1 != instances.end(); i1++) {
34  delete (*i1);
35  }
36  for (vector<HepRepPoint*>::iterator i2 = points.begin(); i2 != points.end(); i2++) {
37  delete (*i2);
38  }
39 }
40 
41 void DefaultHepRepInstance::overlay(HepRepInstance *) {
42  cerr << "DefaultHepRepInstance::overlay(HepRepInstance * instance) not implemented." << endl;
43 }
44 
45 HepRepInstance* DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstance*, HepRepSelectFilter*) {
46  cerr << "DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstance*, HepRepSelectFilter*) not implemented." << endl;
47  return NULL;
48 }
49 
50 HepRepInstance* DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstanceTree*, HepRepSelectFilter*) {
51  cerr << "DefaultHepRepInstance::copy(HepRepTypeTree*, HepRepInstanceTree*, HepRepSelectFilter*) not implemented." << endl;
52  return NULL;
53 }
54 
55 HepRepType* DefaultHepRepInstance::getType() {
56  return type;
57 }
58 
59 void DefaultHepRepInstance::addPoint(HepRepPoint* point) {
60  points.push_back(point);
61 }
62 
63 vector<HepRepPoint*> DefaultHepRepInstance::getPoints() {
64  return points;
65 }
66 
67 HepRepInstance* DefaultHepRepInstance::getSuperInstance() {
68  return parent;
69 }
70 
71 void DefaultHepRepInstance::addInstance(HepRepInstance* instance) {
72  instances.push_back(instance);
73 }
74 
75 void DefaultHepRepInstance::removeInstance(HepRepInstance*) {
76  cerr << "DefaultHepRepInstance::removeInstance(HepRepInstance*) not implemented." << endl;
77 }
78 
79 vector<HepRepInstance*> DefaultHepRepInstance::getInstances() {
80  return instances;
81 }
82 
83 HepRepAttValue* DefaultHepRepInstance::getAttValue(string name) {
84  HepRepAttValue* value = getAttValueFromNode(name);
85  return (value != NULL) ? value : type->getAttValue(name);
86 }
87 
88 } // cheprep
G4String name
Definition: TRTMaterials.hh:40
static MCTruthManager * instance