44 fDrawingStyle (wireframe),
45 fAuxEdgeVisible (false),
47 fCullInvisible (true),
48 fDensityCulling (false),
49 fVisibleDensity (0.01 *
g /
cm3),
51 fCBDAlgorithmNumber (0),
54 fCutawayMode (cutawayUnion),
63 fCurrentTargetPoint (),
65 fLightsMoveWithCamera (false),
66 fRelativeLightpointDirection (
G4Vector3D (1., 1., 1.)),
67 fActualLightpointDirection (
G4Vector3D (1., 1., 1.)),
68 fDefaultVisAttributes (),
69 fDefaultTextVisAttributes (
G4Colour (0., 0., 1.)),
71 fGlobalMarkerScale (1.),
72 fGlobalLineWidthScale (1.),
73 fMarkerNotHidden (true),
74 fWindowSizeHintX (600),
75 fWindowSizeHintY (600),
76 fWindowLocationHintX(0),
77 fWindowLocationHintY(0),
78 fWindowLocationHintXNegative(true),
79 fWindowLocationHintYNegative(false),
82 fBackgroundColour (
G4Colour(0.,0.,0.)),
84 fRotationStyle (constrainUpDirection),
88 fDisplayHeadTime(false),
89 fDisplayHeadTimeX(-0.9),
90 fDisplayHeadTimeY(-0.9),
91 fDisplayHeadTimeSize(24.),
92 fDisplayHeadTimeRed(0.),
93 fDisplayHeadTimeGreen(1.),
94 fDisplayHeadTimeBlue(1.),
95 fDisplayLightFront(false),
96 fDisplayLightFrontX(0.),
97 fDisplayLightFrontY(0.),
98 fDisplayLightFrontZ(0.),
99 fDisplayLightFrontT(0.),
100 fDisplayLightFrontRed(0.),
101 fDisplayLightFrontGreen(1.),
102 fDisplayLightFrontBlue(0.)
112 fScaleFactor.setX(fScaleFactor.x() * scaleFactorMultiplier.
x());
113 fScaleFactor.setY(fScaleFactor.y() * scaleFactorMultiplier.
y());
114 fScaleFactor.setZ(fScaleFactor.z() * scaleFactorMultiplier.
z());
138 return cameraDistance;
145 if (nearDistance < small) nearDistance = small;
153 if (farDistance < nearDistance) farDistance = nearDistance;
166 return frontHalfHeight;
176 "ERROR: G4ViewParameters::AddCutawayPlane:"
177 "\n A maximum of 3 cutaway planes supported." <<
G4endl;
183 if (index >= fCutawayPlanes.size()) {
185 "ERROR: G4ViewParameters::ChangeCutawayPlane:"
186 "\n Plane " << index <<
" does not exist." <<
G4endl;
188 fCutawayPlanes[index] = cutawayPlane;
194 if (visibleDensity < 0) {
195 G4cout <<
"G4ViewParameters::SetVisibleDensity: attempt to set negative "
196 "density - ignored." <<
G4endl;
199 if (visibleDensity > reasonableMaximum) {
200 G4cout <<
"G4ViewParameters::SetVisibleDensity: density > "
201 <<
G4BestUnit (reasonableMaximum,
"Volumic Mass")
202 <<
" - did you mean this?"
211 if (nSides < nSidesMin) {
213 G4cout <<
"G4ViewParameters::SetNoOfSides: attempt to set the"
214 "\nnumber of sides per circle < " << nSidesMin
215 <<
"; forced to " << nSides <<
G4endl;
224 fViewpointDirection = viewpointDirection;
228 if (fViewpointDirection.unit() * fUpVector.unit() > .9999) {
229 static G4bool firstTime =
true;
233 "WARNING: Viewpoint direction is very close to the up vector direction."
234 "\n Consider setting the up vector to obtain definable behaviour."
240 if (fLightsMoveWithCamera) {
242 G4Vector3D xprime = (fUpVector.cross (zprime)).unit ();
244 fActualLightpointDirection =
245 fRelativeLightpointDirection.
x () * xprime +
246 fRelativeLightpointDirection.
y () * yprime +
247 fRelativeLightpointDirection.
x () * zprime;
249 fActualLightpointDirection = fRelativeLightpointDirection;
255 fRelativeLightpointDirection = lightpointDirection;
256 SetViewAndLights (fViewpointDirection);
278 G4bool duplicateTarget =
false;
279 auto i = fVisAttributesModifiers.begin();
280 for (; i < fVisAttributesModifiers.end(); ++i) {
283 duplicateTarget =
true;
288 else fVisAttributesModifiers.push_back(vam);
294 std::ostringstream oss;
296 oss <<
"#\n# Camera and lights commands";
298 oss <<
"\n/vis/viewer/set/viewpointVector "
299 << fViewpointDirection.x()
300 <<
' ' << fViewpointDirection.y()
301 <<
' ' << fViewpointDirection.z();
303 oss <<
"\n/vis/viewer/set/upVector "
305 <<
' ' << fUpVector.y()
306 <<
' ' << fUpVector.z();
308 oss <<
"\n/vis/viewer/set/projection ";
309 if (fFieldHalfAngle == 0.) {
315 << fFieldHalfAngle/
deg
319 oss <<
"\n/vis/viewer/zoomTo "
322 oss <<
"\n/vis/viewer/scaleTo "
324 <<
' ' << fScaleFactor.y()
325 <<
' ' << fScaleFactor.z();
327 oss <<
"\n/vis/viewer/set/targetPoint "
328 <<
G4BestUnit(standardTargetPoint+fCurrentTargetPoint,
"Length")
329 <<
"\n# Note that if you have not set a target point, the vis system sets"
330 <<
"\n# a target point based on the scene - plus any panning and dollying -"
331 <<
"\n# so don't be alarmed by strange coordinates here.";
333 oss <<
"\n/vis/viewer/dollyTo "
336 oss <<
"\n/vis/viewer/set/lightsMove ";
337 if (fLightsMoveWithCamera) {
343 oss <<
"\n/vis/viewer/set/lightsVector "
344 << fRelativeLightpointDirection.x()
345 <<
' ' << fRelativeLightpointDirection.y()
346 <<
' ' << fRelativeLightpointDirection.z();
348 oss <<
"\n/vis/viewer/set/rotationStyle ";
349 if (fRotationStyle == constrainUpDirection) {
350 oss <<
"constrainUpDirection";
352 oss <<
"freeRotation";
356 oss <<
"\n/vis/viewer/set/background "
363 oss <<
"\n/vis/viewer/set/defaultColour "
369 c = fDefaultTextVisAttributes.
GetColour();
370 oss <<
"\n/vis/viewer/set/defaultTextColour "
383 std::ostringstream oss;
385 oss <<
"#\n# Drawing style commands";
387 oss <<
"\n/vis/viewer/set/style ";
394 oss <<
"\n/vis/viewer/set/hiddenEdge ";
401 oss <<
"\n/vis/viewer/set/auxiliaryEdge ";
408 oss <<
"\n/vis/viewer/set/hiddenMarker ";
415 oss <<
"\n/vis/viewer/set/globalLineWidthScale "
418 oss <<
"\n/vis/viewer/set/globalMarkerScale "
428 std::ostringstream oss;
430 oss <<
"#\n# Scene-modifying commands";
432 oss <<
"\n/vis/viewer/set/culling global ";
439 oss <<
"\n/vis/viewer/set/culling invisible ";
446 oss <<
"\n/vis/viewer/set/culling density ";
453 oss <<
"\n/vis/viewer/set/culling coveredDaughters ";
460 oss <<
"\n/vis/viewer/colourByDensity "
463 oss <<
' ' <<
p/(
g/
cm3);
466 oss <<
"\n/vis/viewer/set/sectionPlane ";
477 oss <<
"\n/vis/viewer/set/cutawayMode ";
481 oss <<
"intersection";
484 oss <<
"\n/vis/viewer/clearCutawayPlanes";
487 oss <<
"\n/vis/viewer/addCutawayPlane "
494 oss <<
"\n# No cutaway planes defined.";
497 oss <<
"\n/vis/viewer/set/explodeFactor "
501 oss <<
"\n/vis/viewer/set/lineSegmentsPerCircle "
511 std::ostringstream oss;
513 oss <<
"#\n# Touchable commands";
515 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
521 <<
"\n/vis/viewer/clearVisAttributesModifiers";
527 <<
"\n/vis/viewer/clearVisAttributesModifiers";
530 std::vector<G4ModelingParameters::VisAttributesModifier>::const_iterator
532 for (iModifier = vams.begin();
533 iModifier != vams.end();
536 iModifier->GetPVNameCopyNoPath();
537 if (vamPath != lastPath) {
539 oss <<
"\n/vis/set/touchable";
541 for (iVAM = vamPath.begin();
542 iVAM != vamPath.end();
544 oss <<
' ' << iVAM->GetName() <<
' ' << iVAM->GetCopyNo();
549 switch (iModifier->GetVisAttributesSignifier()) {
551 oss <<
"\n/vis/touchable/set/visibility ";
559 oss <<
"\n/vis/touchable/set/daughtersInvisible ";
567 oss <<
"\n/vis/touchable/set/colour "
574 oss <<
"\n/vis/touchable/set/lineStyle ";
587 oss <<
"\n/vis/touchable/set/lineWidth "
593 oss <<
"\n/vis/touchable/set/forceWireframe ";
605 oss <<
"\n/vis/touchable/set/forceSolid ";
616 oss <<
"\n/vis/touchable/set/forceAuxEdgeVisible ";
626 oss <<
"\n/vis/touchable/set/lineSegmentsPerCircle "
640 std::ostringstream oss;
642 oss <<
"#\n# Time window commands";
645 <<
"\n/vis/viewer/set/timeWindow/startTime "
649 <<
"\n/vis/viewer/set/timeWindow/endTime "
652 oss <<
"\n/vis/viewer/set/timeWindow/fadeFactor "
656 <<
"\n/vis/viewer/set/timeWindow/displayHeadTime ";
671 <<
"\n/vis/viewer/set/timeWindow/displayLightFront ";
738 G4cout <<
"Difference in number of colour by density parameters." <<
G4endl;
740 G4cout <<
"Difference in values of colour by density parameters." <<
G4endl;
746 G4cout <<
"Difference in section planes batch." << G4endl;
751 G4cout <<
"Difference in no of cutaway planes." <<
G4endl;
756 G4cout <<
"Difference in cutaway plane no. " << i << G4endl;
769 G4cout <<
"Difference in vis attributes modifiers." <<
G4endl;
778 G4cout <<
"Difference in time window fade factor." <<
G4endl;
782 G4cout <<
"Difference in display head time flag." <<
G4endl;
790 G4cout <<
"Difference in display head time parameters." <<
G4endl;
795 G4cout <<
"Difference in display light front flag." <<
G4endl;
804 G4cout <<
"Difference in display light front parameters." <<
G4endl;
809 std::ostream&
operator <<
814 os <<
"wireframe";
break;
816 os <<
"hlr - hidden lines removed";
break;
818 os <<
"hsr - hidden surfaces removed";
break;
820 os <<
"hlhsr - hidden line, hidden surface removed";
break;
821 default: os <<
"unrecognised";
break;
827 os <<
"View parameters and options:";
829 os <<
"\n Drawing style: ";
832 os <<
"edges, wireframe";
break;
834 os <<
"edges, hidden line removal";
break;
836 os <<
"surfaces, hidden surface removal";
break;
838 os <<
"surfaces and edges, hidden line and surface removal";
break;
839 default: os <<
"unrecognised";
break;
842 os <<
"\n Auxiliary edges: ";
846 os <<
"\n Culling: ";
850 os <<
"\n Culling invisible objects: ";
854 os <<
"\n Density culling: ";
856 os <<
"on - invisible if density less than "
861 os <<
"\n Culling daughters covered by opaque mothers: ";
865 os <<
"\n Colour by density: ";
875 os <<
"\n Section flag: ";
880 os <<
"\n Cutaway planes: ";
886 os <<
"\n No cutaway planes";
892 os <<
"\n No. of sides used in circle polygon approximation: "
907 os <<
"\n Dolly distance: " << v.
fDolly;
911 else os <<
"does not move";
912 os <<
" with camera";
914 os <<
"\n Relative lightpoint direction: "
917 os <<
"\n Actual lightpoint direction: "
920 os <<
"\n Derived parameters for standard view of object of unit radius:";
931 os <<
"\n Camera distance: " << cameraDistance;
932 os <<
"\n Near distance: " << nearDistance;
933 os <<
"\n Far distance: " << farDistance;
934 os <<
"\n Front half height: " <<
right;
948 os <<
"hidden by surfaces.";
950 os <<
"\n Window size hint: "
954 os <<
"\n X geometry mask: "
956 << std::noshowbase << std::dec;
958 os <<
"\n Auto refresh: ";
964 os <<
"\n Picking requested: ";
968 os <<
"\n Rotation style: ";
971 os <<
"constrainUpDirection (conventional HEP view)";
break;
973 os <<
"freeRotation (Google-like rotation, using mouse-grab)";
break;
974 default: os <<
"unrecognised";
break;
977 os <<
"\n Vis attributes modifiers: ";
978 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
986 os <<
"\n Time window parameters:"
991 os <<
"\n Head time display not requested.";
994 <<
"\n Head time position: "
1001 os <<
"\n Light front display not requested.";
1004 <<
"\n Light front position: "
1121 unsigned int w = 0, h = 0;
1122 G4String geomString = geomStringArg;
1125 G4String::size_type i = geomString.find_first_of(delimiters);
1126 if (i == G4String::npos) {
1127 std::istringstream iss(geomString);
1132 G4cout <<
"Unrecognised windowSizeHint string: \""
1134 <<
"\". Asuuming " << size <<
G4endl;
1136 std::ostringstream oss;
1137 oss << size <<
'x' << size;
1138 geomString = oss.str();
1164 G4cout <<
"Unrecognised geometry string \""
1166 <<
"\". No Height found. Using Width value instead"
1233 unsigned int *
width,
1234 unsigned int *height)
1239 unsigned int tempWidth = 0;
1240 unsigned int tempHeight = 0;
1243 char *nextCharacter;
1244 if ( (
string == NULL) || (*
string ==
'\0')) {
1249 strind = (
char *)
string;
1250 if (*strind !=
'+' && *strind !=
'-' && *strind !=
'x') {
1252 if (strind == nextCharacter)
1254 strind = nextCharacter;
1257 if (*strind ==
'x' || *strind ==
'X') {
1260 if (strind == nextCharacter)
1262 strind = nextCharacter;
1266 if ((*strind ==
'+') || (*strind ==
'-')) {
1267 if (*strind ==
'-') {
1270 if (strind == nextCharacter)
1272 strind = nextCharacter;
1279 if (strind == nextCharacter)
1281 strind = nextCharacter;
1284 if ((*strind ==
'+') || (*strind ==
'-')) {
1285 if (*strind ==
'-') {
1288 if (strind == nextCharacter)
1290 strind = nextCharacter;
1297 if (strind == nextCharacter)
1299 strind = nextCharacter;
1306 if (*strind !=
'\0')
return (0);
1314 *height = tempHeight;
1329 else if (*
string ==
'-')
1334 for (; (*
string >=
'0') && (*
string <=
'9');
string++)
1336 Result = (Result * 10) + (*
string -
'0');
1338 *NextString = string;
1346 (
const std::vector<G4ViewParameters>& views,
1347 G4int nInterpolationPoints)
1361 if (views.size() < 2) {
1363 (
"G4ViewParameters::CatmullRomCubicSplineInterpolation",
1365 "There must be at least two views.");
1369 if (nInterpolationPoints < 1) {
1371 (
"G4ViewParameters::CatmullRomCubicSplineInterpolation",
1373 "Number of interpolation points cannot be zero or negative.");
1377 const size_t nIntervals = views.size() - 1;
1378 const G4double dt = 1./nInterpolationPoints;
1382 static G4int iInterpolationPoint = 0;
1383 static size_t iInterval = 0;
1388 const G4double h00 = 2.*t*t*t - 3.*t*t +1;
1390 const G4double h01 = -2.*t*t*t + 3.*t*t;
1394 const size_t&
n = nIntervals;
1395 size_t& i = iInterval;
1396 const std::vector<G4ViewParameters>& v = views;
1413 holdingValues = t < 0.5? v[i]: v[i+1];
1416 #define INTERPOLATE(param) \
1421 mi = v[1].param - v[0].param; \
1424 if (n == 1) mi1 = mi; \
1426 else mi1 = 0.5 * (v[2].param - v[0].param); \
1427 } else if (i >= n - 1) { \
1429 mi1 = v[i+1].param - v[i].param; \
1431 if (n == 1) mi = mi1; \
1433 else mi = 0.5 * (v[i+1].param - v[i-1].param); \
1436 mi = 0.5 * (v[i+1].param - v[i-1].param); \
1437 mi1 = 0.5 * (v[i+2].param - v[i ].param); \
1439 real = h00 * v[i].param + h10 * mi + h01 * v[i+1].param + h11 * mi1;
1443 if (real < 0.) real = 0.;
1446 if (real < 0.) real = 0.;
1449 if (real < 0.) real = 0.;
1452 if (real < 0.) real = 0.;
1455 holdingValues.
fDolly = real;
1457 if (real < 0.) real = 0.;
1460 if (real < 0.) real = 0.;
1464 #define INTERPOLATEUNITVECTOR(vector) \
1465 INTERPOLATE(vector.x()); x = real; \
1466 INTERPOLATE(vector.y()); y = real; \
1467 INTERPOLATE(vector.z()); z = real;
1478 #define INTERPOLATEVECTOR(vector) \
1479 INTERPOLATE(vector.x()); x = real; \
1480 INTERPOLATE(vector.y()); y = real; \
1481 INTERPOLATE(vector.z()); z = real;
1486 #define INTERPOLATEPOINT(point) \
1487 INTERPOLATE(point.x()); x = real; \
1488 INTERPOLATE(point.y()); y = real; \
1489 INTERPOLATE(point.z()); z = real;
1497 #define INTERPOLATECOLOUR(colour) \
1498 INTERPOLATE(colour.GetRed()); red = real; \
1499 INTERPOLATE(colour.GetGreen()); green = real; \
1500 INTERPOLATE(colour.GetBlue()); blue = real; \
1501 INTERPOLATE(colour.GetAlpha()); alpha = real;
1508 #define CONTINUITY(quantity) \
1509 continuous = false; \
1512 if (v[1].quantity == v[0].quantity) { \
1513 if (n == 1) continuous = true; \
1514 else if (v[2].quantity == v[0].quantity) \
1515 continuous = true; \
1517 } else if (i >= n - 1) { \
1518 if (v[i+1].quantity == v[i].quantity) { \
1519 if (n == 1) continuous = true; \
1520 else if (v[i+1].quantity == v[i-1].quantity) \
1521 continuous = true; \
1524 if (v[i-1].quantity == v[i].quantity && \
1525 v[i+1].quantity == v[i].quantity && \
1526 v[i+2].quantity == v[i].quantity) \
1527 continuous = true; \
1531 #define INTERPOLATEPLANE(plane) \
1532 INTERPOLATE(plane.a()); a = real; \
1533 INTERPOLATE(plane.b()); b = real; \
1534 INTERPOLATE(plane.c()); c = real; \
1535 INTERPOLATE(plane.d()); d = real;
1545 if (v[i].fCutawayPlanes.size()) {
1548 for (
size_t j = 0; j < v[i].fCutawayPlanes.size(); ++j) {
1559 if (v[i].fVisAttributesModifiers.size()) {
1562 for (
size_t j = 0; j < v[i].fVisAttributesModifiers.size(); ++j) {
1563 CONTINUITY(fVisAttributesModifiers[j].GetPVNameCopyNoPath());
1565 CONTINUITY(fVisAttributesModifiers[j].GetVisAttributesSignifier());
1567 if (v[i].fVisAttributesModifiers[j].GetVisAttributesSignifier() ==
1570 workingVA = v[i].fVisAttributesModifiers[j].GetVisAttributes();
1590 iInterpolationPoint++;
1592 if (iInterpolationPoint > nInterpolationPoints) {
1593 iInterpolationPoint = 1;
1597 if (iInterval >= nIntervals) {
1598 iInterpolationPoint = 0;
1604 return &holdingValues;
std::vector< PVNameCopyNo > PVNameCopyNoPath
G4Vector3D fActualLightpointDirection
void SetVisibleDensity(G4double visibleDensity)
#define INTERPOLATE(param)
void PrintDifferences(const G4ViewParameters &v) const
void AddCutawayPlane(const G4Plane3D &cutawayPlane)
G4Vector3D & GetActualLightpointDirection()
std::vector< ExP01TrackerHit * > a
G4bool fWindowLocationHintXNegative
std::ostream & operator<<(std::ostream &, const BasicVector3D< float > &)
G4int fWindowLocationHintY
#define INTERPOLATEVECTOR(vector)
Point3D< T > point(const Point3D< T > &p) const
G4double fDisplayHeadTimeSize
RotationStyle fRotationStyle
G4double fDisplayLightFrontY
static constexpr double mm
G4double fDisplayHeadTimeX
G4double GetFarDistance(G4double cameraDistance, G4double nearDistance, G4double radius) const
BasicVector3D< T > unit() const
ForcedDrawingStyle GetForcedDrawingStyle() const
G4int fCBDAlgorithmNumber
std::vector< G4ModelingParameters::VisAttributesModifier > fVisAttributesModifiers
void ChangeCutawayPlane(size_t index, const G4Plane3D &cutawayPlane)
G4double GetFrontHalfHeight(G4double nearDistance, G4double radius) const
#define CONTINUITY(quantity)
BasicVector3D< T > cross(const BasicVector3D< T > &v) const
G4bool fDisplayLightFront
G4Point3D fCurrentTargetPoint
G4double fDisplayHeadTimeGreen
G4double fGlobalLineWidthScale
G4double fDisplayHeadTimeRed
G4int ParseGeometry(const char *string, G4int *x, G4int *y, unsigned int *width, unsigned int *height)
static G4ViewParameters * CatmullRomCubicSplineInterpolation(const std::vector< G4ViewParameters > &views, G4int nInterpolationPoints=50)
G4VisAttributes fDefaultVisAttributes
Normal3D< T > normal() const
G4String CameraAndLightingCommands(const G4Point3D standardTargetPoint) const
G4Vector3D fViewpointDirection
G4Vector3D fRelativeLightpointDirection
void SetLightpointDirection(const G4Vector3D &lightpointDirection)
G4bool IsForceAuxEdgeVisible() const
#define INTERPOLATEPLANE(plane)
DrawingStyle fDrawingStyle
G4double GetCameraDistance(G4double radius) const
G4double fDisplayLightFrontRed
G4double fDisplayLightFrontT
G4bool IsForcedAuxEdgeVisible() const
static G4int GetMinLineSegmentsPerCircle()
void SetScreenSize(G4double)
static constexpr double g
G4bool fLightsMoveWithCamera
G4String TimeWindowCommands() const
G4String TouchableCommands() const
G4double fDisplayLightFrontBlue
static constexpr double deg
G4bool operator!=(const G4ViewParameters &) const
G4double fDisplayLightFrontGreen
void SetPan(G4double right, G4double up)
static const G4double alpha
std::vector< G4double > fCBDParameters
G4bool fWindowLocationHintYNegative
void IncrementPan(G4double right, G4double up)
G4int SetNoOfSides(G4int nSides)
G4double GetLineWidth() const
HepGeom::Plane3D< G4double > G4Plane3D
const PVNameCopyNoPath & GetPVNameCopyNoPath() const
G4GLOB_DLL std::ostream G4cerr
HepGeom::Vector3D< G4double > G4Vector3D
#define INTERPOLATEUNITVECTOR(vector)
#define INTERPOLATECOLOUR(colour)
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4double fDisplayLightFrontZ
G4bool IsForceDrawingStyle() const
VisAttributesSignifier GetVisAttributesSignifier() const
G4double fDisplayLightFrontX
void AddVisAttributesModifier(const G4ModelingParameters::VisAttributesModifier &)
G4Colour fBackgroundColour
G4double fGlobalMarkerScale
G4String SceneModifyingCommands() const
G4double GetAlpha() const
G4double fDisplayHeadTimeY
G4GLOB_DLL std::ostream G4cout
void SetXGeometryString(const G4String &)
const G4VisAttributes & GetVisAttributes() const
void SetColour(const G4Colour &)
G4String fXGeometryString
G4double GetGreen() const
void MultiplyScaleFactor(const G4Vector3D &scaleFactorMultiplier)
G4double fDisplayHeadTimeBlue
G4double GetNearDistance(G4double cameraDistance, G4double radius) const
void SetViewAndLights(const G4Vector3D &viewpointDirection)
G4int fWindowLocationHintX
PVNameCopyNoPath::const_iterator PVNameCopyNoPathConstIterator
static constexpr double cm3
G4int GetWindowAbsoluteLocationHintY(G4int) const
HepGeom::Point3D< G4double > G4Point3D
LineStyle GetLineStyle() const
G4int GetForcedLineSegmentsPerCircle() const
G4VisAttributes fDefaultTextVisAttributes
G4String DrawingStyleCommands() const
G4int ReadInteger(char *string, char **NextString)
const G4Colour & GetColour() const
G4bool IsDaughtersInvisible() const
static G4bool GetColour(const G4String &key, G4Colour &result)
G4int GetWindowAbsoluteLocationHintX(G4int) const
#define INTERPOLATEPOINT(point)