68{
69
70
71
73 return;
74
75 G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
76 if(!pVVisManager)
77 return;
78
79 const G4double markerSize = 0.05;
80 G4bool lineRequired = true;
81 G4bool markersRequired = true;
82
86
87 for(G4int i = 0; i < GetPointEntries(); ++i)
88 {
90 const std::vector<G4ThreeVector>* auxiliaries =
91 aTrajectoryPoint->GetAuxiliaryPoints();
92 if(auxiliaries)
93 {
94 for(size_t iAux = 0; iAux < auxiliaries->size(); ++iAux)
95 {
96 const G4ThreeVector pos((*auxiliaries)[iAux]);
97 if(lineRequired)
98 {
99 trajectoryLine.push_back(pos);
100 }
101 if(markersRequired)
102 {
103 auxiliaryPoints.push_back(pos);
104 }
105 }
106 }
107 const G4ThreeVector pos(aTrajectoryPoint->GetPosition());
108 if(lineRequired)
109 {
110 trajectoryLine.push_back(pos);
111 }
112 if(markersRequired)
113 {
114 stepPoints.push_back(pos);
115 }
116 }
117
118 if(lineRequired)
119 {
121
123 {
126 else
127 {
129 }
130 }
131 else
133
135 trajectoryLine.SetVisAttributes(&trajectoryLineAttribs);
136 pVVisManager->Draw(trajectoryLine);
137 }
138 if(markersRequired)
139 {
140 auxiliaryPoints.SetMarkerType(G4Polymarker::squares);
141 auxiliaryPoints.SetScreenSize(markerSize);
142 auxiliaryPoints.SetFillStyle(G4VMarker::filled);
144 auxiliaryPoints.SetVisAttributes(&auxiliaryPointsAttribs);
145 pVVisManager->Draw(auxiliaryPoints);
146
147 stepPoints.SetMarkerType(G4Polymarker::circles);
148 stepPoints.SetScreenSize(markerSize);
149 stepPoints.SetFillStyle(G4VMarker::filled);
151 stepPoints.SetVisAttributes(&stepPointsAttribs);
152 pVVisManager->Draw(stepPoints);
153 }
154}