44 fDrawingStyle (wireframe),
45 fNumberOfCloudPoints(10000),
46 fAuxEdgeVisible (false),
48 fCullInvisible (true),
49 fDensityCulling (false),
50 fVisibleDensity (0.01 *
g /
cm3),
52 fCBDAlgorithmNumber (0),
55 fCutawayMode (cutawayUnion),
64 fCurrentTargetPoint (),
66 fLightsMoveWithCamera (false),
67 fRelativeLightpointDirection (
G4Vector3D (1., 1., 1.)),
68 fActualLightpointDirection (
G4Vector3D (1., 1., 1.)),
69 fDefaultVisAttributes (),
70 fDefaultTextVisAttributes (
G4Colour (0., 0., 1.)),
72 fGlobalMarkerScale (1.),
73 fGlobalLineWidthScale (1.),
74 fMarkerNotHidden (true),
75 fWindowSizeHintX (600),
76 fWindowSizeHintY (600),
77 fWindowLocationHintX(0),
78 fWindowLocationHintY(0),
79 fWindowLocationHintXNegative(true),
80 fWindowLocationHintYNegative(false),
83 fBackgroundColour (
G4Colour(0.,0.,0.)),
85 fRotationStyle (constrainUpDirection),
89 fDisplayHeadTime(false),
90 fDisplayHeadTimeX(-0.9),
91 fDisplayHeadTimeY(-0.9),
92 fDisplayHeadTimeSize(24.),
93 fDisplayHeadTimeRed(0.),
94 fDisplayHeadTimeGreen(1.),
95 fDisplayHeadTimeBlue(1.),
96 fDisplayLightFront(false),
97 fDisplayLightFrontX(0.),
98 fDisplayLightFrontY(0.),
99 fDisplayLightFrontZ(0.),
100 fDisplayLightFrontT(0.),
101 fDisplayLightFrontRed(0.),
102 fDisplayLightFrontGreen(1.),
103 fDisplayLightFrontBlue(0.),
104 fSpecialMeshRendering(false)
144 cameraDistance = radius;
149 return cameraDistance;
154 const G4double small = 1.e-6 * radius;
155 G4double nearDistance = cameraDistance - radius;
156 if (nearDistance < small) nearDistance = small;
163 G4double farDistance = cameraDistance + radius;
164 if (farDistance < nearDistance) farDistance = nearDistance;
177 return frontHalfHeight;
187 "ERROR: G4ViewParameters::AddCutawayPlane:"
188 "\n A maximum of 3 cutaway planes supported." <<
G4endl;
193(
size_t index,
const G4Plane3D& cutawayPlane) {
196 "ERROR: G4ViewParameters::ChangeCutawayPlane:"
197 "\n Plane " << index <<
" does not exist." <<
G4endl;
205 if (visibleDensity < 0) {
206 G4cout <<
"G4ViewParameters::SetVisibleDensity: attempt to set negative "
207 "density - ignored." <<
G4endl;
210 if (visibleDensity > reasonableMaximum) {
211 G4cout <<
"G4ViewParameters::SetVisibleDensity: density > "
212 <<
G4BestUnit (reasonableMaximum,
"Volumic Mass")
213 <<
" - did you mean this?"
222 if (nSides < nSidesMin) {
224 G4cout <<
"G4ViewParameters::SetNoOfSides: attempt to set the"
225 "\nnumber of sides per circle < " << nSidesMin
226 <<
"; forced to " << nSides <<
G4endl;
233 const G4int nPointsMin = 100;
234 if (nPoints < nPointsMin) {
235 nPoints = nPointsMin;
236 G4cout <<
"G4ViewParameters::SetNumberOfCloudPoints:"
237 "\nnumber of points per cloud set to minimum " << nPoints
252 static G4bool firstTime =
true;
256 "WARNING: Viewpoint direction is very close to the up vector direction."
257 "\n Change the up vector or \"/vis/viewer/set/rotationStyle freeRotation\"."
301 G4bool duplicateTarget =
false;
306 duplicateTarget =
true;
315(
const G4Point3D standardTargetPoint)
const
317 std::ostringstream oss;
319 oss <<
"#\n# Camera and lights commands";
321 oss <<
"\n/vis/viewer/set/viewpointVector "
326 oss <<
"\n/vis/viewer/set/upVector "
331 oss <<
"\n/vis/viewer/set/projection ";
342 oss <<
"\n/vis/viewer/zoomTo "
345 oss <<
"\n/vis/viewer/scaleTo "
350 oss <<
"\n/vis/viewer/set/targetPoint "
352 <<
"\n# Note that if you have not set a target point, the vis system sets"
353 <<
"\n# a target point based on the scene - plus any panning and dollying -"
354 <<
"\n# so don't be alarmed by strange coordinates here.";
356 oss <<
"\n/vis/viewer/dollyTo "
359 oss <<
"\n/vis/viewer/set/lightsMove ";
366 oss <<
"\n/vis/viewer/set/lightsVector "
371 oss <<
"\n/vis/viewer/set/rotationStyle ";
373 oss <<
"constrainUpDirection";
375 oss <<
"freeRotation";
379 oss <<
"\n/vis/viewer/set/background "
386 oss <<
"\n/vis/viewer/set/defaultColour "
393 oss <<
"\n/vis/viewer/set/defaultTextColour "
406 std::ostringstream oss;
408 oss <<
"#\n# Drawing style commands";
410 oss <<
"\n/vis/viewer/set/style ";
425 oss <<
"\n/vis/viewer/set/hiddenEdge ";
432 oss <<
"\n/vis/viewer/set/auxiliaryEdge ";
439 oss <<
"\n/vis/viewer/set/hiddenMarker ";
446 oss <<
"\n/vis/viewer/set/globalLineWidthScale "
449 oss <<
"\n/vis/viewer/set/globalMarkerScale "
452 oss <<
"\n/vis/viewer/set/numberOfCloudPoints "
455 oss <<
"\n/vis/viewer/set/specialMeshRendering ";
462 oss <<
"\n/vis/viewer/set/specialMeshVolumes";
464 oss <<
' ' << volume.GetName() <<
' ' << volume.GetCopyNo();
474 std::ostringstream oss;
476 oss <<
"#\n# Scene-modifying commands";
478 oss <<
"\n/vis/viewer/set/culling global ";
485 oss <<
"\n/vis/viewer/set/culling invisible ";
492 oss <<
"\n/vis/viewer/set/culling density ";
499 oss <<
"\n/vis/viewer/set/culling coveredDaughters ";
506 oss <<
"\n/vis/viewer/colourByDensity "
509 oss <<
' ' << p/(
g/
cm3);
512 oss <<
"\n/vis/viewer/set/sectionPlane ";
523 oss <<
"\n/vis/viewer/set/cutawayMode ";
527 oss <<
"intersection";
530 oss <<
"\n/vis/viewer/clearCutawayPlanes";
533 oss <<
"\n/vis/viewer/addCutawayPlane "
540 oss <<
"\n# No cutaway planes defined.";
543 oss <<
"\n/vis/viewer/set/explodeFactor "
547 oss <<
"\n/vis/viewer/set/lineSegmentsPerCircle "
557 std::ostringstream oss;
559 oss <<
"#\n# Touchable commands";
561 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
567 <<
"\n/vis/viewer/clearVisAttributesModifiers";
573 <<
"\n/vis/viewer/clearVisAttributesModifiers";
576 std::vector<G4ModelingParameters::VisAttributesModifier>::const_iterator
578 for (iModifier = vams.begin();
579 iModifier != vams.end();
582 iModifier->GetPVNameCopyNoPath();
583 if (vamPath != lastPath) {
585 oss <<
"\n/vis/set/touchable";
587 for (iVAM = vamPath.begin();
588 iVAM != vamPath.end();
590 oss <<
' ' << iVAM->GetName() <<
' ' << iVAM->GetCopyNo();
595 switch (iModifier->GetVisAttributesSignifier()) {
597 oss <<
"\n/vis/touchable/set/visibility ";
605 oss <<
"\n/vis/touchable/set/daughtersInvisible ";
613 oss <<
"\n/vis/touchable/set/colour "
620 oss <<
"\n/vis/touchable/set/lineStyle ";
633 oss <<
"\n/vis/touchable/set/lineWidth "
639 oss <<
"\n/vis/touchable/set/forceWireframe ";
651 oss <<
"\n/vis/touchable/set/forceSolid ";
663 oss <<
"\n/vis/touchable/set/forceCloud ";
674 oss <<
"\n/vis/touchable/set/forceAuxEdgeVisible ";
683 oss <<
"\n/vis/touchable/set/lineSegmentsPerCircle "
687 oss <<
"\n/vis/touchable/set/numberOfCloudPoints "
700 std::ostringstream oss;
702 oss <<
"#\n# Time window commands";
705 <<
"\n/vis/viewer/set/timeWindow/startTime "
709 <<
"\n/vis/viewer/set/timeWindow/endTime "
712 oss <<
"\n/vis/viewer/set/timeWindow/fadeFactor "
716 <<
"\n/vis/viewer/set/timeWindow/displayHeadTime ";
731 <<
"\n/vis/viewer/set/timeWindow/displayLightFront ";
799 G4cout <<
"Difference in number of colour by density parameters." <<
G4endl;
801 G4cout <<
"Difference in values of colour by density parameters." <<
G4endl;
807 G4cout <<
"Difference in section planes batch." <<
G4endl;
812 G4cout <<
"Difference in no of cutaway planes." <<
G4endl;
817 G4cout <<
"Difference in cutaway plane no. " << i <<
G4endl;
830 G4cout <<
"Difference in vis attributes modifiers." <<
G4endl;
839 G4cout <<
"Difference in time window fade factor." <<
G4endl;
843 G4cout <<
"Difference in display head time flag." <<
G4endl;
851 G4cout <<
"Difference in display head time parameters." <<
G4endl;
856 G4cout <<
"Difference in display light front flag." <<
G4endl;
865 G4cout <<
"Difference in display light front parameters." <<
G4endl;
870std::ostream&
operator <<
875 os <<
"wireframe";
break;
877 os <<
"hlr - hidden lines removed";
break;
879 os <<
"hsr - hidden surfaces removed";
break;
881 os <<
"hlhsr - hidden line, hidden surface removed";
break;
883 os <<
"cloud - draw volume as a cloud of dots";
break;
884 default: os <<
"unrecognised";
break;
890 os <<
"View parameters and options:";
896 os <<
"\n Auxiliary edges: ";
900 os <<
"\n Culling: ";
904 os <<
"\n Culling invisible objects: ";
908 os <<
"\n Density culling: ";
910 os <<
"on - invisible if density less than "
915 os <<
"\n Culling daughters covered by opaque mothers: ";
919 os <<
"\n Colour by density: ";
929 os <<
"\n Section flag: ";
934 os <<
"\n Cutaway planes: ";
940 os <<
"\n No cutaway planes";
946 os <<
"\n No. of sides used in circle polygon approximation: "
961 os <<
"\n Dolly distance: " << v.
fDolly;
965 else os <<
"does not move";
966 os <<
" with camera";
968 os <<
"\n Relative lightpoint direction: "
971 os <<
"\n Actual lightpoint direction: "
974 os <<
"\n Derived parameters for standard view of object of unit radius:";
985 os <<
"\n Camera distance: " << cameraDistance;
986 os <<
"\n Near distance: " << nearDistance;
987 os <<
"\n Far distance: " << farDistance;
988 os <<
"\n Front half height: " << right;
1002 os <<
"hidden by surfaces.";
1004 os <<
"\n Window size hint: "
1008 os <<
"\n X geometry mask: "
1010 << std::noshowbase << std::dec;
1012 os <<
"\n Auto refresh: ";
1018 os <<
"\n Picking requested: ";
1022 os <<
"\n Rotation style: ";
1025 os <<
"constrainUpDirection (conventional HEP view)";
break;
1027 os <<
"freeRotation (Google-like rotation, using mouse-grab)";
break;
1028 default: os <<
"unrecognised";
break;
1031 os <<
"\n Vis attributes modifiers: ";
1032 const std::vector<G4ModelingParameters::VisAttributesModifier>& vams =
1040 os <<
"\n Time window parameters:"
1045 os <<
"\n Head time display not requested.";
1048 <<
"\n Head time position: "
1055 os <<
"\n Light front display not requested.";
1058 <<
"\n Light front position: "
1066 os <<
"\n Special Mesh Rendering: ";
1072 os <<
"selected meshes";
1074 os <<
"\n " << vol.GetName() <<
':' << vol.GetCopyNo();
1195 unsigned int w = 0, h = 0;
1196 G4String geomString = geomStringArg;
1199 G4String::size_type i = geomString.find_first_of(delimiters);
1200 if (i == G4String::npos) {
1201 std::istringstream iss(geomString);
1206 G4cout <<
"Unrecognised windowSizeHint string: \""
1208 <<
"\". Asuuming " << size <<
G4endl;
1210 std::ostringstream oss;
1211 oss << size <<
'x' << size;
1212 geomString = oss.str();
1238 G4cout <<
"Unrecognised geometry string \""
1240 <<
"\". No Height found. Using Width value instead"
1307 unsigned int *width,
1308 unsigned int *height)
1313 unsigned int tempWidth = 0;
1314 unsigned int tempHeight = 0;
1317 char *nextCharacter;
1318 if ( (
string == NULL) || (*
string ==
'\0')) {
1323 strind = (
char *)
string;
1324 if (*strind !=
'+' && *strind !=
'-' && *strind !=
'x') {
1326 if (strind == nextCharacter)
1328 strind = nextCharacter;
1331 if (*strind ==
'x' || *strind ==
'X') {
1334 if (strind == nextCharacter)
1336 strind = nextCharacter;
1340 if ((*strind ==
'+') || (*strind ==
'-')) {
1341 if (*strind ==
'-') {
1344 if (strind == nextCharacter)
1346 strind = nextCharacter;
1353 if (strind == nextCharacter)
1355 strind = nextCharacter;
1358 if ((*strind ==
'+') || (*strind ==
'-')) {
1359 if (*strind ==
'-') {
1362 if (strind == nextCharacter)
1364 strind = nextCharacter;
1371 if (strind == nextCharacter)
1373 strind = nextCharacter;
1380 if (*strind !=
'\0')
return (0);
1388 *height = tempHeight;
1403 else if (*
string ==
'-')
1408 for (; (*
string >=
'0') && (*
string <=
'9');
string++)
1410 Result = (Result * 10) + (*
string -
'0');
1412 *NextString = string;
1420(
const std::vector<G4ViewParameters>& views,
1421 G4int nInterpolationPoints)
1435 if (views.size() < 2) {
1437 (
"G4ViewParameters::CatmullRomCubicSplineInterpolation",
1439 "There must be at least two views.");
1443 if (nInterpolationPoints < 1) {
1445 (
"G4ViewParameters::CatmullRomCubicSplineInterpolation",
1447 "Number of interpolation points cannot be zero or negative.");
1451 const size_t nIntervals = views.size() - 1;
1452 const G4double dt = 1./nInterpolationPoints;
1456 static G4int iInterpolationPoint = 0;
1457 static size_t iInterval = 0;
1462 const G4double h00 = 2.*t*t*t - 3.*t*t +1;
1463 const G4double h10 = t*t*t -2.*t*t + t;
1464 const G4double h01 = -2.*t*t*t + 3.*t*t;
1468 const size_t&
n = nIntervals;
1469 size_t& i = iInterval;
1470 const std::vector<G4ViewParameters>& v = views;
1487 holdingValues = t < 0.5? v[i]: v[i+1];
1490#define INTERPOLATE(param) \
1495mi = v[1].param - v[0].param; \
1498if (n == 1) mi1 = mi; \
1500else mi1 = 0.5 * (v[2].param - v[0].param); \
1501} else if (i >= n - 1) { \
1503mi1 = v[i+1].param - v[i].param; \
1505if (n == 1) mi = mi1; \
1507else mi = 0.5 * (v[i+1].param - v[i-1].param); \
1510mi = 0.5 * (v[i+1].param - v[i-1].param); \
1511mi1 = 0.5 * (v[i+2].param - v[i ].param); \
1513real = h00 * v[i].param + h10 * mi + h01 * v[i+1].param + h11 * mi1;
1515#define INTERPOLATELOG(param) \
1517mi = std::log(v[1].param) - std::log(v[0].param); \
1518if (n == 1) mi1 = mi; \
1519else mi1 = 0.5 * (std::log(v[2].param) - std::log(v[0].param)); \
1520} else if (i >= n - 1) { \
1521mi1 = std::log(v[i+1].param) - std::log(v[i].param); \
1522if (n == 1) mi = mi1; \
1523else mi = 0.5 * (std::log(v[i+1].param) - std::log(v[i-1].param)); \
1525mi = 0.5 * (std::log(v[i+1].param) - std::log(v[i-1].param)); \
1526mi1 = 0.5 * (std::log(v[i+2].param) - std::log(v[i ].param)); \
1528real = std::exp(h00 * std::log(v[i].param) + h10 * mi + h01 * std::log(v[i+1].param) + h11 * mi1);
1532 if (real < 0.) real = 0.;
1537 if (real < 0.) real = 0.;
1542 holdingValues.
fDolly = real;
1544 if (real < 0.) real = 0.;
1547 if (real < 0.) real = 0.;
1551#define INTERPOLATEUNITVECTOR(vector) \
1552INTERPOLATE(vector.x()); x = real; \
1553INTERPOLATE(vector.y()); y = real; \
1554INTERPOLATE(vector.z()); z = real;
1565#define INTERPOLATEVECTOR(vector) \
1566INTERPOLATE(vector.x()); x = real; \
1567INTERPOLATE(vector.y()); y = real; \
1568INTERPOLATE(vector.z()); z = real;
1573#define INTERPOLATEPOINT(point) \
1574INTERPOLATE(point.x()); x = real; \
1575INTERPOLATE(point.y()); y = real; \
1576INTERPOLATE(point.z()); z = real;
1584#define INTERPOLATECOLOUR(colour) \
1585INTERPOLATE(colour.GetRed()); red = real; \
1586INTERPOLATE(colour.GetGreen()); green = real; \
1587INTERPOLATE(colour.GetBlue()); blue = real; \
1588INTERPOLATE(colour.GetAlpha()); alpha = real;
1595#define CONTINUITY(quantity) \
1596 continuous = false; \
1599 if (v[1].quantity == v[0].quantity) { \
1600 if (n == 1) continuous = true; \
1601 else if (v[2].quantity == v[0].quantity) \
1602 continuous = true; \
1604 } else if (i >= n - 1) { \
1605 if (v[i+1].quantity == v[i].quantity) { \
1606 if (n == 1) continuous = true; \
1607 else if (v[i+1].quantity == v[i-1].quantity) \
1608 continuous = true; \
1611 if (v[i-1].quantity == v[i].quantity && \
1612 v[i+1].quantity == v[i].quantity && \
1613 v[i+2].quantity == v[i].quantity) \
1614 continuous = true; \
1618#define INTERPOLATEPLANE(plane) \
1619INTERPOLATE(plane.a()); a = real; \
1620INTERPOLATE(plane.b()); b = real; \
1621INTERPOLATE(plane.c()); c = real; \
1622INTERPOLATE(plane.d()); d = real;
1635 for (
size_t j = 0; j < v[i].fCutawayPlanes.size(); ++j) {
1649 for (
size_t j = 0; j < v[i].fVisAttributesModifiers.size(); ++j) {
1657 workingVA = v[i].fVisAttributesModifiers[j].GetVisAttributes();
1677 iInterpolationPoint++;
1679 if (iInterpolationPoint > nInterpolationPoints) {
1680 iInterpolationPoint = 1;
1684 if (iInterval >= nIntervals) {
1685 iInterpolationPoint = 0;
1691 return &holdingValues;
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
static const G4double alpha
HepGeom::Plane3D< G4double > G4Plane3D
HepGeom::Point3D< G4double > G4Point3D
static constexpr double cm3
static constexpr double mm
static constexpr double g
static constexpr double deg
HepGeom::Vector3D< G4double > G4Vector3D
#define INTERPOLATECOLOUR(colour)
#define INTERPOLATEVECTOR(vector)
#define INTERPOLATE(param)
#define INTERPOLATEPLANE(plane)
#define CONTINUITY(quantity)
#define INTERPOLATEPOINT(point)
#define INTERPOLATEUNITVECTOR(vector)
#define INTERPOLATELOG(param)
G4GLOB_DLL std::ostream G4cerr
G4GLOB_DLL std::ostream G4cout
G4double GetAlpha() const
G4double GetGreen() const
const PVNameCopyNoPath & GetPVNameCopyNoPath() const
VisAttributesSignifier GetVisAttributesSignifier() const
const G4VisAttributes & GetVisAttributes() const
PVNameCopyNoPath::const_iterator PVNameCopyNoPathConstIterator
std::vector< PVNameCopyNo > PVNameCopyNoPath
@ VASForceNumberOfCloudPoints
@ VASForceLineSegmentsPerCircle
void SetScreenSize(G4double)
G4int SetNumberOfCloudPoints(G4int)
G4bool fDisplayLightFront
G4Point3D fCurrentTargetPoint
static G4ViewParameters * CatmullRomCubicSplineInterpolation(const std::vector< G4ViewParameters > &views, G4int nInterpolationPoints=50)
G4int SetNoOfSides(G4int nSides)
void SetViewAndLights(const G4Vector3D &viewpointDirection)
G4double fDisplayLightFrontT
std::vector< G4ModelingParameters::VisAttributesModifier > fVisAttributesModifiers
G4double fDisplayHeadTimeX
G4double fDisplayLightFrontBlue
G4int GetWindowAbsoluteLocationHintY(G4int) const
G4String CameraAndLightingCommands(const G4Point3D standardTargetPoint) const
G4Colour fBackgroundColour
G4double GetCameraDistance(G4double radius) const
void PrintDifferences(const G4ViewParameters &v) const
void SetVisibleDensity(G4double visibleDensity)
G4bool fWindowLocationHintYNegative
G4double fDisplayHeadTimeBlue
void AddVisAttributesModifier(const G4ModelingParameters::VisAttributesModifier &)
std::vector< G4ModelingParameters::PVNameCopyNo > fSpecialMeshVolumes
G4Vector3D & GetActualLightpointDirection()
G4double fDisplayLightFrontY
G4int fNumberOfCloudPoints
void SetXGeometryString(const G4String &)
G4double fDisplayLightFrontRed
G4double fDisplayLightFrontGreen
G4bool fSpecialMeshRendering
DrawingStyle fDrawingStyle
G4int ReadInteger(char *string, char **NextString)
G4double GetFarDistance(G4double cameraDistance, G4double nearDistance, G4double radius) const
void MultiplyScaleFactor(const G4Vector3D &scaleFactorMultiplier)
G4bool fLightsMoveWithCamera
G4double GetFrontHalfHeight(G4double nearDistance, G4double radius) const
G4int fWindowLocationHintX
G4Vector3D fViewpointDirection
G4int GetWindowAbsoluteLocationHintX(G4int) const
std::vector< G4double > fCBDParameters
G4String SceneModifyingCommands() const
void IncrementPan(G4double right, G4double up)
G4double fDisplayHeadTimeGreen
G4double fDisplayLightFrontX
G4String TimeWindowCommands() const
G4String TouchableCommands() const
G4double fGlobalLineWidthScale
G4double fGlobalMarkerScale
G4VisAttributes fDefaultTextVisAttributes
void ChangeCutawayPlane(size_t index, const G4Plane3D &cutawayPlane)
G4double fDisplayHeadTimeY
G4double fDisplayHeadTimeSize
G4int fCBDAlgorithmNumber
void SetPan(G4double right, G4double up)
G4Vector3D fRelativeLightpointDirection
G4String fXGeometryString
G4VisAttributes fDefaultVisAttributes
void SetLightpointDirection(const G4Vector3D &lightpointDirection)
G4double fDisplayHeadTimeRed
G4String DrawingStyleCommands() const
G4double fDisplayLightFrontZ
G4bool operator!=(const G4ViewParameters &) const
G4bool fWindowLocationHintXNegative
G4int ParseGeometry(const char *string, G4int *x, G4int *y, unsigned int *width, unsigned int *height)
G4double GetNearDistance(G4double cameraDistance, G4double radius) const
G4int fWindowLocationHintY
G4Vector3D fActualLightpointDirection
void AddCutawayPlane(const G4Plane3D &cutawayPlane)
RotationStyle fRotationStyle
G4int GetForcedNumberOfCloudPoints() const
G4double GetLineWidth() const
G4bool IsDaughtersInvisible() const
void SetColour(const G4Colour &)
G4int GetForcedLineSegmentsPerCircle() const
LineStyle GetLineStyle() const
const G4Colour & GetColour() const
G4bool IsForceAuxEdgeVisible() const
G4bool IsForcedAuxEdgeVisible() const
ForcedDrawingStyle GetForcedDrawingStyle() const
static G4int GetMinLineSegmentsPerCircle()
G4bool IsForceDrawingStyle() const
BasicVector3D< T > cross(const BasicVector3D< T > &v) const
BasicVector3D< T > unit() const
std::ostream & operator<<(std::ostream &, const BasicVector3D< float > &)
Point3D< T > point(const Point3D< T > &p) const
Normal3D< T > normal() const
static G4int GetNumberOfRotationSteps()