80 std::ostringstream oss;
81 oss << x/uv <<
" " << y/uv <<
" " << unitName;
92 std::istringstream is(paramString);
112 (
"Accepts (a) RGB triplet. e.g., \".3 .4 .5\", or"
113 "\n (b) string such as \"white\", \"black\", \"grey\", \"red\"...or"
114 "\n (c) an additional number for opacity, e.g., \".3 .4 .5 .6\""
115 "\n or \"grey ! ! .6\" (note \"!\"'s for unused parameters).");
136 const size_t iPos0 = 0;
137 if (std::isalpha(redOrString[iPos0])) {
143 G4cout <<
"WARNING: Colour \"" << redOrString
144 <<
"\" not found. Defaulting to " << colour
157 std::istringstream iss(redOrString);
162 G4cout <<
"WARNING: String \"" << redOrString
163 <<
"\" cannot be parsed. Defaulting to " << colour
168 colour =
G4Colour(red,green,blue,opacity);
189 <<
"\n Unit \"" << unit <<
"\" not defined"
196 <<
"\n Unit \"" << unit <<
"\" not a unit of " << category;
197 if (category ==
"Volumic Mass")
G4cerr <<
" (density)";
213 G4cout <<
"WARNING: Scene pointer is null."
220 if (!pSceneHandler) {
222 G4cout <<
"WARNING: Scene handler not found." <<
G4endl;
231 if (pScene == pSceneHandler->
GetScene()) {
245 "ERROR: No current viewer - \"/vis/viewer/list\" to see possibilities."
259 "WARNING: For some reason, possibly mentioned above, it has not been"
260 "\n possible to add to the scene."
275 if (sceneHandler && sceneHandler->
GetScene()) {
281 G4cout <<
"Issue /vis/viewer/refresh or flush to see effect."
290 std::vector<G4ViewParameters> viewVector,
291 const G4int nInterpolationPoints,
292 const G4int waitTimePerPointmilliseconds,
295 const G4int safety = viewVector.size()*nInterpolationPoints;
296 G4int safetyCount = 0;
303 if (exportString ==
"export" &&
308 if (waitTimePerPointmilliseconds > 0)
309 std::this_thread::sleep_for(std::chrono::milliseconds(waitTimePerPointmilliseconds));
310 }
while (safetyCount++ < safety);
317 const G4int nInterpolationPoints,
318 const G4int waitTimePerPointmilliseconds,
321 std::vector<G4ViewParameters> viewVector;
322 viewVector.push_back(oldVP);
323 viewVector.push_back(oldVP);
324 viewVector.push_back(newVP);
325 viewVector.push_back(newVP);
330 nInterpolationPoints,
331 waitTimePerPointmilliseconds,
338 if (fromCmd && toCmd) {
340 for (
G4int i = startLine; i < nGuideEntries; ++i) {
350 if (fromCmd && toCmd) {
352 for (
G4int i = 0; i < nParEntries; ++i) {
365 if (halfX > 0. && halfY > 0. && halfZ > 0.) {
366 const G4Box box(
"vis_extent",halfX,halfY,halfZ);
G4GLOB_DLL std::ostream G4cerr
G4GLOB_DLL std::ostream G4cout
static G4bool GetColour(const G4String &key, G4Colour &result)
std::size_t GetParameterEntries() const
const G4String & GetGuidanceLine(G4int i) const
G4UIparameter * GetParameter(G4int i) const
static G4double ValueOf(const char *unitName)
void SetParameter(G4UIparameter *const newParameter)
void SetGuidance(const char *aGuidance)
std::size_t GetGuidanceEntries() const
G4int ApplyCommand(const char *aCommand)
static G4UImanager * GetUIpointer()
static G4bool IsUnitDefined(const G4String &)
static G4double GetValueOf(const G4String &)
static G4String GetCategory(const G4String &)
G4Scene * GetScene() const
const G4String & GetName() const
const G4ViewParameters & GetViewParameters() const
void SetViewParameters(const G4ViewParameters &vp)
G4VSceneHandler * GetSceneHandler() const
static G4double fCurrentTextSize
void G4VisCommandsSceneAddUnsuccessful(G4VisManager::Verbosity verbosity)
static void SetVisManager(G4VisManager *pVisManager)
static G4Colour fCurrentTextColour
void CopyCameraParameters(G4ViewParameters &target, const G4ViewParameters &from)
static G4VisManager * GetVisManager()
void CheckSceneAndNotifyHandlers(G4Scene *=nullptr)
static std::vector< G4PhysicalVolumesSearchScene::Findings > fCurrrentPVFindingsForField
void ConvertToColour(G4Colour &colour, const G4String &redOrString, G4double green, G4double blue, G4double opacity)
static G4VisManager * fpVisManager
static G4VisExtent fCurrentExtentForField
void DrawExtent(const G4VisExtent &)
void InterpolateToNewView(G4VViewer *currentViewer, const G4ViewParameters &oldVP, const G4ViewParameters &newVP, const G4int nInterpolationPoints=50, const G4int waitTimePerPointmilliseconds=20, const G4String exportString="")
static const G4Colour & GetCurrentTextColour()
static G4bool ConvertToDoublePair(const G4String ¶mString, G4double &xval, G4double &yval)
void RefreshIfRequired(G4VViewer *viewer)
void SetViewParameters(G4VViewer *viewer, const G4ViewParameters &viewParams)
const G4String & ConvertToColourGuidance()
void CopyParametersFrom(const G4UIcommand *fromCmd, G4UIcommand *toCmd)
static G4int fCurrentArrow3DLineSegmentsPerCircle
static G4ViewParameters fVPExistingViewer
static G4PhysicalVolumeModel::TouchableProperties fCurrentTouchableProperties
G4bool ProvideValueOfUnit(const G4String &where, const G4String &unit, const G4String &category, G4double &value)
void CopyMostViewParameters(G4ViewParameters &target, const G4ViewParameters &from)
static G4Text::Layout fCurrentTextLayout
static G4bool fThereWasAViewer
static G4double fCurrentLineWidth
static G4String ConvertToString(G4double x, G4double y, const char *unitName)
static G4Colour fCurrentColour
void CopyGuidanceFrom(const G4UIcommand *fromCmd, G4UIcommand *toCmd, G4int startLine=0)
void InterpolateViews(G4VViewer *currentViewer, std::vector< G4ViewParameters > viewVector, const G4int nInterpolationPoints=50, const G4int waitTimePerPointmilliseconds=20, const G4String exportString="")
void SetViewpointDirection(const G4Vector3D &viewpointDirection)
void SetScaleFactor(const G4Vector3D &scaleFactor)
static G4ViewParameters * CatmullRomCubicSplineInterpolation(const std::vector< G4ViewParameters > &views, G4int nInterpolationPoints=50)
const G4Vector3D & GetScaleFactor() const
void SetAutoRefresh(G4bool)
void SetBackgroundColour(const G4Colour &)
void SetCurrentTargetPoint(const G4Point3D ¤tTargetPoint)
const G4Colour & GetBackgroundColour() const
const G4Vector3D & GetLightpointDirection() const
void SetFieldHalfAngle(G4double fieldHalfAngle)
const G4Vector3D & GetViewpointDirection() const
const G4Point3D & GetCurrentTargetPoint() const
G4double GetFieldHalfAngle() const
G4double GetZoomFactor() const
void SetDolly(G4double dolly)
const G4Vector3D & GetUpVector() const
void SetZoomFactor(G4double zoomFactor)
void SetUpVector(const G4Vector3D &upVector)
void SetLightpointDirection(const G4Vector3D &lightpointDirection)
void SetLightsMoveWithCamera(G4bool moves)
G4bool IsAutoRefresh() const
G4bool GetLightsMoveWithCamera() const
G4double GetDolly() const
const G4Point3D & GetExtentCenter() const
void Draw(const G4Circle &, const G4Transform3D &objectTransformation=G4Transform3D())
static Verbosity GetVerbosity()
G4bool contains(const G4String &str, std::string_view ss)
Check if a string contains a given substring.