48 fOptionString(
"none"),
49 fScene(
"room-and-chair"),
56 fWindowSillHeight(80*
cm),
57 fWindowOffset(-50*
cm),
61 fDoorFrameOffset(1.5*
m),
69 fChairThickness(3.*
cm)
83 if (
fScene ==
"room-and-chair" )
138 Chair(chair_visAtts, chair_transform);
149 (
G4Box(
"chair-back",fChairX, fChairThickness, fChairZ - fChairSeat),
151 G4Translate3D(0.,-fChairY + fChairThickness, fChairZ + fChairSeat));
153 (
G4Box(
"chair-seat",fChairX, fChairY, fChairThickness),
154 visAtts, transform *
G4TranslateZ3D(-fChairThickness + 2.* fChairSeat));
155 for (
int i = -1; i < 2; i+=2) {
156 for (
int j = -1; j < 2; j+=2) {
158 (
G4Box(
"chair-leg",fChairThickness,
160 fChairSeat - fChairThickness),
163 j * (fChairY - fChairThickness),
164 fChairSeat - fChairThickness));
182 G4bool any =
false,
A =
false,
X =
false,
Y =
false,
Z =
false;
183 if (fOptionString.contains(
"a")) {
A =
true; any =
true;}
184 if (fOptionString.contains(
"x")) {
X =
true; any =
true;}
185 if (fOptionString.contains(
"y")) {
Y =
true; any =
true;}
186 if (fOptionString.contains(
"z")) {
Z =
true; any =
true;}
190 G4bool isAuxEdgeVisible =
false;
200 notLastEdge = polyhedron->
GetNextEdge(v1, v2, edgeFlag);
201 if (isAuxEdgeVisible || edgeFlag > 0) {
205 v21a.transform(transform);
209 (
Z &&
abs(v21a.
z()) >
210 sqrt(v21a.
x()*v21a.
x()+v21a.
y()*v21a.
y())) ||
211 (
X &&
abs(v21a.
x()) >
212 sqrt(v21a.
y()*v21a.
y()+v21a.
z()*v21a.
z())) ||
213 (
Y &&
abs(v21a.
y()) >
214 sqrt(v21a.
x()*v21a.
x()+v21a.
x()*v21a.
z()))) {
217 edge.push_back(v1 - extender * v21.
unit());
218 edge.push_back(v2 + extender * v21.
unit());
219 fpVisManager->Draw(edge, transform);
222 }
while (notLastEdge);
223 }
while (notLastFace);
227 fpVisManager->Draw(solid, visAtts, transform);