From now on, the panning behavior of V3d_View completely corresponds to equal operations with camera. There is no more confusing "Center" property and "ProjectionShift" which were used to introduce composite panning, while respecting view referential points: At, Eye unchanged. The V3d_View::FitAll approach has been rewritten to do "fit all" geometrically, operating with frustum, to make it working for both orthographic and perspective projections.
1) Getting rid of ProjectionShift and Center property:
- Removed ProjectionShift property of Graphic3d_Camera.
- Removed confusing Center property of V3d_View (related to projection shift).
- Removed redundant code related to the Center property of V3d_View.
- Removed WindowLimit method of Graphic3d_Camera - no more used.
2) Improvements of fit all and selector:
- Improved FitAll operation of V3d_View and reused it in NIS_View - the perspective projection is now handled correctly.
- Revised code of Select3D_Projector class - can be defined with any given projection and model-view matrices.
- Modified StdSelect_ViewerSelector3d and ensured that panning, zooming and going into the view do not lead to unwanted re-projection of sensitives. The handling of perspective selection is revised.
- Take into account graphical boundaries of infinite structure on ZFitAll.
3) Improvements of camera:
- Introduced new z range scale parameter for V3d_View::AutoZFit. See, V3d_View::AutoZFitMode.
- Allow negative ZNear, ZFar for orthographic camera to avoid clipping of viewed model.
- Moved camera ZNear, ZFar validity checks to V3d_View level.
- Use more meaningful Standard_ShortReal relative precision for ZNear, ZFar ranges computed by ZFitAll.
- Use Standard_Real type for camera projection and orientation matrices.
- Extended camera to generate both Standard_Real and Standard_ShortReal transformation matrices using the same matrix evaluation methods and converted input parameters.
Correcting picking tests for perspective view
Modify v3d face test cases for 1px changes in face picking
Modified test cases for new arguments of vviewparams DRAWEXE command
Graphic3d_Vec3.hxx
Graphic3d_Vec4.hxx
Graphic3d_Mat4.hxx
+Graphic3d_Mat4d.hxx
Graphic3d_Vertex.hxx
Graphic3d_Vertex.cxx
Graphic3d_MarkerImage.hxx
primitive Vec2;
primitive Vec3;
primitive Vec4;
- primitive Mat4;
- primitive Mat4d;
+ imported Mat4;
+ imported Mat4d;
--------------------
-- Category: Classes
#include <Graphic3d_Camera.hxx>
#include <Standard_Atomic.hxx>
+#include <Standard_Assert.hxx>
IMPLEMENT_STANDARD_HANDLE(Graphic3d_Camera, Standard_Transient)
IMPLEMENT_STANDARD_RTTIEXT(Graphic3d_Camera, Standard_Transient)
namespace
{
// (degrees -> radians) * 0.5
- static const Standard_ShortReal DTR_HALF = 0.5f * 0.0174532925f;
+ static const Standard_Real DTR_HALF = 0.5 * 0.0174532925;
+
+ // default property values
+ static const Standard_Real DEFAULT_ZNEAR = 0.001;
+ static const Standard_Real DEFAULT_ZFAR = 3000.0;
// atomic state counter
static volatile Standard_Integer THE_STATE_COUNTER = 0;
: myUp (0.0, 1.0, 0.0),
myEye (0.0, 0.0, -1500.0),
myCenter (0.0, 0.0, 0.0),
- myProjectionShift (0.0, 0.0, 0.0),
myAxialScale (1.0, 1.0, 1.0),
myProjType (Projection_Orthographic),
myFOVy (45.0),
- myZNear (0.001),
- myZFar (3000.0),
+ myZNear (DEFAULT_ZNEAR),
+ myZFar (DEFAULT_ZFAR),
myAspect (1.0),
myScale (1000.0),
myZFocus (1.0),
myZFocusType (FocusType_Relative),
myIOD (0.05),
- myIODType (IODType_Relative),
- myNbUpdateLocks (0)
+ myIODType (IODType_Relative)
{
myProjectionState = (Standard_Size)Standard_Atomic_Increment (&THE_STATE_COUNTER);
myOrientationState = (Standard_Size)Standard_Atomic_Increment (&THE_STATE_COUNTER);
-
- myOrientation.InitIdentity();
- myMProjection.InitIdentity();
- myLProjection.InitIdentity();
- myRProjection.InitIdentity();
-
- UpdateProjection();
- UpdateOrientation();
}
// =======================================================================
// purpose :
// =======================================================================
Graphic3d_Camera::Graphic3d_Camera (const Handle(Graphic3d_Camera)& theOther)
-: myNbUpdateLocks (0)
{
Copy (theOther);
}
// =======================================================================
void Graphic3d_Camera::CopyMappingData (const Handle(Graphic3d_Camera)& theOtherCamera)
{
- myProjectionShift = theOtherCamera->myProjectionShift;
- myFOVy = theOtherCamera->myFOVy;
- myZNear = theOtherCamera->myZNear;
- myZFar = theOtherCamera->myZFar;
- myAspect = theOtherCamera->myAspect;
- myScale = theOtherCamera->myScale;
- myZFocus = theOtherCamera->myZFocus;
- myZFocusType = theOtherCamera->myZFocusType;
- myIOD = theOtherCamera->myIOD;
- myIODType = theOtherCamera->myIODType;
- myProjType = theOtherCamera->myProjType;
+ myFOVy = theOtherCamera->myFOVy;
+ myZNear = theOtherCamera->myZNear;
+ myZFar = theOtherCamera->myZFar;
+ myAspect = theOtherCamera->myAspect;
+ myScale = theOtherCamera->myScale;
+ myZFocus = theOtherCamera->myZFocus;
+ myZFocusType = theOtherCamera->myZFocusType;
+ myIOD = theOtherCamera->myIOD;
+ myIODType = theOtherCamera->myIODType;
+ myProjType = theOtherCamera->myProjType;
+ myProjectionState = theOtherCamera->myProjectionState;
- myProjectionState = theOtherCamera->myProjectionState;
-
- UpdateProjection();
+ InvalidateProjection();
}
// =======================================================================
// =======================================================================
void Graphic3d_Camera::CopyOrientationData (const Handle(Graphic3d_Camera)& theOtherCamera)
{
- myUp = theOtherCamera->myUp;
- myEye = theOtherCamera->myEye;
- myCenter = theOtherCamera->myCenter;
- myAxialScale = theOtherCamera->myAxialScale;
-
+ myUp = theOtherCamera->myUp;
+ myEye = theOtherCamera->myEye;
+ myCenter = theOtherCamera->myCenter;
+ myAxialScale = theOtherCamera->myAxialScale;
myOrientationState = theOtherCamera->myOrientationState;
- UpdateOrientation();
+ InvalidateOrientation();
}
// =======================================================================
// =======================================================================
void Graphic3d_Camera::Copy (const Handle(Graphic3d_Camera)& theOther)
{
- BeginUpdate();
CopyMappingData (theOther);
CopyOrientationData (theOther);
- EndUpdate();
}
// =======================================================================
void Graphic3d_Camera::SetEye (const gp_Pnt& theEye)
{
myEye = theEye;
- UpdateOrientation();
+ InvalidateOrientation();
}
// =======================================================================
void Graphic3d_Camera::SetCenter (const gp_Pnt& theCenter)
{
myCenter = theCenter;
- UpdateOrientation();
+ InvalidateOrientation();
}
// =======================================================================
void Graphic3d_Camera::SetUp (const gp_Dir& theUp)
{
myUp = theUp;
- UpdateOrientation();
-}
-
-// =======================================================================
-// function : SetProjectionShift
-// purpose :
-// =======================================================================
-void Graphic3d_Camera::SetProjectionShift (const gp_Pnt& theProjShift)
-{
- myProjectionShift = theProjShift;
- UpdateProjection();
+ InvalidateOrientation();
}
// =======================================================================
// function : SetAxialScale
// purpose :
// =======================================================================
-void Graphic3d_Camera::SetAxialScale (const gp_Pnt& theAxialScale)
+void Graphic3d_Camera::SetAxialScale (const gp_XYZ& theAxialScale)
{
myAxialScale = theAxialScale;
- UpdateOrientation();
+ InvalidateOrientation();
}
// =======================================================================
break;
}
- UpdateProjection();
+ InvalidateProjection();
}
// =======================================================================
// case Projection_MonoLeftEye :
// case Projection_MonoRightEye :
default :
- return Distance() * 2.0 * Tan(myFOVy * M_PI / 360.0);
+ return Distance() * 2.0 * Tan (myFOVy * M_PI / 360.0);
}
}
return;
}
- myProjType = theProjectionType;
-
- switch (myProjType)
+ if (anOldType == Projection_Orthographic)
{
- case Projection_Orthographic :
- case Projection_Perspective :
- case Projection_MonoLeftEye :
- case Projection_MonoRightEye :
- myLProjection.InitIdentity();
- myRProjection.InitIdentity();
- break;
-
- default:
- break;
+ if (myZNear <= RealEpsilon())
+ {
+ myZNear = DEFAULT_ZNEAR;
+ }
+ if (myZFar <= RealEpsilon())
+ {
+ myZFar = DEFAULT_ZFAR;
+ }
}
- UpdateProjection();
+ myProjType = theProjectionType;
+
+ InvalidateProjection();
}
// =======================================================================
void Graphic3d_Camera::SetFOVy (const Standard_Real theFOVy)
{
myFOVy = theFOVy;
- UpdateProjection();
+ InvalidateProjection();
}
// =======================================================================
-// function : SetZNear
+// function : SetZRange
// purpose :
// =======================================================================
-void Graphic3d_Camera::SetZNear (const Standard_Real theZNear)
+void Graphic3d_Camera::SetZRange (const Standard_Real theZNear,
+ const Standard_Real theZFar)
{
- myZNear = theZNear;
-
- // it is important to prevent too low ZNear values relatively to ZFar
- // so we can not just pass Precision::Confusion() to it
- const Standard_Real aTolerance = 0.001;
- const Standard_Real aMinimumZ = myZFar * aTolerance;
- const Standard_Real aMinimumGap = aTolerance;
- // while it is possible to manually set up pretty small ZNear value,
- // it may affect project / unproject operations dramatically
- if (myZNear < aMinimumZ)
- {
- myZNear = aMinimumZ;
- }
-
- if (myZFar < (myZNear + aMinimumGap))
+ Standard_ASSERT_RAISE (theZFar > theZNear, "ZFar should be greater than ZNear");
+ if (!IsOrthographic())
{
- myZFar = myZNear + aMinimumGap;
+ Standard_ASSERT_RAISE (theZNear > 0.0, "Only positive Z-Near is allowed for perspective camera");
+ Standard_ASSERT_RAISE (theZFar > 0.0, "Only positive Z-Far is allowed for perspective camera");
}
- UpdateProjection();
-}
-
-// =======================================================================
-// function : SetZFar
-// purpose :
-// =======================================================================
-void Graphic3d_Camera::SetZFar (const Standard_Real theZFar)
-{
- myZFar = theZFar;
-
- // it is important to prevent too low ZNear values relatively to ZFar
- // so we can not just pass Precision::Confusion() to it
- const Standard_Real aTolerance = 0.001;
- const Standard_Real aMinimumGap = aTolerance;
-
- // while it is possible to manually set up pretty small ZNear value,
- // it may affect project / unproject operations dramatically
- if (myZFar < (myZNear + aMinimumGap))
- {
- myZFar = myZNear + aMinimumGap;
- }
+ myZNear = theZNear;
+ myZFar = theZFar;
- UpdateProjection();
+ InvalidateProjection();
}
// =======================================================================
void Graphic3d_Camera::SetAspect (const Standard_Real theAspect)
{
myAspect = theAspect;
- UpdateProjection();
+ InvalidateProjection();
}
// =======================================================================
{
myZFocusType = theType;
myZFocus = theZFocus;
- UpdateProjection();
+ InvalidateProjection();
}
// =======================================================================
{
myIODType = theType;
myIOD = theIOD;
- UpdateProjection();
+ InvalidateProjection();
}
// =======================================================================
// =======================================================================
void Graphic3d_Camera::OrthogonalizeUp()
{
- gp_Dir aDir = Direction();
- gp_Dir aLeft = aDir.Crossed (Up());
-
- // recompute up as: up = left x direction
- SetUp (aLeft.Crossed (aDir));
-}
-
-// =======================================================================
-// function : BeginUpdate
-// purpose :
-// =======================================================================
-void Graphic3d_Camera::BeginUpdate()
-{
- myNbUpdateLocks++;
+ SetUp (OrthogonalizedUp());
}
// =======================================================================
-// function : EndUpdate
+// function : OrthogonalizedUp
// purpose :
// =======================================================================
-void Graphic3d_Camera::EndUpdate()
+gp_Dir Graphic3d_Camera::OrthogonalizedUp() const
{
- if (myNbUpdateLocks > 0)
- myNbUpdateLocks--;
+ gp_Dir aDir = Direction();
+ gp_Dir aLeft = aDir.Crossed (Up());
- // if number of locks > 0, the updates are bypassed
- UpdateProjection();
- UpdateOrientation();
+ // recompute up as: up = left x direction
+ return aLeft.Crossed (aDir);
}
// =======================================================================
myUp.Transform (theTrsf);
myEye.Transform (theTrsf);
myCenter.Transform (theTrsf);
- UpdateOrientation();
+ InvalidateOrientation();
}
// =======================================================================
// function : safePointCast
// purpose :
// =======================================================================
-static Graphic3d_Vec4 safePointCast (const gp_Pnt& thePnt)
+static Graphic3d_Vec4d safePointCast (const gp_Pnt& thePnt)
{
Standard_Real aLim = 1e15f;
-
+
// have to deal with values greater then max float
gp_Pnt aSafePoint = thePnt;
const Standard_Real aBigFloat = aLim * 0.1f;
aSafePoint.SetZ (aSafePoint.Z() >= 0 ? aBigFloat : -aBigFloat);
// convert point
- Graphic3d_Vec4 aPnt (static_cast<Standard_ShortReal> (aSafePoint.X()),
- static_cast<Standard_ShortReal> (aSafePoint.Y()),
- static_cast<Standard_ShortReal> (aSafePoint.Z()), 1.0f);
+ Graphic3d_Vec4d aPnt (aSafePoint.X(), aSafePoint.Y(), aSafePoint.Z(), 1.0);
return aPnt;
}
// =======================================================================
gp_Pnt Graphic3d_Camera::Project (const gp_Pnt& thePnt) const
{
- const Graphic3d_Mat4& aViewMx = OrientationMatrix();
- const Graphic3d_Mat4& aProjMx = ProjectionMatrix();
+ const Graphic3d_Mat4d& aViewMx = OrientationMatrix();
+ const Graphic3d_Mat4d& aProjMx = ProjectionMatrix();
// use compatible type of point
- Graphic3d_Vec4 aPnt = safePointCast (thePnt);
+ Graphic3d_Vec4d aPnt = safePointCast (thePnt);
aPnt = aViewMx * aPnt; // convert to view coordinate space
aPnt = aProjMx * aPnt; // convert to projection coordinate space
// =======================================================================
gp_Pnt Graphic3d_Camera::UnProject (const gp_Pnt& thePnt) const
{
- const Graphic3d_Mat4& aViewMx = OrientationMatrix();
- const Graphic3d_Mat4& aProjMx = ProjectionMatrix();
+ const Graphic3d_Mat4d& aViewMx = OrientationMatrix();
+ const Graphic3d_Mat4d& aProjMx = ProjectionMatrix();
- Graphic3d_Mat4 aInvView;
- Graphic3d_Mat4 aInvProj;
+ Graphic3d_Mat4d aInvView;
+ Graphic3d_Mat4d aInvProj;
// this case should never happen
if (!aViewMx.Inverted (aInvView) || !aProjMx.Inverted (aInvProj))
}
// use compatible type of point
- Graphic3d_Vec4 aPnt = safePointCast (thePnt);
+ Graphic3d_Vec4d aPnt = safePointCast (thePnt);
aPnt = aInvProj * aPnt; // convert to view coordinate space
aPnt = aInvView * aPnt; // convert to world coordinate space
// =======================================================================
gp_Pnt Graphic3d_Camera::ConvertView2Proj (const gp_Pnt& thePnt) const
{
- const Graphic3d_Mat4& aProjMx = ProjectionMatrix();
+ const Graphic3d_Mat4d& aProjMx = ProjectionMatrix();
// use compatible type of point
- Graphic3d_Vec4 aPnt = safePointCast (thePnt);
+ Graphic3d_Vec4d aPnt = safePointCast (thePnt);
aPnt = aProjMx * aPnt; // convert to projection coordinate space
// =======================================================================
gp_Pnt Graphic3d_Camera::ConvertProj2View (const gp_Pnt& thePnt) const
{
- const Graphic3d_Mat4& aProjMx = ProjectionMatrix();
+ const Graphic3d_Mat4d& aProjMx = ProjectionMatrix();
- Graphic3d_Mat4 aInvProj;
+ Graphic3d_Mat4d aInvProj;
// this case should never happen, but...
if (!aProjMx.Inverted (aInvProj))
{
- return gp_Pnt(0, 0, 0);
+ return gp_Pnt (0, 0, 0);
}
// use compatible type of point
- Graphic3d_Vec4 aPnt = safePointCast (thePnt);
+ Graphic3d_Vec4d aPnt = safePointCast (thePnt);
aPnt = aInvProj * aPnt; // convert to view coordinate space
// =======================================================================
gp_Pnt Graphic3d_Camera::ConvertWorld2View (const gp_Pnt& thePnt) const
{
- const Graphic3d_Mat4& aViewMx = OrientationMatrix();
+ const Graphic3d_Mat4d& aViewMx = OrientationMatrix();
// use compatible type of point
- Graphic3d_Vec4 aPnt = safePointCast (thePnt);
+ Graphic3d_Vec4d aPnt = safePointCast (thePnt);
aPnt = aViewMx * aPnt; // convert to view coordinate space
// =======================================================================
gp_Pnt Graphic3d_Camera::ConvertView2World (const gp_Pnt& thePnt) const
{
- const Graphic3d_Mat4& aViewMx = OrientationMatrix();
+ const Graphic3d_Mat4d& aViewMx = OrientationMatrix();
- Graphic3d_Mat4 aInvView;
+ Graphic3d_Mat4d aInvView;
if (!aViewMx.Inverted (aInvView))
{
}
// use compatible type of point
- Graphic3d_Vec4 aPnt = safePointCast (thePnt);
+ Graphic3d_Vec4d aPnt = safePointCast (thePnt);
aPnt = aInvView * aPnt; // convert to world coordinate space
// function : ViewDimensions
// purpose :
// =======================================================================
-gp_Pnt Graphic3d_Camera::ViewDimensions () const
+gp_XYZ Graphic3d_Camera::ViewDimensions() const
{
// view plane dimensions
Standard_Real aSizeY = IsOrthographic() ? myScale : (2.0 * Distance() * Tan (DTR_HALF * myFOVy));
Standard_Real aSizeX = myAspect * aSizeY;
// and frustum depth
- return gp_Pnt (aSizeX, aSizeY, myZFar - myZNear);
+ return gp_XYZ (aSizeX, aSizeY, myZFar - myZNear);
}
// =======================================================================
-// function : WindowLimit
+// function : Frustum
// purpose :
// =======================================================================
-void Graphic3d_Camera::WindowLimit (Standard_Real& theUMin,
- Standard_Real& theVMin,
- Standard_Real& theUMax,
- Standard_Real& theVMax) const
+void Graphic3d_Camera::Frustum (gp_Pln& theLeft,
+ gp_Pln& theRight,
+ gp_Pln& theBottom,
+ gp_Pln& theTop,
+ gp_Pln& theNear,
+ gp_Pln& theFar) const
{
- gp_Pnt aViewDims = ViewDimensions();
- gp_Pnt aShift = ProjectionShift();
- theUMin = -aViewDims.X() * 0.5 - aShift.X();
- theVMin = -aViewDims.Y() * 0.5 - aShift.Y();
- theUMax = aViewDims.X() * 0.5 - aShift.X();
- theVMax = aViewDims.Y() * 0.5 - aShift.Y();
+ gp_Vec aProjection = gp_Vec (Direction());
+ gp_Vec anUp = OrthogonalizedUp();
+ gp_Vec aSide = aProjection ^ anUp;
+
+ Standard_ASSERT_RAISE (
+ !aProjection.IsParallel (anUp, Precision::Angular()),
+ "Can not derive SIDE = PROJ x UP - directions are parallel");
+
+ theNear = gp_Pln (Eye().Translated (aProjection * ZNear()), aProjection);
+ theFar = gp_Pln (Eye().Translated (aProjection * ZFar()), -aProjection);
+
+ Standard_Real aHScaleHor = Scale() * 0.5 * Aspect();
+ Standard_Real aHScaleVer = Scale() * 0.5;
+
+ gp_Pnt aPntLeft = Center().Translated (aHScaleHor * -aSide);
+ gp_Pnt aPntRight = Center().Translated (aHScaleHor * aSide);
+ gp_Pnt aPntBottom = Center().Translated (aHScaleVer * -anUp);
+ gp_Pnt aPntTop = Center().Translated (aHScaleVer * anUp);
+
+ gp_Vec aDirLeft = aSide;
+ gp_Vec aDirRight = -aSide;
+ gp_Vec aDirBottom = anUp;
+ gp_Vec aDirTop = -anUp;
+ if (!IsOrthographic())
+ {
+ Standard_Real aHFOVHor = ATan (Tan (DTR_HALF * FOVy()) * Aspect());
+ Standard_Real aHFOVVer = DTR_HALF * FOVy();
+ aDirLeft.Rotate (gp_Ax1 (gp::Origin(), anUp), aHFOVHor);
+ aDirRight.Rotate (gp_Ax1 (gp::Origin(), anUp), -aHFOVHor);
+ aDirBottom.Rotate (gp_Ax1 (gp::Origin(), aSide), -aHFOVVer);
+ aDirTop.Rotate (gp_Ax1 (gp::Origin(), aSide), aHFOVVer);
+ }
+
+ theLeft = gp_Pln (aPntLeft, aDirLeft);
+ theRight = gp_Pln (aPntRight, aDirRight);
+ theBottom = gp_Pln (aPntBottom, aDirBottom);
+ theTop = gp_Pln (aPntTop, aDirTop);
+}
+
+// =======================================================================
+// function : OrientationMatrix
+// purpose :
+// =======================================================================
+const Graphic3d_Mat4d& Graphic3d_Camera::OrientationMatrix() const
+{
+ return *UpdateOrientation (myMatricesD).Orientation;
+}
+
+// =======================================================================
+// function : OrientationMatrixF
+// purpose :
+// =======================================================================
+const Graphic3d_Mat4& Graphic3d_Camera::OrientationMatrixF() const
+{
+ return *UpdateOrientation (myMatricesF).Orientation;
+}
+
+// =======================================================================
+// function : ProjectionMatrix
+// purpose :
+// =======================================================================
+const Graphic3d_Mat4d& Graphic3d_Camera::ProjectionMatrix() const
+{
+ return *UpdateProjection (myMatricesD).MProjection;
+}
+
+// =======================================================================
+// function : ProjectionMatrixF
+// purpose :
+// =======================================================================
+const Graphic3d_Mat4& Graphic3d_Camera::ProjectionMatrixF() const
+{
+ return *UpdateProjection (myMatricesF).MProjection;
+}
+
+// =======================================================================
+// function : ProjectionStereoLeft
+// purpose :
+// =======================================================================
+const Graphic3d_Mat4d& Graphic3d_Camera::ProjectionStereoLeft() const
+{
+ return *UpdateProjection (myMatricesD).LProjection;
+}
+
+// =======================================================================
+// function : ProjectionStereoLeftF
+// purpose :
+// =======================================================================
+const Graphic3d_Mat4& Graphic3d_Camera::ProjectionStereoLeftF() const
+{
+ return *UpdateProjection (myMatricesF).LProjection;
+}
+
+// =======================================================================
+// function : ProjectionStereoRight
+// purpose :
+// =======================================================================
+const Graphic3d_Mat4d& Graphic3d_Camera::ProjectionStereoRight() const
+{
+ return *UpdateProjection (myMatricesD).RProjection;
+}
+
+// =======================================================================
+// function : ProjectionStereoRightF
+// purpose :
+// =======================================================================
+const Graphic3d_Mat4& Graphic3d_Camera::ProjectionStereoRightF() const
+{
+ return *UpdateProjection (myMatricesF).RProjection;
}
// =======================================================================
// function : UpdateProjection
// purpose :
// =======================================================================
-void Graphic3d_Camera::UpdateProjection()
+template <typename Elem_t>
+Graphic3d_Camera::TransformMatrices<Elem_t>&
+ Graphic3d_Camera::UpdateProjection (TransformMatrices<Elem_t>& theMatrices) const
{
- if (myNbUpdateLocks > 0)
+ if (theMatrices.IsProjectionValid())
{
- return;
+ return theMatrices; // for inline accessors
}
- myProjectionState = (Standard_Size)Standard_Atomic_Increment (&THE_STATE_COUNTER);
+ theMatrices.InitProjection();
// sets top of frustum based on FOVy and near clipping plane
- Standard_Real aDYHalf;
+ Elem_t aScale = static_cast<Elem_t> (myScale);
+ Elem_t aZNear = static_cast<Elem_t> (myZNear);
+ Elem_t aZFar = static_cast<Elem_t> (myZFar);
+ Elem_t anAspect = static_cast<Elem_t> (myAspect);
+ Elem_t aDYHalf = 0.0;
if (IsOrthographic())
{
- aDYHalf = myScale * 0.5;
+ aDYHalf = aScale * Elem_t (0.5);
}
else
{
- aDYHalf = myZNear * Tan (DTR_HALF * myFOVy);
+ aDYHalf = aZNear * Elem_t (Tan (DTR_HALF * myFOVy));
}
// sets right of frustum based on aspect ratio
- Standard_Real aDXHalf = myAspect * aDYHalf;
+ Elem_t aDXHalf = anAspect * aDYHalf;
+ Elem_t aLeft = -aDXHalf;
+ Elem_t aRight = aDXHalf;
+ Elem_t aBot = -aDYHalf;
+ Elem_t aTop = aDYHalf;
- Standard_ShortReal aLeft = (Standard_ShortReal) -aDXHalf;
- Standard_ShortReal aRight = (Standard_ShortReal) aDXHalf;
- Standard_ShortReal aBot = (Standard_ShortReal) -aDYHalf;
- Standard_ShortReal aTop = (Standard_ShortReal) aDYHalf;
- Standard_ShortReal aNear = (Standard_ShortReal) myZNear;
- Standard_ShortReal aFar = (Standard_ShortReal) myZFar;
- Standard_ShortReal aShiftX = (Standard_ShortReal) myProjectionShift.X();
- Standard_ShortReal aShiftY = (Standard_ShortReal) myProjectionShift.Y();
+ Elem_t aIOD = myIODType == IODType_Relative
+ ? static_cast<Elem_t> (myIOD * Distance())
+ : static_cast<Elem_t> (myIOD);
- Standard_ShortReal aIOD = (myIODType == IODType_Relative)
- ? (Standard_ShortReal)(myIOD * Distance())
- : (Standard_ShortReal)(myIOD);
-
- Standard_ShortReal aFocus = (myZFocusType == FocusType_Relative)
- ? (Standard_ShortReal)(myZFocus * Distance())
- : (Standard_ShortReal)(myZFocus);
+ Elem_t aFocus = myZFocusType == FocusType_Relative
+ ? static_cast<Elem_t> (myZFocus * Distance())
+ : static_cast<Elem_t> (myZFocus);
switch (myProjType)
{
case Projection_Orthographic :
- OrthoProj (aLeft, aRight, aBot, aTop, aNear, aFar, aShiftX, aShiftY, myMProjection);
+ OrthoProj (aLeft, aRight, aBot, aTop, aZNear, aZFar, *theMatrices.MProjection);
break;
case Projection_Perspective :
- PerspectiveProj (aLeft, aRight, aBot, aTop, aNear, aFar, aShiftX, aShiftY, myMProjection);
+ PerspectiveProj (aLeft, aRight, aBot, aTop, aZNear, aZFar, *theMatrices.MProjection);
break;
case Projection_MonoLeftEye :
{
- StereoEyeProj (aLeft, aRight, aBot, aTop, aNear,
- aFar, aIOD, aFocus, aShiftX, aShiftY,
- Standard_True, myMProjection);
+ StereoEyeProj (aLeft, aRight, aBot, aTop,
+ aZNear, aZFar, aIOD, aFocus,
+ Standard_True, *theMatrices.MProjection);
break;
}
case Projection_MonoRightEye :
{
- StereoEyeProj (aLeft, aRight, aBot, aTop, aNear,
- aFar, aIOD, aFocus, aShiftX, aShiftY,
- Standard_False, myMProjection);
+ StereoEyeProj (aLeft, aRight, aBot, aTop,
+ aZNear, aZFar, aIOD, aFocus,
+ Standard_False, *theMatrices.MProjection);
break;
}
case Projection_Stereo :
{
- PerspectiveProj (aLeft, aRight, aBot, aTop, aNear, aFar, aShiftX, aShiftY, myMProjection);
+ PerspectiveProj (aLeft, aRight, aBot, aTop, aZNear, aZFar, *theMatrices.MProjection);
- StereoEyeProj (aLeft, aRight, aBot, aTop, aNear,
- aFar, aIOD, aFocus, aShiftX, aShiftY,
- Standard_True, myLProjection);
+ StereoEyeProj (aLeft, aRight, aBot, aTop,
+ aZNear, aZFar, aIOD, aFocus,
+ Standard_True,
+ *theMatrices.LProjection);
- StereoEyeProj (aLeft, aRight, aBot, aTop, aNear,
- aFar, aIOD, aFocus, aShiftX, aShiftY,
- Standard_False, myRProjection);
+ StereoEyeProj (aLeft, aRight, aBot, aTop,
+ aZNear, aZFar, aIOD, aFocus,
+ Standard_False,
+ *theMatrices.RProjection);
break;
}
}
+
+ return theMatrices; // for inline accessors
}
// =======================================================================
// function : UpdateOrientation
// purpose :
// =======================================================================
-void Graphic3d_Camera::UpdateOrientation()
+template <typename Elem_t>
+Graphic3d_Camera::TransformMatrices<Elem_t>&
+ Graphic3d_Camera::UpdateOrientation (TransformMatrices<Elem_t>& theMatrices) const
{
- if (myNbUpdateLocks > 0)
+ if (theMatrices.IsOrientationValid())
{
- return;
+ return theMatrices; // for inline accessors
}
- myOrientationState = (Standard_Size)Standard_Atomic_Increment (&THE_STATE_COUNTER);
+ theMatrices.InitOrientation();
+
+ NCollection_Vec3<Elem_t> anEye (static_cast<Elem_t> (myEye.X()),
+ static_cast<Elem_t> (myEye.Y()),
+ static_cast<Elem_t> (myEye.Z()));
+
+ NCollection_Vec3<Elem_t> aCenter (static_cast<Elem_t> (myCenter.X()),
+ static_cast<Elem_t> (myCenter.Y()),
+ static_cast<Elem_t> (myCenter.Z()));
- Graphic3d_Vec3 anEye ((Standard_ShortReal) myEye.X(),
- (Standard_ShortReal) myEye.Y(),
- (Standard_ShortReal) myEye.Z());
+ NCollection_Vec3<Elem_t> anUp (static_cast<Elem_t> (myUp.X()),
+ static_cast<Elem_t> (myUp.Y()),
+ static_cast<Elem_t> (myUp.Z()));
- Graphic3d_Vec3 aCenter ((Standard_ShortReal) myCenter.X(),
- (Standard_ShortReal) myCenter.Y(),
- (Standard_ShortReal) myCenter.Z());
+ NCollection_Vec3<Elem_t> anAxialScale (static_cast<Elem_t> (myAxialScale.X()),
+ static_cast<Elem_t> (myAxialScale.Y()),
+ static_cast<Elem_t> (myAxialScale.Z()));
- Graphic3d_Vec3 anUp ((Standard_ShortReal) myUp.X(),
- (Standard_ShortReal) myUp.Y(),
- (Standard_ShortReal) myUp.Z());
+ LookOrientation (anEye, aCenter, anUp, anAxialScale, *theMatrices.Orientation);
- Graphic3d_Vec3 anAxialScale ((Standard_ShortReal) myAxialScale.X(),
- (Standard_ShortReal) myAxialScale.Y(),
- (Standard_ShortReal) myAxialScale.Z());
+ return theMatrices; // for inline accessors
+}
- LookOrientation (anEye, aCenter, anUp, anAxialScale, myOrientation);
+// =======================================================================
+// function : InvalidateProjection
+// purpose :
+// =======================================================================
+void Graphic3d_Camera::InvalidateProjection()
+{
+ myMatricesD.ResetProjection();
+ myMatricesF.ResetProjection();
+ myProjectionState = (Standard_Size)Standard_Atomic_Increment (&THE_STATE_COUNTER);
+}
- // Update orthogonalized Up vector
- myUp = gp_Dir (anUp.x(), anUp.y(), anUp.z());
+// =======================================================================
+// function : InvalidateOrientation
+// purpose :
+// =======================================================================
+void Graphic3d_Camera::InvalidateOrientation()
+{
+ myMatricesD.ResetOrientation();
+ myMatricesF.ResetOrientation();
+ myOrientationState = (Standard_Size)Standard_Atomic_Increment (&THE_STATE_COUNTER);
}
// =======================================================================
// function : OrthoProj
// purpose :
// =======================================================================
-void Graphic3d_Camera::OrthoProj (const Standard_ShortReal theLeft,
- const Standard_ShortReal theRight,
- const Standard_ShortReal theBottom,
- const Standard_ShortReal theTop,
- const Standard_ShortReal theNear,
- const Standard_ShortReal theFar,
- const Standard_ShortReal theShiftX,
- const Standard_ShortReal theShiftY,
- Graphic3d_Mat4& theOutMx)
+template <typename Elem_t>
+void Graphic3d_Camera::OrthoProj (const Elem_t theLeft,
+ const Elem_t theRight,
+ const Elem_t theBottom,
+ const Elem_t theTop,
+ const Elem_t theNear,
+ const Elem_t theFar,
+ NCollection_Mat4<Elem_t>& theOutMx)
{
// row 0
- theOutMx.ChangeValue (0, 0) = 2.0f / (theRight - theLeft);
- theOutMx.ChangeValue (0, 1) = 0.0f;
- theOutMx.ChangeValue (0, 2) = 0.0f;
+ theOutMx.ChangeValue (0, 0) = Elem_t (2.0) / (theRight - theLeft);
+ theOutMx.ChangeValue (0, 1) = Elem_t (0.0);
+ theOutMx.ChangeValue (0, 2) = Elem_t (0.0);
theOutMx.ChangeValue (0, 3) = - (theRight + theLeft) / (theRight - theLeft);
// row 1
- theOutMx.ChangeValue (1, 0) = 0.0f;
- theOutMx.ChangeValue (1, 1) = 2.0f / (theTop - theBottom);
- theOutMx.ChangeValue (1, 2) = 0.0f;
+ theOutMx.ChangeValue (1, 0) = Elem_t (0.0);
+ theOutMx.ChangeValue (1, 1) = Elem_t (2.0) / (theTop - theBottom);
+ theOutMx.ChangeValue (1, 2) = Elem_t (0.0);
theOutMx.ChangeValue (1, 3) = - (theTop + theBottom) / (theTop - theBottom);
// row 2
- theOutMx.ChangeValue (2, 0) = 0.0f;
- theOutMx.ChangeValue (2, 1) = 0.0f;
- theOutMx.ChangeValue (2, 2) = -2.0f / (theFar - theNear);
+ theOutMx.ChangeValue (2, 0) = Elem_t (0.0);
+ theOutMx.ChangeValue (2, 1) = Elem_t (0.0);
+ theOutMx.ChangeValue (2, 2) = Elem_t (-2.0) / (theFar - theNear);
theOutMx.ChangeValue (2, 3) = - (theFar + theNear) / (theFar - theNear);
// row 3
- theOutMx.ChangeValue (3, 0) = 0.0f;
- theOutMx.ChangeValue (3, 1) = 0.0f;
- theOutMx.ChangeValue (3, 2) = 0.0f;
- theOutMx.ChangeValue (3, 3) = 1.0f;
-
- Graphic3d_Mat4 aViewportShift;
- aViewportShift.ChangeValue (0, 3) = theShiftX;
- aViewportShift.ChangeValue (1, 3) = theShiftY;
-
- theOutMx.Multiply (aViewportShift);
+ theOutMx.ChangeValue (3, 0) = Elem_t (0.0);
+ theOutMx.ChangeValue (3, 1) = Elem_t (0.0);
+ theOutMx.ChangeValue (3, 2) = Elem_t (0.0);
+ theOutMx.ChangeValue (3, 3) = Elem_t (1.0);
}
// =======================================================================
// function : PerspectiveProj
// purpose :
// =======================================================================
-void Graphic3d_Camera::PerspectiveProj (const Standard_ShortReal theLeft,
- const Standard_ShortReal theRight,
- const Standard_ShortReal theBottom,
- const Standard_ShortReal theTop,
- const Standard_ShortReal theNear,
- const Standard_ShortReal theFar,
- const Standard_ShortReal theShiftX,
- const Standard_ShortReal theShiftY,
- Graphic3d_Mat4& theOutMx)
+template <typename Elem_t>
+void Graphic3d_Camera::PerspectiveProj (const Elem_t theLeft,
+ const Elem_t theRight,
+ const Elem_t theBottom,
+ const Elem_t theTop,
+ const Elem_t theNear,
+ const Elem_t theFar,
+ NCollection_Mat4<Elem_t>& theOutMx)
{
// column 0
- theOutMx.ChangeValue (0, 0) = (2.0f * theNear) / (theRight - theLeft);
- theOutMx.ChangeValue (1, 0) = 0.0f;
- theOutMx.ChangeValue (2, 0) = 0.0f;
- theOutMx.ChangeValue (3, 0) = 0.0f;
+ theOutMx.ChangeValue (0, 0) = (Elem_t (2.0) * theNear) / (theRight - theLeft);
+ theOutMx.ChangeValue (1, 0) = Elem_t (0.0);
+ theOutMx.ChangeValue (2, 0) = Elem_t (0.0);
+ theOutMx.ChangeValue (3, 0) = Elem_t (0.0);
// column 1
- theOutMx.ChangeValue (0, 1) = 0.0f;
- theOutMx.ChangeValue (1, 1) = (2.0f * theNear) / (theTop - theBottom);
- theOutMx.ChangeValue (2, 1) = 0.0f;
- theOutMx.ChangeValue (3, 1) = 0.0f;
+ theOutMx.ChangeValue (0, 1) = Elem_t (0.0);
+ theOutMx.ChangeValue (1, 1) = (Elem_t (2.0) * theNear) / (theTop - theBottom);
+ theOutMx.ChangeValue (2, 1) = Elem_t (0.0);
+ theOutMx.ChangeValue (3, 1) = Elem_t (0.0);
// column 2
theOutMx.ChangeValue (0, 2) = (theRight + theLeft) / (theRight - theLeft);
theOutMx.ChangeValue (1, 2) = (theTop + theBottom) / (theTop - theBottom);
theOutMx.ChangeValue (2, 2) = -(theFar + theNear) / (theFar - theNear);
- theOutMx.ChangeValue (3, 2) = -1.0f;
+ theOutMx.ChangeValue (3, 2) = Elem_t (-1.0);
// column 3
- theOutMx.ChangeValue (0, 3) = 0.0f;
- theOutMx.ChangeValue (1, 3) = 0.0f;
- theOutMx.ChangeValue (2, 3) = -(2.0f * theFar * theNear) / (theFar - theNear);
- theOutMx.ChangeValue (3, 3) = 0.0f;
-
- Graphic3d_Mat4 aViewportShift;
- aViewportShift.ChangeValue (0, 3) = theShiftX;
- aViewportShift.ChangeValue (1, 3) = theShiftY;
-
- theOutMx.Multiply (aViewportShift);
+ theOutMx.ChangeValue (0, 3) = Elem_t (0.0);
+ theOutMx.ChangeValue (1, 3) = Elem_t (0.0);
+ theOutMx.ChangeValue (2, 3) = -(Elem_t (2.0) * theFar * theNear) / (theFar - theNear);
+ theOutMx.ChangeValue (3, 3) = Elem_t (0.0);
}
// =======================================================================
// function : StereoEyeProj
// purpose :
// =======================================================================
-void Graphic3d_Camera::StereoEyeProj (const Standard_ShortReal theLeft,
- const Standard_ShortReal theRight,
- const Standard_ShortReal theBottom,
- const Standard_ShortReal theTop,
- const Standard_ShortReal theNear,
- const Standard_ShortReal theFar,
- const Standard_ShortReal theIOD,
- const Standard_ShortReal theZFocus,
- const Standard_ShortReal theShiftX,
- const Standard_ShortReal theShiftY,
- const Standard_Boolean theIsLeft,
- Graphic3d_Mat4& theOutMx)
+template <typename Elem_t>
+void Graphic3d_Camera::StereoEyeProj (const Elem_t theLeft,
+ const Elem_t theRight,
+ const Elem_t theBottom,
+ const Elem_t theTop,
+ const Elem_t theNear,
+ const Elem_t theFar,
+ const Elem_t theIOD,
+ const Elem_t theZFocus,
+ const Standard_Boolean theIsLeft,
+ NCollection_Mat4<Elem_t>& theOutMx)
{
- Standard_ShortReal aDx = theIsLeft ? ( 0.5f * theIOD) : (-0.5f * theIOD);
- Standard_ShortReal aDXStereoShift = aDx * theNear / theZFocus;
+ Elem_t aDx = theIsLeft ? Elem_t (0.5) * theIOD : Elem_t (-0.5) * theIOD;
+ Elem_t aDXStereoShift = aDx * theNear / theZFocus;
// construct eye projection matrix
PerspectiveProj (theLeft + aDXStereoShift,
theRight + aDXStereoShift,
theBottom, theTop, theNear, theFar,
- theShiftX, theShiftY,
theOutMx);
- if (theIOD != 0.0f)
+ if (theIOD != Elem_t (0.0))
{
// X translation to cancel parallax
- theOutMx.Translate (Graphic3d_Vec3 (aDx, 0.0f, 0.0f));
+ theOutMx.Translate (NCollection_Vec3<Elem_t> (aDx, Elem_t (0.0), Elem_t (0.0)));
}
}
// function : LookOrientation
// purpose :
// =======================================================================
-void Graphic3d_Camera::LookOrientation (const Graphic3d_Vec3& theEye,
- const Graphic3d_Vec3& theLookAt,
- Graphic3d_Vec3& theUpDir,
- const Graphic3d_Vec3& theAxialScale,
- Graphic3d_Mat4& theOutMx)
+template <typename Elem_t>
+void Graphic3d_Camera::LookOrientation (const NCollection_Vec3<Elem_t>& theEye,
+ const NCollection_Vec3<Elem_t>& theLookAt,
+ const NCollection_Vec3<Elem_t>& theUpDir,
+ const NCollection_Vec3<Elem_t>& theAxialScale,
+ NCollection_Mat4<Elem_t>& theOutMx)
{
- Graphic3d_Vec3 aForward = theLookAt - theEye;
+ NCollection_Vec3<Elem_t> aForward = theLookAt - theEye;
aForward.Normalize();
// side = forward x up
- Graphic3d_Vec3 aSide = Graphic3d_Vec3::Cross (aForward, theUpDir);
+ NCollection_Vec3<Elem_t> aSide = NCollection_Vec3<Elem_t>::Cross (aForward, theUpDir);
aSide.Normalize();
// recompute up as: up = side x forward
- Graphic3d_Vec3 anUp = Graphic3d_Vec3::Cross (aSide, aForward);
- theUpDir = anUp;
+ NCollection_Vec3<Elem_t> anUp = NCollection_Vec3<Elem_t>::Cross (aSide, aForward);
- Graphic3d_Mat4 aLookMx;
+ NCollection_Mat4<Elem_t> aLookMx;
aLookMx.SetRow (0, aSide);
aLookMx.SetRow (1, anUp);
aLookMx.SetRow (2, -aForward);
- theOutMx.InitIdentity();
- theOutMx.Multiply (aLookMx);
-
+ theOutMx.InitIdentity();
+ theOutMx.Multiply (aLookMx);
theOutMx.Translate (-theEye);
- Graphic3d_Mat4 anAxialScaleMx;
+ NCollection_Mat4<Elem_t> anAxialScaleMx;
anAxialScaleMx.ChangeValue (0, 0) = theAxialScale.x();
anAxialScaleMx.ChangeValue (1, 1) = theAxialScale.y();
anAxialScaleMx.ChangeValue (2, 2) = theAxialScale.z();
#ifndef _Graphic3d_Camera_HeaderFile
#define _Graphic3d_Camera_HeaderFile
+#include <Graphic3d_Mat4d.hxx>
#include <Graphic3d_Mat4.hxx>
#include <Graphic3d_Vec3.hxx>
+#include <NCollection_Handle.hxx>
+
#include <gp_Dir.hxx>
#include <gp_Pnt.hxx>
//! and orientation properties of 3D view.
class Graphic3d_Camera : public Standard_Transient
{
+private:
+
+ //! Template container for cached matrices or Real/ShortReal types.
+ template<typename Elem_t>
+ struct TransformMatrices
+ {
+ void InitOrientation()
+ {
+ Orientation = new NCollection_Mat4<Elem_t>();
+ }
+
+ void InitProjection()
+ {
+ MProjection = new NCollection_Mat4<Elem_t>();
+ LProjection = new NCollection_Mat4<Elem_t>();
+ RProjection = new NCollection_Mat4<Elem_t>();
+ }
+
+ void ResetOrientation()
+ {
+ Orientation.Nullify();
+ }
+
+ void ResetProjection()
+ {
+ MProjection.Nullify();
+ LProjection.Nullify();
+ RProjection.Nullify();
+ }
+
+ Standard_Boolean IsOrientationValid()
+ {
+ return !Orientation.IsNull();
+ }
+
+ Standard_Boolean IsProjectionValid()
+ {
+ return !MProjection.IsNull() &&
+ !LProjection.IsNull() &&
+ !RProjection.IsNull();
+ }
+
+ NCollection_Handle< NCollection_Mat4<Elem_t> > Orientation;
+ NCollection_Handle< NCollection_Mat4<Elem_t> > MProjection;
+ NCollection_Handle< NCollection_Mat4<Elem_t> > LProjection;
+ NCollection_Handle< NCollection_Mat4<Elem_t> > RProjection;
+ };
public:
//! Initializes camera with the following properties:
//! Eye (0, 0, -2); Center (0, 0, 0); Up (0, 1, 0);
//! Type (Orthographic); FOVy (45); Scale (1000); IsStereo(false);
- //! ZNear (0.1); ZFar (100); Aspect(1);
+ //! ZNear (0.001); ZFar (3000.0); Aspect(1);
//! ZFocus(1.0); ZFocusType(Relative); IOD(0.05); IODType(Relative)
Standard_EXPORT Graphic3d_Camera();
//! @param theOther [in] the camera to copy from.
Standard_EXPORT void Copy (const Handle(Graphic3d_Camera)& theOther);
- //! Returns modification state of camera projection matrix
- Standard_Size ProjectionState() const
- {
- return myProjectionState;
- }
-
- //! Returns modification state of camera model-view matrix
- Standard_Size ModelViewState() const
- {
- return myOrientationState;
- }
+//! @name Public camera properties
+public:
//! Sets camera Eye position.
//! @param theEye [in] the location of camera's Eye.
return myCenter;
}
- //! Sets camera Up direction vector.
+ //! Sets camera Up direction vector, orthogonal to camera direction.
//! @param theUp [in] the Up direction vector.
Standard_EXPORT void SetUp (const gp_Dir& theUp);
+ //! Orthogonalize up direction vector.
+ Standard_EXPORT void OrthogonalizeUp();
+
+ //! Return a copy of orthogonalized up direction vector.
+ Standard_EXPORT gp_Dir OrthogonalizedUp() const;
+
//! Get camera Up direction vector.
//! @return Camera's Up direction vector.
const gp_Dir& Up() const
return myUp;
}
- //! Set camera projection shift vector.<br>
- //! Used for compatibility with older view mechanics. Applied after
- //! view transform and before projection step (P * Shift * V).
- //! @param theProjShift [in] the projection shift vector.
- Standard_EXPORT void SetProjectionShift (const gp_Pnt& theProjShift);
-
- //! Get camera projection shift vector.
- //! @return Camera's projection shift vector.
- const gp_Pnt& ProjectionShift() const
- {
- return myProjectionShift;
- }
-
//! Set camera axial scale.<br>
//! @param theAxialScale [in] the axial scale vector.
- Standard_EXPORT void SetAxialScale (const gp_Pnt& theAxialScale);
+ Standard_EXPORT void SetAxialScale (const gp_XYZ& theAxialScale);
//! Get camera axial scale.
//! @return Camera's axial scale.
- const gp_Pnt& AxialScale() const
+ const gp_XYZ& AxialScale() const
{
return myAxialScale;
}
Standard_EXPORT Standard_Real Scale() const;
//! Change camera projection type.
- //! While switching between perspective and ortho projection types
- //! ZNear and ZFar value conversion is performed due to different
- //! coordinate systems (made for compatibility, to be improved..)
+ //! When switching to perspective projection from orthographic one,
+ //! the ZNear and ZFar are reset to default values (0.001, 3000.0)
+ //! if less than 0.0.
//! @param theProjectionType [in] the camera projection type.
Standard_EXPORT void SetProjectionType (const Projection theProjection);
return myFOVy;
}
- //! Change the Near Z-clipping plane position.
+ //! Change the Near and Far Z-clipping plane positions.
+ //! For orthographic projection, theZNear, theZFar can be negative or positive.
+ //! For perspective projection, only positive values are allowed.
+ //! Program error exception is raised if non-positive values are
+ //! specified for perspective projection or theZNear >= theZFar.
//! @param theZNear [in] the distance of the plane from the Eye.
- Standard_EXPORT void SetZNear (const Standard_Real theZNear);
+ //! @param theZFar [in] the distance of the plane from the Eye.
+ Standard_EXPORT void SetZRange (const Standard_Real theZNear, const Standard_Real theZFar);
//! Get the Near Z-clipping plane position.
//! @return the distance of the plane from the Eye.
return myZNear;
}
- //! Change the Far Z-clipping plane position.
- //! @param theZFar [in] the distance of the plane from the Eye.
- Standard_EXPORT void SetZFar (const Standard_Real theZFar);
-
//! Get the Far Z-clipping plane position.
//! @return the distance of the plane from the Eye.
Standard_Real ZFar() const
return myIODType;
}
- //! Get orientation matrix.
- //! @return camera orientation matrix.
- const Graphic3d_Mat4& OrientationMatrix() const
- {
- return myOrientation;
- }
-
- //! Get monographic or middle point projection matrix used for monographic
- //! rendering and for point projection / unprojection.
- //! @return monographic projection matrix.
- const Graphic3d_Mat4& ProjectionMatrix() const
- {
- return myMProjection;
- }
-
- //! @return stereographic matrix computed for left eye. Please note
- //! that this method is used for rendering for <i>Projection_Stereo</i>.
- const Graphic3d_Mat4& ProjectionStereoLeft() const
- {
- return myLProjection;
- }
-
- //! @return stereographic matrix computed for right eye. Please note
- //! that this method is used for rendering for <i>Projection_Stereo</i>.
- const Graphic3d_Mat4& ProjectionStereoRight() const
- {
- return myRProjection;
- }
-
-public:
-
- //! Orthogonalize up direction vector.
- Standard_EXPORT void OrthogonalizeUp();
-
- //! Suspend internal data recalculation when changing set of camera
- //! properties. This method is optional and can be used for pieces
- //! of code which are critical to performance. Note that the method
- //! supports stacked calls (carried out by internal counter).
- Standard_EXPORT void BeginUpdate();
-
- //! Unset lock set by <i>BeginUpdate</i> and invoke data recalculation when
- //! there are no more locks left. This method is optional and can be used
- //! for pieces of code which are critical to performance.
- Standard_EXPORT void EndUpdate();
-
- // Basic camera operations
+//! @name Basic camera operations
public:
//! Transform orientation components of the camera:
//! Calculate view plane size at center (target) point
//! and distance between ZFar and ZNear planes.
//! @return values in form of gp_Pnt (Width, Height, Depth).
- Standard_EXPORT gp_Pnt ViewDimensions () const;
-
- //! Calculate view plane dimensions with projection shift applied.
- //! Analog to old ViewMapping.WindowLimit() function.
- //! @param theUMin [out] the u component of min corner of the rect.
- //! @param theVMin [out] the v component of min corner of the rect.
- //! @param theUMax [out] the u component of max corner of the rect.
- //! @param theVMax [out] the v component of max corner of the rect.
- Standard_EXPORT void WindowLimit (Standard_Real& theUMin,
- Standard_Real& theVMin,
- Standard_Real& theUMax,
- Standard_Real& theVMax) const;
-
- // Projection methods
+ Standard_EXPORT gp_XYZ ViewDimensions() const;
+
+ //! Calculate WCS frustum planes for the camera projection volume.
+ //! Frustum is a convex volume determined by six planes directing
+ //! inwards.
+ //! The frustum planes are usually used as inputs for camera algorithms.
+ //! Thus, if any changes to projection matrix calculation are necessary,
+ //! the frustum planes calculation should be also touched.
+ //! @param theLeft [out] the frustum plane for left side of view.
+ //! @param theRight [out] the frustum plane for right side of view.
+ //! @param theBottom [out] the frustum plane for bottom side of view.
+ //! @param theTop [out] the frustum plane for top side of view.
+ //! @param theNear [out] the frustum plane for near side of view.
+ //! @param theFar [out] the frustum plane for far side of view.
+ Standard_EXPORT void Frustum (gp_Pln& theLeft,
+ gp_Pln& theRight,
+ gp_Pln& theBottom,
+ gp_Pln& theTop,
+ gp_Pln& theNear,
+ gp_Pln& theFar) const;
+
+//! @name Projection methods
public:
//! Project point from world coordinate space to
//! @return point in WCS.
Standard_EXPORT gp_Pnt ConvertView2World (const gp_Pnt& thePnt) const;
- // managing projection and orientation cache:
+//! @name Camera modification state
public:
- //! Compute and cache projection matrices.
- void UpdateProjection();
+ //! Returns modification state of camera projection matrix
+ Standard_Size ProjectionState() const
+ {
+ return myProjectionState;
+ }
+
+ //! Returns modification state of camera model-view matrix
+ Standard_Size ModelViewState() const
+ {
+ return myOrientationState;
+ }
+
+//! @name Lazily-computed orientation and projection matrices derived from camera parameters
+public:
- //! Compute and cache orientation matrix.
- void UpdateOrientation();
+ //! Get orientation matrix.
+ //! @return camera orientation matrix.
+ Standard_EXPORT const Graphic3d_Mat4d& OrientationMatrix() const;
+
+ //! Get orientation matrix of Standard_ShortReal precision.
+ //! @return camera orientation matrix.
+ Standard_EXPORT const Graphic3d_Mat4& OrientationMatrixF() const;
+
+ //! Get monographic or middle point projection matrix used for monographic
+ //! rendering and for point projection / unprojection.
+ //! @return monographic projection matrix.
+ Standard_EXPORT const Graphic3d_Mat4d& ProjectionMatrix() const;
+
+ //! Get monographic or middle point projection matrix of Standard_ShortReal precision used for monographic
+ //! rendering and for point projection / unprojection.
+ //! @return monographic projection matrix.
+ Standard_EXPORT const Graphic3d_Mat4& ProjectionMatrixF() const;
+
+ //! @return stereographic matrix computed for left eye. Please note
+ //! that this method is used for rendering for <i>Projection_Stereo</i>.
+ Standard_EXPORT const Graphic3d_Mat4d& ProjectionStereoLeft() const;
+
+ //! @return stereographic matrix of Standard_ShortReal precision computed for left eye.
+ //! Please note that this method is used for rendering for <i>Projection_Stereo</i>.
+ Standard_EXPORT const Graphic3d_Mat4& ProjectionStereoLeftF() const;
+
+ //! @return stereographic matrix computed for right eye. Please note
+ //! that this method is used for rendering for <i>Projection_Stereo</i>.
+ Standard_EXPORT const Graphic3d_Mat4d& ProjectionStereoRight() const;
+
+ //! @return stereographic matrix of Standard_ShortReal precision computed for right eye.
+ //! Please note that this method is used for rendering for <i>Projection_Stereo</i>.
+ Standard_EXPORT const Graphic3d_Mat4& ProjectionStereoRightF() const;
+
+//! @name Managing projection and orientation cache
+private:
+
+ //! Compute projection matrices.
+ //! @param theMatrices [in] the matrices data container.
+ template <typename Elem_t>
+ Standard_EXPORT
+ TransformMatrices<Elem_t>& UpdateProjection (TransformMatrices<Elem_t>& theMatrices) const;
+
+ //! Compute orientation matrix.
+ //! @param theMatrices [in] the matrices data container.
+ template <typename Elem_t>
+ Standard_EXPORT
+ TransformMatrices<Elem_t>& UpdateOrientation (TransformMatrices<Elem_t>& theMatrices) const;
+
+ //! Invalidate state of projection matrix.
+ //! The matrix will be updated on request.
+ void InvalidateProjection();
+
+ //! Invalidate orientation matrix.
+ //! The matrix will be updated on request.
+ void InvalidateOrientation();
private:
//! @param theTop [in] the top mapping (clipping) coordinate.
//! @param theNear [in] the near mapping (clipping) coordinate.
//! @param theFar [in] the far mapping (clipping) coordinate.
- //! @param theShiftX [in] the shift x coordinate.
- //! @param theShiftY [in] the shift y coordinate.
//! @param theOutMx [out] the projection matrix.
+ template <typename Elem_t>
static void
- OrthoProj (const Standard_ShortReal theLeft,
- const Standard_ShortReal theRight,
- const Standard_ShortReal theBottom,
- const Standard_ShortReal theTop,
- const Standard_ShortReal theNear,
- const Standard_ShortReal theFar,
- const Standard_ShortReal theShiftX,
- const Standard_ShortReal theShiftY,
- Graphic3d_Mat4& theOutMx);
+ OrthoProj (const Elem_t theLeft,
+ const Elem_t theRight,
+ const Elem_t theBottom,
+ const Elem_t theTop,
+ const Elem_t theNear,
+ const Elem_t theFar,
+ NCollection_Mat4<Elem_t>& theOutMx);
//! Compose perspective projection matrix for
//! the passed camera volume mapping.
//! @param theTop [in] the top mapping (clipping) coordinate.
//! @param theNear [in] the near mapping (clipping) coordinate.
//! @param theFar [in] the far mapping (clipping) coordinate.
- //! @param theShiftX [in] the shift x coordinate.
- //! @param theShiftY [in] the shift y coordinate.
//! @param theOutMx [out] the projection matrix.
+ template <typename Elem_t>
static void
- PerspectiveProj (const Standard_ShortReal theLeft,
- const Standard_ShortReal theRight,
- const Standard_ShortReal theBottom,
- const Standard_ShortReal theTop,
- const Standard_ShortReal theNear,
- const Standard_ShortReal theFar,
- const Standard_ShortReal theShiftX,
- const Standard_ShortReal theShiftY,
- Graphic3d_Mat4& theOutMx);
+ PerspectiveProj (const Elem_t theLeft,
+ const Elem_t theRight,
+ const Elem_t theBottom,
+ const Elem_t theTop,
+ const Elem_t theNear,
+ const Elem_t theFar,
+ NCollection_Mat4<Elem_t>& theOutMx);
//! Compose projection matrix for L/R stereo eyes.
//! @param theLeft [in] the left mapping (clipping) coordinate.
//! @param theIOD [in] the Intraocular distance.
//! @param theZFocus [in] the z coordinate of off-axis
//! projection plane with zero parallax.
- //! @param theShiftX [in] the shift x coordinate.
- //! @param theShiftY [in] the shift y coordinate.
//! @param theIsLeft [in] boolean flag to choose between L/R eyes.
//! @param theOutMx [out] the projection matrix.
+ template <typename Elem_t>
static void
- StereoEyeProj (const Standard_ShortReal theLeft,
- const Standard_ShortReal theRight,
- const Standard_ShortReal theBottom,
- const Standard_ShortReal theTop,
- const Standard_ShortReal theNear,
- const Standard_ShortReal theFar,
- const Standard_ShortReal theIOD,
- const Standard_ShortReal theZFocus,
- const Standard_ShortReal theShiftX,
- const Standard_ShortReal theShiftY,
- const Standard_Boolean theIsLeft,
- Graphic3d_Mat4& theOutMx);
+ StereoEyeProj (const Elem_t theLeft,
+ const Elem_t theRight,
+ const Elem_t theBottom,
+ const Elem_t theTop,
+ const Elem_t theNear,
+ const Elem_t theFar,
+ const Elem_t theIOD,
+ const Elem_t theZFocus,
+ const Standard_Boolean theIsLeft,
+ NCollection_Mat4<Elem_t>& theOutMx);
//! Construct "look at" orientation transformation.
//! Reference point differs for perspective and ortho modes
//! @param theUpDir [in] the up direction vector.
//! @param theAxialScale [in] the axial scale vector.
//! @param theOutMx [in/out] the orientation matrix.
+ template <typename Elem_t>
static void
- LookOrientation (const Graphic3d_Vec3& theEye,
- const Graphic3d_Vec3& theLookAt,
- Graphic3d_Vec3& theUpDir,
- const Graphic3d_Vec3& theAxialScale,
- Graphic3d_Mat4& theOutMx);
+ LookOrientation (const NCollection_Vec3<Elem_t>& theEye,
+ const NCollection_Vec3<Elem_t>& theLookAt,
+ const NCollection_Vec3<Elem_t>& theUpDir,
+ const NCollection_Vec3<Elem_t>& theAxialScale,
+ NCollection_Mat4<Elem_t>& theOutMx);
private:
gp_Pnt myEye; //!< Camera eye position.
gp_Pnt myCenter; //!< Camera center.
- gp_Pnt myProjectionShift; //!< Camera projection shift for compatibility.
- gp_Pnt myAxialScale; //!< Camera axial scale.
+ gp_XYZ myAxialScale; //!< World axial scale.
- Projection myProjType; //!< Projection type used for rendering.
- Standard_Real myFOVy; //!< Field Of View in y axis.
- Standard_Real myZNear; //!< Distance to near clipping plane.
- Standard_Real myZFar; //!< Distance to far clipping plane.
- Standard_Real myAspect; //!< Width to height display ratio.
+ Projection myProjType; //!< Projection type used for rendering.
+ Standard_Real myFOVy; //!< Field Of View in y axis.
+ Standard_Real myZNear; //!< Distance to near clipping plane.
+ Standard_Real myZFar; //!< Distance to far clipping plane.
+ Standard_Real myAspect; //!< Width to height display ratio.
Standard_Real myScale; //!< Specifies parallel scale for orthographic projection.
Standard_Real myZFocus; //!< Stereographic focus value.
Standard_Real myIOD; //!< Intraocular distance value.
IODType myIODType; //!< Intraocular distance definition type.
- //! Number of locks set up on internal data recalculation by
- //! <i>(BeginUpdate, EndUpdate)</i> pairs. The counter provides effective
- //! use of the mentioned methods when camera properties are modified
- //! in stacked functions.
- Standard_Integer myNbUpdateLocks;
-
- Graphic3d_Mat4 myOrientation; //!< Camera orientation matrix.
- Graphic3d_Mat4 myMProjection; //!< Monographic projection matrix.
- Graphic3d_Mat4 myLProjection; //!< Projection matrix for left eye.
- Graphic3d_Mat4 myRProjection; //!< Projection matrix for right eye.
+ mutable TransformMatrices<Standard_Real> myMatricesD;
+ mutable TransformMatrices<Standard_ShortReal> myMatricesF;
- Standard_Size myProjectionState;
- Standard_Size myOrientationState;
+ mutable Standard_Size myProjectionState;
+ mutable Standard_Size myOrientationState;
public:
#include <Standard_TypeDef.hxx>
typedef NCollection_Mat4<Standard_ShortReal> Graphic3d_Mat4;
-typedef NCollection_Mat4<Standard_Real> Graphic3d_Mat4d;
#endif // _Graphic3d_Mat4_HeaderFile
--- /dev/null
+// Copyright (c) 2013 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and / or modify it
+// under the terms of the GNU Lesser General Public version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _Graphic3d_Mat4d_HeaderFile
+#define _Graphic3d_Mat4d_HeaderFile
+
+#include <NCollection_Mat4.hxx>
+#include <Standard_TypeDef.hxx>
+
+typedef NCollection_Mat4<Standard_Real> Graphic3d_Mat4d;
+
+#endif // _Graphic3d_Mat4d_HeaderFile
-- with the highlight method TOHM_COLOR or TOHM_BOUNDBOX.
---Category: Methods to modify the class definition
- SetInfiniteState ( me : mutable;
- AFlag : Boolean from Standard )
- is static;
- ---Level: Internal
- ---Purpose: Modifies the coordinates of the boundary box
- -- of the structure <me>.
- -- if <AFlag> is Standard_True then <me> is infinite and
- -- the MinMaxValues method or the MinMaxCoord method return :
- -- XMin = YMin = ZMin = RealFirst ().
- -- XMax = YMax = ZMax = RealLast ().
- -- By default, <me> is not infinite but empty.
- ---Category: Methods to modify the class definition
+ SetInfiniteState (me : mutable; theToSet : Boolean from Standard) is static;
+ ---Level: Internal
+ ---Purpose: If <theToSet> is Standard_True then <me> is infinite and
+ -- the MinMaxValues method method return :
+ -- theXMin = theYMin = theZMin = RealFirst().
+ -- theXMax = theYMax = theZMax = RealLast().
+ -- By default, <me> is not infinite but empty.
+ ---Category: Methods to modify the class definition
SetDisplayPriority ( me : mutable;
Priority : Integer from Standard )
---Purpose: Returns the current group of graphic attributes used
-- for 3d marker primitives.
- MinMaxValues ( me;
- XMin, YMin, ZMin : out Real from Standard;
- XMax, YMax, ZMax : out Real from Standard )
- is static;
- ---Level: Public
- ---Purpose: Returns the coordinates of the boundary box
- -- of the structure <me>.
- -- Warning: If the structure <me> is empty or infinite then :
- -- XMin = YMin = ZMin = RealFirst ().
- -- XMax = YMax = ZMax = RealLast ().
- ---Category: Inquire methods
+ MinMaxValues (me;
+ theXMin, theYMin, theZMin : out Real from Standard;
+ theXMax, theYMax, theZMax : out Real from Standard;
+ theToIgnoreInfiniteFlag : Boolean from Standard = Standard_False)
+ is static;
+ ---Level: Public
+ ---Purpose: Returns the coordinates of the boundary box of the structure <me>.
+ -- If <theToIgnoreInfiniteFlag> is TRUE, the method returns actual graphical
+ -- boundaries of the Graphic3d_Group components. Otherwise, the
+ -- method returns boundaries taking into account infinite state
+ -- of the structure. This approach generally used for application
+ -- specific fit operation (e.g. fitting the model into screen,
+ -- not taking into accout infinite helper elements).
+ -- Warning: If the structure <me> is empty or infinite then :
+ -- theXMin = theYMin = theZMin = RealFirst ().
+ -- theXMax = theYMax = theZMax = RealLast ().
+ ---Category: Inquire methods
PrimitivesAspect ( me;
CTXL : out AspectLine3d from Graphic3d;
---Purpose: Returns the identification number of the structure <me>.
---Category: Private methods
- MinMaxCoord ( me;
- XMin, YMin, ZMin : out Real from Standard;
- XMax, YMax, ZMax : out Real from Standard )
- is static private;
- ---Level: Internal
- ---Purpose: Returns the extreme coordinates found in the
- -- structure <me>.
- -- Warning: If the structure <me> is empty or infinite then :
- -- XMin = YMin = ZMin = RealFirst ().
- -- XMax = YMax = ZMax = RealLast ().
- ---Category: Private methods
+ MinMaxCoord (me;
+ theXMin, theYMin, theZMin : out Real from Standard;
+ theXMax, theYMax, theZMax : out Real from Standard)
+ is static private;
+ ---Level: Internal
+ ---Purpose: Returns the extreme coordinates found in the structure <me>.
+ -- Warning: If the structure <me> is empty or infinite then :
+ -- theXMin = theYMin = theZMin = RealFirst().
+ -- theXMax = theYMax = theZMax = RealLast().
+ ---Category: Private methods
+
+ MinMaxCoordWithDescendants (me;
+ theXMin, theYMin, theZMin : out Real from Standard;
+ theXMax, theYMax, theZMax : out Real from Standard)
+ is static private;
+ ---Level: Internal
+ ---Purpose: Returns the extreme coordinates found in the structure <me>
+ -- and its descendants with transformation applied.
+ -- Warning: If the structure <me> is empty or infinite then :
+ -- theXMin = theYMin = theZMin = RealFirst().
+ -- theXMax = theYMax = theZMax = RealLast().
+ ---Category: Private methods
Plot ( me : mutable;
aPlotter : Plotter from Graphic3d )
---Purpose: Transforms <Coord> with the transformation <ATrsf>.
---Category: Private methods
+ TransformBoundaries (myclass;
+ theTrsf : Array2OfReal from TColStd;
+ theXMin, theYMin, theZMin : in out Real from Standard;
+ theXMax, theYMax, theZMax : in out Real from Standard)
+ is protected;
+ ---Level: Internal
+ ---Purpose: Transforms boundaries with <theTrsf> transformation.
+ ---Category: Private methods
+
Update ( me )
is static private;
---Level: Internal
}
-void Graphic3d_Structure::SetInfiniteState (const Standard_Boolean AValue) {
-
- MyCStructure.IsInfinite = AValue ? 1:0;
-
+//=============================================================================
+//function : SetInfiniteState
+//purpose :
+//=============================================================================
+void Graphic3d_Structure::SetInfiniteState (const Standard_Boolean theToSet)
+{
+ MyCStructure.IsInfinite = theToSet ? 1 : 0;
}
Standard_Boolean Graphic3d_Structure::IsInfinite () const {
}
-void Graphic3d_Structure::MinMaxValues (Standard_Real& XMin, Standard_Real& YMin, Standard_Real& ZMin, Standard_Real& XMax, Standard_Real& YMax, Standard_Real& ZMax) const {
-
- Standard_Real RL = RealLast ();
- Standard_Real RF = RealFirst ();
+//=============================================================================
+//function : MinMaxValues
+//purpose :
+//=============================================================================
+void Graphic3d_Structure::MinMaxValues (Standard_Real& theXMin,
+ Standard_Real& theYMin,
+ Standard_Real& theZMin,
+ Standard_Real& theXMax,
+ Standard_Real& theYMax,
+ Standard_Real& theZMax,
+ const Standard_Boolean theToIgnoreInfiniteFlag) const
+{
+ if (IsEmpty())
+ {
+ return;
+ }
- Standard_Real XTMin, YTMin, ZTMin, XTMax, YTMax, ZTMax, U, V, W;
+ Standard_Real aXMin, aYMin, aZMin, aXMax, aYMax, aZMax;
+ MinMaxCoord (aXMin, aYMin, aZMin, aXMax, aYMax, aZMax);
- MinMaxCoord (XTMin, YTMin, ZTMin, XTMax, YTMax, ZTMax);
- if ((XTMin == RF) && (YTMin == RF) &&
- (ZTMin == RF) && (XTMax == RL) &&
- (YTMax == RL) && (ZTMax == RL)) {
- // Case impossible as it would mean that
- // the structure is empty
- XMin = RF;
- YMin = RF;
- ZMin = RF;
+ // Infinite boundaries corresponding to empty structure or
+ // non-empty structure, without any primitives specified
+ if (aXMin == RealFirst() && aYMin == RealFirst() && aZMin == RealFirst() &&
+ aXMax == RealLast() && aYMax == RealLast() && aZMax == RealLast())
+ {
+ theXMin = RealFirst();
+ theYMin = RealFirst();
+ theZMin = RealFirst();
+ theXMax = RealLast();
+ theYMax = RealLast();
+ theZMax = RealLast();
+ return;
+ }
- XMax = RL;
- YMax = RL;
- ZMax = RL;
+ // Handle flag, which specifies that structure should be considered as infinite
+ if (IsInfinite() && !theToIgnoreInfiniteFlag)
+ {
+ Graphic3d_Vertex aVertexMin (aXMin, aYMin, aZMin);
+ Graphic3d_Vertex aVertexMax (aXMax, aYMax, aZMax);
+ const Standard_Real aDistance = aVertexMin.Distance (aVertexMax);
+
+ // Special case for infinite line:
+ // Bounding borders of infinite line has been
+ // calculated as own point in center of this line
+ if (aDistance >= 500000.0)
+ {
+ theXMin = theXMax = 0.5 * (aXMin + aXMax);
+ theYMin = theYMax = 0.5 * (aYMin + aYMax);
+ theZMin = theZMax = 0.5 * (aZMin + aZMax);
+ return;
}
- else {
- Standard_Integer i, j;
- TColStd_Array2OfReal TheTrsf (0, 3, 0, 3);
- for (i=0; i<=3; i++)
- for (j=0; j<=3; j++)
- TheTrsf (i, j) = MyCStructure.Transformation[i][j];
-
- Graphic3d_Structure::Transforms
- (TheTrsf, XTMin, YTMin, ZTMin, XMin, YMin, ZMin);
- Graphic3d_Structure::Transforms
- (TheTrsf, XTMax, YTMax, ZTMax, XMax, YMax, ZMax);
- Graphic3d_Structure::Transforms
- (TheTrsf, XTMin, YTMin, ZTMax, U, V, W);
- XMin = Min(U,XMin) ; XMax = Max(U,XMax) ;
- YMin = Min(V,YMin) ; YMax = Max(V,YMax) ;
- ZMin = Min(W,ZMin) ; ZMax = Max(W,ZMax) ;
- Graphic3d_Structure::Transforms
- (TheTrsf, XTMax, YTMin, ZTMax, U, V, W);
- XMin = Min(U,XMin) ; XMax = Max(U,XMax) ;
- YMin = Min(V,YMin) ; YMax = Max(V,YMax) ;
- ZMin = Min(W,ZMin) ; ZMax = Max(W,ZMax) ;
- Graphic3d_Structure::Transforms
- (TheTrsf, XTMax, YTMin, ZTMin, U, V, W);
- XMin = Min(U,XMin) ; XMax = Max(U,XMax) ;
- YMin = Min(V,YMin) ; YMax = Max(V,YMax) ;
- ZMin = Min(W,ZMin) ; ZMax = Max(W,ZMax) ;
- Graphic3d_Structure::Transforms
- (TheTrsf, XTMax, YTMax, ZTMin, U, V, W);
- XMin = Min(U,XMin) ; XMax = Max(U,XMax) ;
- YMin = Min(V,YMin) ; YMax = Max(V,YMax) ;
- ZMin = Min(W,ZMin) ; ZMax = Max(W,ZMax) ;
- Graphic3d_Structure::Transforms
- (TheTrsf, XTMin, YTMax, ZTMax, U, V, W);
- XMin = Min(U,XMin) ; XMax = Max(U,XMax) ;
- YMin = Min(V,YMin) ; YMax = Max(V,YMax) ;
- ZMin = Min(W,ZMin) ; ZMax = Max(W,ZMax) ;
- Graphic3d_Structure::Transforms
- (TheTrsf, XTMin, YTMax, ZTMin, U, V, W);
- XMin = Min(U,XMin) ; XMax = Max(U,XMax) ;
- YMin = Min(V,YMin) ; YMax = Max(V,YMax) ;
- ZMin = Min(W,ZMin) ; ZMax = Max(W,ZMax) ;
+ theXMin = RealFirst();
+ theYMin = RealFirst();
+ theZMin = RealFirst();
+ theXMax = RealLast();
+ theYMax = RealLast();
+ theZMax = RealLast();
+ return;
+ }
+
+ // Min-Max values of the descendant structures
+ Standard_Real aDescXMin = RealLast();
+ Standard_Real aDescYMin = RealLast();
+ Standard_Real aDescZMin = RealLast();
+ Standard_Real aDescXMax = RealFirst();
+ Standard_Real aDescYMax = RealFirst();
+ Standard_Real aDescZMax = RealFirst();
+ for (Standard_Integer aStructIt = 1; aStructIt <= MyDescendants.Length(); aStructIt++)
+ {
+ Graphic3d_Structure* aStructure = (Graphic3d_Structure*) MyDescendants.Value (aStructIt);
+ aStructure->MinMaxValues (aXMin, aYMin, aZMin, aXMax, aYMax, aZMax);
+ aDescXMin = Min (aXMin, aDescXMin);
+ aDescYMin = Min (aYMin, aDescYMin);
+ aDescZMin = Min (aZMin, aDescZMin);
+ aDescXMax = Max (aXMax, aDescXMax);
+ aDescYMax = Max (aYMax, aDescYMax);
+ aDescZMax = Max (aZMax, aDescZMax);
+ }
+
+ if (aDescXMin != RealLast() || aDescYMin != RealLast() ||
+ aDescZMin != RealLast() || aDescXMax != RealFirst() ||
+ aDescYMax != RealFirst() || aDescZMax != RealFirst())
+ {
+ aXMin = Min (aDescXMin, aXMin);
+ aYMin = Min (aDescYMin, aYMin);
+ aZMin = Min (aDescZMin, aZMin);
+ aXMax = Max (aDescXMax, aXMax);
+ aYMax = Max (aDescYMax, aYMax);
+ aZMax = Max (aDescZMax, aZMax);
+ }
+
+ // Case impossible as it would mean that the structure is empty or infinite
+ if (aXMin == RealFirst() && aYMin == RealFirst() && aZMin == RealFirst() &&
+ aXMax == RealLast() && aYMax == RealLast() && aZMax == RealLast())
+ {
+ theXMin = RealFirst();
+ theYMin = RealFirst();
+ theZMin = RealFirst();
+ theXMax = RealLast();
+ theYMax = RealLast();
+ theZMax = RealLast();
+ return;
}
+
+ TColStd_Array2OfReal aTrsf(0, 3, 0, 3);
+ Transform (aTrsf);
+ TransformBoundaries (aTrsf, aXMin, aYMin, aZMin, aXMax, aYMax, aZMax);
+ theXMin = aXMin;
+ theYMin = aYMin;
+ theZMin = aZMin;
+ theXMax = aXMax;
+ theYMax = aYMax;
+ theZMax = aZMax;
}
Standard_Integer Graphic3d_Structure::Identification () const {
}
+//=============================================================================
+//function : MinMaxCoord
+//purpose :
+//=============================================================================
+void Graphic3d_Structure::MinMaxCoord (Standard_Real& theXMin,
+ Standard_Real& theYMin,
+ Standard_Real& theZMin,
+ Standard_Real& theXMax,
+ Standard_Real& theYMax,
+ Standard_Real& theZMax) const
+{
+ if (IsEmpty())
+ {
+ theXMin = RealFirst();
+ theYMin = RealFirst();
+ theZMin = RealFirst();
+ theXMax = RealLast();
+ theYMax = RealLast();
+ theZMax = RealLast();
+ return;
+ }
-void Graphic3d_Structure::MinMaxCoord (Standard_Real& XMin, Standard_Real& YMin, Standard_Real& ZMin, Standard_Real& XMax, Standard_Real& YMax, Standard_Real& ZMax) const {
+ Standard_Real aXMin = RealLast();
+ Standard_Real aYMin = RealLast();
+ Standard_Real aZMin = RealLast();
+ Standard_Real aXMax = RealFirst();
+ Standard_Real aYMax = RealFirst();
+ Standard_Real aZMax = RealFirst();
+ Standard_Real aGroupXMin, aGroupYMin, aGroupZMin, aGroupXMax, aGroupYMax, aGroupZMax;
+ for (Standard_Integer aGroupIt = 1; aGroupIt <= MyGroups.Length(); aGroupIt++)
+ {
+ const Handle(Graphic3d_Group)& aGroup = MyGroups.Value (aGroupIt);
- Standard_Real RL = RealLast ();
- Standard_Real RF = RealFirst ();
+ if (aGroup->IsEmpty())
+ {
+ continue;
+ }
- Standard_Real Xm, Ym, Zm, XM, YM, ZM;
+ aGroup->MinMaxValues (aGroupXMin, aGroupYMin, aGroupZMin, aGroupXMax, aGroupYMax, aGroupZMax);
+ aXMin = Min (aXMin, aGroupXMin);
+ aYMin = Min (aYMin, aGroupYMin);
+ aZMin = Min (aZMin, aGroupZMin);
+ aXMax = Max (aXMax, aGroupXMax);
+ aYMax = Max (aYMax, aGroupYMax);
+ aZMax = Max (aZMax, aGroupZMax);
+ }
- //Bounding borders of infinite line has been calculated as own point
- //in center of this line
- if (IsEmpty () || IsInfinite ()) {
- if( IsInfinite ()){
- for (int i=1; i<=MyGroups.Length (); i++)
- if (! (MyGroups.Value (i))->IsEmpty () ) {
- (MyGroups.Value (i))->MinMaxValues(Xm, Ym, Zm, XM, YM, ZM);
- Graphic3d_Vertex vertex1(Xm, Ym, Zm);
- Graphic3d_Vertex vertex2(XM, YM, ZM);
- const Standard_Real distance = vertex1.Distance( vertex2 );
- if( distance >= 500000.0){
- XMin = XMax = 0.5*(Xm+ XM);
- YMin = YMax = 0.5*(Ym+ YM);
- ZMin = ZMax = 0.5*(Zm+ ZM);
- return;
- }
- }
- }
- XMin = RF;
- YMin = RF;
- ZMin = RF;
+ // Case impossible as it would mean that the structure is empty
+ if (aXMin == RealLast() && aYMin == RealLast() && aZMin == RealLast() &&
+ aXMax == RealFirst() && aYMax == RealFirst() && aZMax == RealFirst())
+ {
+ theXMin = RealFirst();
+ theYMin = RealFirst();
+ theZMin = RealFirst();
+ theXMax = RealLast();
+ theYMax = RealLast();
+ theZMax = RealLast();
+ }
+
+ theXMin = aXMin;
+ theYMin = aYMin;
+ theZMin = aZMin;
+ theXMax = aXMax;
+ theYMax = aYMax;
+ theZMax = aZMax;
+}
- XMax = RL;
- YMax = RL;
- ZMax = RL;
+//=============================================================================
+//function : MinMaxCoordWithDescendants
+//purpose :
+//=============================================================================
+void Graphic3d_Structure::MinMaxCoordWithDescendants (Standard_Real& theXMin,
+ Standard_Real& theYMin,
+ Standard_Real& theZMin,
+ Standard_Real& theXMax,
+ Standard_Real& theYMax,
+ Standard_Real& theZMax) const
+{
+ if (IsEmpty())
+ {
+ theXMin = RealFirst();
+ theYMin = RealFirst();
+ theZMin = RealFirst();
+ theXMax = RealLast();
+ theYMax = RealLast();
+ theZMax = RealLast();
+ return;
}
- else {
- XMin = RL;
- YMin = RL;
- ZMin = RL;
- XMax = RF;
- YMax = RF;
- ZMax = RF;
- Standard_Integer i, Length;
+ Standard_Real aXMin, aYMin, aZMin, aXMax, aYMax, aZMax;
+ MinMaxCoord (aXMin, aYMin, aZMin, aXMax, aYMax, aZMax);
+
+ // Min-Max of the descendant structures
+ Standard_Real aDescXMin = RealLast();
+ Standard_Real aDescYMin = RealLast();
+ Standard_Real aDescZMin = RealLast();
+ Standard_Real aDescXMax = RealFirst();
+ Standard_Real aDescYMax = RealFirst();
+ Standard_Real aDescZMax = RealFirst();
+ for (Standard_Integer aStructIt = 1; aStructIt <= MyDescendants.Length(); aStructIt++)
+ {
+ Graphic3d_Structure* aStructure = (Graphic3d_Structure*) MyDescendants.Value (aStructIt);
+ if (aStructure->IsEmpty())
+ {
+ continue;
+ }
- Length = MyGroups.Length ();
- for (i=1; i<=Length; i++)
- if (! (MyGroups.Value (i))->IsEmpty () ) {
- (MyGroups.Value (i))->MinMaxValues(Xm, Ym, Zm, XM, YM, ZM);
- if (Xm < XMin) XMin = Xm;
- if (Ym < YMin) YMin = Ym;
- if (Zm < ZMin) ZMin = Zm;
- if (XM > XMax) XMax = XM;
- if (YM > YMax) YMax = YM;
- if (ZM > ZMax) ZMax = ZM;
- }
+ aStructure->MinMaxCoordWithDescendants (aXMin, aYMin, aZMin, aXMax, aYMax, aZMax);
+ aDescXMin = Min (aXMin, aDescXMin);
+ aDescYMin = Min (aYMin, aDescYMin);
+ aDescZMin = Min (aZMin, aDescZMin);
+ aDescXMax = Max (aXMax, aDescXMax);
+ aDescYMax = Max (aYMax, aDescYMax);
+ aDescZMax = Max (aZMax, aDescZMax);
+ }
- Length = MyDescendants.Length ();
- for (i=1; i<=Length; i++)
- if (! ((Graphic3d_Structure *)
- (MyDescendants.Value (i)))->IsEmpty () ) {
- ((Graphic3d_Structure *)
- (MyDescendants.Value (i)))->MinMaxValues (Xm, Ym, Zm, XM, YM, ZM);
-
- if (Xm < XMin) XMin = Xm;
- if (Ym < YMin) YMin = Ym;
- if (Zm < ZMin) ZMin = Zm;
- if (XM > XMax) XMax = XM;
- if (YM > YMax) YMax = YM;
- if (ZM > ZMax) ZMax = ZM;
- }
-
- if ((XMin == RL) && (YMin == RL) &&
- (ZMin == RL) && (XMax == RF) &&
- (YMax == RF) && (ZMax == RF)) {
- // Case impossible as it would mean
- // that the structure is empty
- XMin = RF;
- YMin = RF;
- ZMin = RF;
-
- XMax = RL;
- YMax = RL;
- ZMax = RL;
- }
+ if (aDescXMin != RealLast() || aDescYMin != RealLast() ||
+ aDescZMin != RealLast() || aDescXMax != RealFirst() ||
+ aDescYMax != RealFirst() || aDescZMax != RealFirst())
+ {
+ TColStd_Array2OfReal aTrsf(0, 3, 0, 3);
+ Transform (aTrsf);
+ TransformBoundaries (aTrsf, aDescXMin, aDescYMin, aDescZMin, aDescXMax, aDescYMax, aDescZMax);
+
+ aXMin = Min (aDescXMin, aXMin);
+ aYMin = Min (aDescYMin, aYMin);
+ aZMin = Min (aDescZMin, aZMin);
+ aXMax = Max (aDescXMax, aXMax);
+ aYMax = Max (aDescYMax, aYMax);
+ aZMax = Max (aDescZMax, aZMax);
+ }
+ // Case impossible as it would mean that the structure is empty
+ if (aXMin == RealLast() && aYMin == RealLast() && aZMin == RealLast() &&
+ aXMax == RealFirst() && aYMax == RealFirst() && aZMax == RealFirst())
+ {
+ theXMin = RealFirst();
+ theYMin = RealFirst();
+ theZMin = RealFirst();
+ theXMax = RealLast();
+ theYMax = RealLast();
+ theZMax = RealLast();
}
+ theXMin = aXMin;
+ theYMin = aYMin;
+ theZMin = aZMin;
+ theXMax = aXMax;
+ theYMax = aYMax;
+ theZMax = aZMax;
}
void Graphic3d_Structure::Transforms (const TColStd_Array2OfReal& ATrsf, const Standard_Real X, const Standard_Real Y, const Standard_Real Z, Standard_Real& NewX, Standard_Real& NewY, Standard_Real& NewZ) {
}
+//=============================================================================
+//function : Transforms
+//purpose :
+//=============================================================================
+void Graphic3d_Structure::TransformBoundaries (const TColStd_Array2OfReal& theTrsf,
+ Standard_Real& theXMin,
+ Standard_Real& theYMin,
+ Standard_Real& theZMin,
+ Standard_Real& theXMax,
+ Standard_Real& theYMax,
+ Standard_Real& theZMax)
+{
+ Standard_Real aXMin, aYMin, aZMin, aXMax, aYMax, aZMax, anU, aV, aW;
+
+ Graphic3d_Structure::Transforms (theTrsf, theXMin, theYMin, theZMin, aXMin, aYMin, aZMin);
+ Graphic3d_Structure::Transforms (theTrsf, theXMax, theYMax, theZMax, aXMax, aYMax, aZMax);
+
+ Graphic3d_Structure::Transforms (theTrsf, theXMin, theYMin, theZMax, anU, aV, aW);
+ aXMin = Min (anU, aXMin); aXMax = Max (anU, aXMax);
+ aYMin = Min (aV, aYMin); aYMax = Max (aV, aYMax);
+ aZMin = Min (aW, aZMin); aZMax = Max (aW, aZMax);
+
+ Graphic3d_Structure::Transforms (theTrsf, theXMax, theYMin, theZMax, anU, aV, aW);
+ aXMin = Min (anU, aXMin); aXMax = Max (anU, aXMax);
+ aYMin = Min (aV, aYMin); aYMax = Max (aV, aYMax);
+ aZMin = Min (aW, aZMin); aZMax = Max (aW, aZMax);
+
+ Graphic3d_Structure::Transforms (theTrsf, theXMax, theYMin, theZMin, anU, aV, aW);
+ aXMin = Min (anU, aXMin); aXMax = Max (anU, aXMax);
+ aYMin = Min (aV, aYMin); aYMax = Max (aV, aYMax);
+ aZMin = Min (aW, aZMin); aZMax = Max (aW, aZMax);
+
+ Graphic3d_Structure::Transforms (theTrsf, theXMax, theYMax, theZMin, anU, aV, aW);
+ aXMin = Min (anU, aXMin); aXMax = Max (anU, aXMax);
+ aYMin = Min (aV, aYMin); aYMax = Max (aV, aYMax);
+ aZMin = Min (aW, aZMin); aZMax = Max (aW, aZMax);
+
+ Graphic3d_Structure::Transforms (theTrsf, theXMin, theYMax, theZMax, anU, aV, aW);
+ aXMin = Min (anU, aXMin); aXMax = Max (anU, aXMax);
+ aYMin = Min (aV, aYMin); aYMax = Max (aV, aYMax);
+ aZMin = Min (aW, aZMin); aZMax = Max (aW, aZMax);
+
+ Graphic3d_Structure::Transforms (theTrsf, theXMin, theYMax, theZMin, anU, aV, aW);
+ aXMin = Min (anU, aXMin); aXMax = Max (anU, aXMax);
+ aYMin = Min (aV, aYMin); aYMax = Max (aV, aYMax);
+ aZMin = Min (aW, aZMin); aZMax = Max (aW, aZMax);
+
+ theXMin = aXMin;
+ theYMin = aYMin;
+ theZMin = aZMin;
+ theXMax = aXMax;
+ theYMax = aYMax;
+ theZMax = aZMax;
+}
+
void Graphic3d_Structure::Network (const Handle(Graphic3d_Structure)& AStructure, const Graphic3d_TypeOfConnection AType, Graphic3d_MapOfStructure& ASet) {
XMax = YMax = ZMax = 0.;
}
else {
- MinMaxCoord
+ MinMaxCoordWithDescendants
(XMin, YMin, ZMin, XMax, YMax, ZMax);
}
MyCStructure.BoundBox.Pmin.x = float (XMin);
#include <Graphic3d_Vec3.hxx>
#include <Graphic3d_Vec4.hxx>
#include <Graphic3d_Mat4.hxx>
+#include <Graphic3d_Mat4d.hxx>
#endif // _Graphic3d_Vec_H__
//! Initialize the identity matrix.
void InitIdentity()
{
- static const Element_t anIdentity[] =
- {1, 0, 0, 0,
- 0, 1, 0, 0,
- 0, 0, 1, 0,
- 0, 0, 0, 1};
+ std::memcpy (this, myIdentityArray, sizeof (NCollection_Mat4));
+ }
- std::memcpy (this, anIdentity, sizeof (NCollection_Mat4));
+ //! Checks the matrix for identity.
+ bool IsIdentity() const
+ {
+ return std::memcmp (this, myIdentityArray, sizeof (NCollection_Mat4)) == 0;
}
//! Raw access to the data (for OpenGL exchange).
Element_t myMat[16];
+private:
+
+ static Element_t myIdentityArray[16];
};
+template<typename Element_t>
+Element_t NCollection_Mat4<Element_t>::myIdentityArray[] =
+ {1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 0, 0, 1, 0,
+ 0, 0, 0, 1};
+
#endif // _NCollection_Mat4_HeaderFile
Standard_Boolean NIS_View::FitAll3d (const Quantity_Coefficient theCoef)
{
- Standard_Boolean aResult(Standard_False);
-
Bnd_B3f aBox = GetBndBox();
- // Check that the box is not empty
- if (aBox.IsVoid() == Standard_False && MyView->IsDefined() == Standard_True)
+ if (aBox.IsVoid() || MyView->IsDefined() == Standard_False)
{
- // Convert the 3D box to 2D representation in view coordinates
- gp_XYZ aCoord;
-
- const gp_XYZ aCorner[2] = { aBox.CornerMin(), aBox.CornerMax() };
-
- // Fit depth
- const gp_XYZ& aBMin = aCorner[0];
- const gp_XYZ& aBMax = aCorner[1];
-
- gp_Pnt anAABBCenter ((aBMin.X() + aBMax.X()) * 0.5,
- (aBMin.Y() + aBMax.Y()) * 0.5,
- (aBMin.Z() + aBMax.Z()) * 0.5);
-
- gp_Vec aCenter2AABB (myCamera->Center(), anAABBCenter);
- gp_Dir aDir = myCamera->Direction();
-
- // distance projection onto camera direction
- Standard_Real aDistToBox = -aCenter2AABB.Dot (aDir);
- gp_Vec aZShift = gp_Vec (aDir).Reversed().Scaled (aDistToBox);
+ return Standard_False;
+ }
- gp_Pnt anEyeBefore = myCamera->Eye();
- gp_Pnt aCenterBefore = myCamera->Center();
+ gp_XYZ aMin = aBox.CornerMin();
+ gp_XYZ aMax = aBox.CornerMax();
- myCamera->BeginUpdate();
- myCamera->SetEye (myCamera->Eye().Translated (aZShift));
- myCamera->SetCenter (myCamera->Center().Translated (aZShift));
- myCamera->EndUpdate();
+ if (!FitMinMax (myCamera, aMin, aMax, theCoef, 0.0, Standard_False))
+ {
+ return Standard_False;
+ }
- Standard_Real Umin = RealLast();
- Standard_Real Umax = RealFirst();
- Standard_Real Vmin = RealLast();
- Standard_Real Vmax = RealFirst();
- Standard_Real U, V, W;
+ AutoZFit();
- Standard_Boolean doFit = Standard_True;
- while (doFit)
- {
- for (Standard_Integer i = 0; i < 8; i++) {
- if (i & 0x1) aCoord.SetX (aCorner[0].X());
- else aCoord.SetX (aCorner[1].X());
- if (i & 0x2) aCoord.SetY (aCorner[0].Y());
- else aCoord.SetY (aCorner[1].Y());
- if (i & 0x4) aCoord.SetZ (aCorner[0].Z());
- else aCoord.SetZ (aCorner[1].Z());
-
- MyView->Projects(aCoord.X(), aCoord.Y(), aCoord.Z(), U, V, W);
- if (i) {
- Umin = Min(Umin, U); Umax = Max(Umax, U);
- Vmin = Min(Vmin, V); Vmax = Max(Vmax, V);
- }
- else {
- Umin = Umax = U;
- Vmin = Vmax = V;
- }
- }
-
- if ( (Umax > Umin) && (Vmax > Vmin) )
- {
- gp_Pnt ViewDims = myCamera->ViewDimensions();
- Standard_Real DxvOld = ViewDims.X();
-
- Standard_Real Xrp, Yrp, DxvNew, DyvNew;
-
- DxvNew = Abs(Umax - Umin); DyvNew = Abs(Vmax - Vmin);
- DxvNew *= (1. + theCoef);
- DyvNew *= (1. + theCoef);
-
- Standard_Real aRatio = DxvNew / DxvOld;
-
- Xrp = (Umin + Umax)/2. ; Yrp = (Vmin + Vmax)/2. ;
- Umin = Xrp - DxvNew/2. ; Umax = Xrp + DxvNew/2. ;
- Vmin = Yrp - DyvNew/2. ; Vmax = Yrp + DyvNew/2. ;
-
- // fit view
- FitAll (Umin, Vmin, Umax, Vmax);
-
- // ratio 1e+6 often gives calculation error(s), reduce it
- // if (aRatio < 1e+6) doFit = Standard_False;
- if (aRatio < 100)
- {
- doFit = Standard_False;
- }
-
- aResult = Standard_True;
- }
- else
- {
- doFit = Standard_False;
- }
- }
-
- if (!aResult)
- {
- myCamera->BeginUpdate();
- myCamera->SetCenter (aCenterBefore);
- myCamera->SetEye (anEyeBefore);
- myCamera->EndUpdate();
- }
- }
+ ImmediateUpdate();
- return aResult;
+ return Standard_True;
}
//=======================================================================
#include <OpenGl_Workspace.hxx>
#include <Graphic3d_TextureEnv.hxx>
+#include <Graphic3d_Mat4d.hxx>
IMPLEMENT_STANDARD_HANDLE(OpenGl_View,MMgt_TShared)
IMPLEMENT_STANDARD_RTTIEXT(OpenGl_View,MMgt_TShared)
void OpenGl_View::GetMatrices (TColStd_Array2OfReal& theMatOrient,
TColStd_Array2OfReal& theMatMapping) const
{
- const OpenGl_Matrix* aProj = (const OpenGl_Matrix*) &myCamera->ProjectionMatrix();
- const OpenGl_Matrix* aOrient = (const OpenGl_Matrix*) &myCamera->OrientationMatrix();
+ const Graphic3d_Mat4d& aProj = myCamera->ProjectionMatrix();
+ const Graphic3d_Mat4d& aOrient = myCamera->OrientationMatrix();
- int i, j;
- for (i = 0; i < 4; ++i)
+ for (Standard_Integer aRow = 0; aRow < 4; ++aRow)
{
- for (j = 0; j < 4; ++j)
+ for (Standard_Integer aCol = 0; aCol < 4; ++aCol)
{
- theMatOrient (i, j) = aOrient->mat[j][i];
- theMatMapping (i, j) = aProj-> mat[j][i];
+ theMatOrient (aRow, aCol) = aOrient.GetValue (aRow, aCol);
+ theMatMapping (aRow, aCol) = aProj .GetValue (aRow, aCol);
}
}
}
if (myProjectionState != myCamera->ProjectionState())
{
myProjectionState = myCamera->ProjectionState();
- aManager->UpdateProjectionStateTo ((const Tmatrix3*)myCamera->ProjectionMatrix().GetData());
+ aManager->UpdateProjectionStateTo ((const Tmatrix3*)myCamera->ProjectionMatrixF().GetData());
}
if (myModelViewState != myCamera->ModelViewState())
{
myModelViewState = myCamera->ModelViewState();
- aManager->UpdateWorldViewStateTo ((const Tmatrix3*)myCamera->OrientationMatrix().GetData());
+ aManager->UpdateWorldViewStateTo ((const Tmatrix3*)myCamera->OrientationMatrixF().GetData());
}
if (aManager->ModelWorldState().Index() == 0)
if (!myCamera->IsStereo() || !aContext->HasStereoBuffers())
{
// single-pass monographic rendering
- const OpenGl_Matrix* aProj = (const OpenGl_Matrix*) &myCamera->ProjectionMatrix();
+ const OpenGl_Matrix* aProj = (const OpenGl_Matrix*) &myCamera->ProjectionMatrixF();
- const OpenGl_Matrix* aOrient = (const OpenGl_Matrix*) &myCamera->OrientationMatrix();
+ const OpenGl_Matrix* aOrient = (const OpenGl_Matrix*) &myCamera->OrientationMatrixF();
// redraw scene with normal orientation and projection
RedrawScene (thePrintContext, theWorkspace, aProj, aOrient);
else
{
// two stereographic passes
- const OpenGl_Matrix* aLProj = (const OpenGl_Matrix*) &myCamera->ProjectionStereoLeft();
- const OpenGl_Matrix* aRProj = (const OpenGl_Matrix*) &myCamera->ProjectionStereoRight();
- const OpenGl_Matrix* aOrient = (const OpenGl_Matrix*) &myCamera->OrientationMatrix();
+ const OpenGl_Matrix* aLProj = (const OpenGl_Matrix*) &myCamera->ProjectionStereoLeftF();
+ const OpenGl_Matrix* aRProj = (const OpenGl_Matrix*) &myCamera->ProjectionStereoRightF();
+ const OpenGl_Matrix* aOrient = (const OpenGl_Matrix*) &myCamera->OrientationMatrixF();
// safely switch to left Eye buffer
aContext->SetDrawBufferLeft();
#include <gp_Ax2.hxx>
#include <Geom_Circle.hxx>
#include <AIS_Circle.hxx>
-#include <V3d_View.hxx>
#include <TopoDS.hxx>
#include <Geom_Plane.hxx>
#include <gp_Pln.hxx>
#include <AIS_AngleDimension.hxx>
+#include <Aspect_Window.hxx>
+#include <V3d_View.hxx>
+
#include <TopExp_Explorer.hxx>
#include <BRepAdaptor_Curve.hxx>
#include <GC_MakePlane.hxx>
return 0;
}
-static Standard_Integer BUC60774(Draw_Interpretor& di, Standard_Integer argc, const char ** argv)
+//=======================================================================
+//function : BUC60774
+//purpose :
+//=======================================================================
+static Standard_Integer BUC60774 (Draw_Interpretor& theDi,
+ Standard_Integer theArgNb,
+ const char** theArgv)
{
- if(argc!=1)
+ if (theArgNb != 1)
{
- di << "Usage : " << argv[0] << "\n";
+ std::cout << "Usage : " << theArgv[0] << "\n";
return -1;
}
- Handle(AIS_InteractiveContext) myAISContext = ViewerTest::GetAISContext();
- if(myAISContext.IsNull())
+ const Handle(AIS_InteractiveContext)& anAISContext = ViewerTest::GetAISContext();
+ if (anAISContext.IsNull())
{
- di << "use 'vinit' command before " << argv[0] << "\n";
+ std::cout << "use 'vinit' command before " << theArgv[0] << "\n";
return -1;
}
- Handle(V3d_View) myV3dView = ViewerTest::CurrentView();
-
- double Xc,Yc,Width, Height;
- myV3dView->Center(Xc,Yc);
- myV3dView-> Size (Width, Height);
-
- double Xmin,Ymin;
- Xmin=Xc-Width/2;
- Ymin=Yc-Height/2;
- double Xmax,Ymax;
- Xmax=Xc+Width/2;
- Ymax=Yc+Height/2;
-
- Standard_Integer XPmin,YPmin;
- myV3dView->Convert(Xmin,Ymin,XPmin,YPmin);
-// cout<<Xmin<<"\t"<<Ymin<<endl;
-// cout<<XPmin<<"\t"<<YPmin<<endl;
-
- Standard_Integer XPmax,YPmax;
- myV3dView->Convert(Xmax,Ymax,XPmax,YPmax);
-// cout<<Xmax<<"\t"<<Ymax<<endl;
-// cout<<XPmax<<"\t"<<YPmax<<endl;
-
- AIS_StatusOfPick status;
- if ((status=myAISContext->Select(XPmin,YPmin,XPmax,YPmax,myV3dView))==AIS_SOP_NothingSelected)
- di << "status = AIS_SOP_NothingSelected : OK" << "\n";
- else di << "status = AIS_SOP_NothingSelected : bugged - Faulty " << "\n";
-
- di.Eval("box b 10 10 10");
- di.Eval(" vdisplay b");
+ const Handle(V3d_View)& aV3dView = ViewerTest::CurrentView();
- if ((status=myAISContext->Select(XPmin,YPmin,XPmax,YPmax,myV3dView))==AIS_SOP_OneSelected)
- di << "status = AIS_SOP_OneSelected : OK" << "\n";
- else di << "status = AIS_SOP_OneSelected : bugged - Faulty " << "\n";
+ Standard_Integer aWinWidth = 0;
+ Standard_Integer aWinHeight = 0;
+ aV3dView->Window()->Size (aWinWidth, aWinHeight);
- di.Eval("box w 20 20 20 20 20 20");
- di.Eval(" vdisplay w");
+ Standard_Integer aXPixMin = 0;
+ Standard_Integer aYPixMin = 0;
+ Standard_Integer aXPixMax = aWinWidth;
+ Standard_Integer aYPixMax = aWinHeight;
- if ((status=myAISContext->Select(XPmin,YPmin,XPmax,YPmax,myV3dView))==AIS_SOP_SeveralSelected)
- di << "status = AIS_SOP_SeveralSelected : OK" << "\n";
- else di << "status = AIS_SOP_SeveralSelected : bugged - Faulty " << "\n";
-
- return 0;
+ AIS_StatusOfPick aPickStatus = anAISContext->Select (aXPixMin, aYPixMin, aXPixMax, aYPixMax, aV3dView);
+ theDi << (aPickStatus == AIS_SOP_NothingSelected
+ ? "status = AIS_SOP_NothingSelected : OK"
+ : "status = AIS_SOP_NothingSelected : bugged - Faulty ");
+ theDi << "\n";
+
+ theDi.Eval ("box b 10 10 10");
+ theDi.Eval (" vdisplay b");
-}
+ aPickStatus = anAISContext->Select (aXPixMin, aYPixMin, aXPixMax, aYPixMax, aV3dView);
+ theDi << (aPickStatus == AIS_SOP_OneSelected
+ ? "status = AIS_SOP_OneSelected : OK"
+ : "status = AIS_SOP_OneSelected : bugged - Faulty ");
+ theDi << "\n";
+
+ theDi.Eval ("box w 20 20 20 20 20 20");
+ theDi.Eval (" vdisplay w");
+
+ aPickStatus = anAISContext->Select (aXPixMin, aYPixMin, aXPixMax, aYPixMax, aV3dView);
+ theDi << (aPickStatus == AIS_SOP_SeveralSelected
+ ? "status = AIS_SOP_SeveralSelected : OK"
+ : "status = AIS_SOP_SeveralSelected : bugged - Faulty ");
+ theDi << "\n";
+
+ return 0;
+}
static Standard_Integer BUC60972 (Draw_Interpretor& di, Standard_Integer argc, const char ** argv)
{
TopLoc,
Geom,
SelectBasics,
- V3d
+ V3d,
+ Graphic3d
is
Vec2d from gp,
Pnt2d from gp,
Box from Bnd,
- View from V3d
+ View from V3d,
+ Mat4 from Graphic3d,
+ Mat4d from Graphic3d
raises
NoSuchObject from Standard
is
- Create(aView:View from V3d) returns Projector from Select3D;
- --- Purpose: Constructs the 3D projector object defined by the 3D view aView.
- Create returns Projector from Select3D;
+ Create (theView : View from V3d) returns Projector from Select3D;
+ --- Purpose: Constructs the 3D projector object from the passed view.
+ -- The projector captures current model-view and projection transformation
+ -- of the passed view.
- Create(CS : Ax2 from gp)
- ---Purpose: Creates an axonometric projector. <CS> represents viewing coordinate
- -- system and could be constructed from x direction, view plane normal direction,
- -- and view point location in world-coordinate space.
+ Create returns Projector from Select3D;
+ --- Purpose: Constructs identity projector.
+
+ Create (theCS : Ax2 from gp)
+ ---Purpose: Builds the Projector from the model-view transformation specified
+ -- by the passed viewing coordinate system <theCS>. The Projector has
+ -- identity projection transformation, is orthogonal.
+ -- The viewing coordinate system could be constructed from x direction,
+ -- view plane normal direction, and view point location in
+ -- world-coordinate space.
returns Projector from Select3D;
- Create(CS : Ax2 from gp;
- Focus : Real from Standard)
- ---Purpose: Creates a perspective projector. <CS> represents viewing
- -- coordinate system and could be constructed from x direction,
+ Create (theCS : Ax2 from gp;
+ theFocus : Real from Standard)
+ ---Purpose: Builds the Projector from the model-view transformation specified
+ -- by the passed view coordinate system <theCS> and simplified perspective
+ -- projection transformation defined by <theFocus> parameter.
+ -- The viewing coordinate system could be constructed from x direction,
-- view plane normal direction, and focal point location in world-coordinate
- -- space. <Focus> should represent distance of an eye from view plane
+ -- space. <theFocus> should represent distance of an eye from view plane
-- in world-coordinate space (focal distance).
returns Projector from Select3D;
- Create(T : Trsf from gp;
- Persp : Boolean from Standard;
- Focus : Real from Standard)
- ---Purpose: build a Projector from the given transformation.
- -- In case, when <T> transformation should represent custom view projection,
- -- it could be constructed from two separate components: transposed view
- -- orientation matrix and translation of focal point in view-coordiante
- -- system. <T> could be built up from x direction, up direction,
+ Create (theViewTrsf : Trsf from gp;
+ theIsPersp : Boolean from Standard;
+ theFocus : Real from Standard)
+ ---Purpose: Build the Projector from the model-view transformation passed
+ -- as <theViewTrsf> and simplified perspective projection transformation
+ -- parameters passed as <theIsPersp> and <theFocus>.
+ -- In case, when <theViewTrsf> transformation should represent custom view
+ -- projection, it could be constructed from two separate components:
+ -- transposed view orientation matrix and translation of focal point
+ -- in view-coordinate system.
+ -- <theViewTrsf> could be built up from x direction, up direction,
-- view plane normal direction vectors and translation with SetValues(...)
-- method, where first row arguments (a11, a12, a13, a14) are x, y, z
-- component of x direction vector, and x value of reversed translation
-- vector. Second row arguments, are x y z for up direction and y value of
-- reversed translation, and the third row defined in the same manner.
- -- This also suits for simple perspective view, where <Focus> is the focale
- -- distance of an eye from view plane in world-space coordiantes.
+ -- This also suits for simple perspective view, where <theFocus> is the focale
+ -- distance of an eye from view plane in world-space coordinates.
-- Note, that in that case amount of perspective distortion (perspective
-- angle) should be defined through focal distance.
returns Projector from Select3D;
- Create(GT : GTrsf from gp;
- Persp : Boolean from Standard;
- Focus : Real from Standard)
- ---Purpose: build a Projector from the given transformation.
- -- In case, when <GT> transformation should represent custom view
+ Create (theViewTrsf : GTrsf from gp;
+ theIsPersp : Boolean from Standard;
+ theFocus : Real from Standard)
+ ---Purpose: Builds the Projector from the model-view transformation passed
+ -- as <theViewTrsf> and projection transformation for <theIsPersp> and
+ -- <theFocus> parameters.
+ -- In case, when <theViewTrsf> transformation should represent custom view
-- projection, it could be constructed from two separate components:
-- transposed view orientation matrix and translation of a focal point
-- in view-coordinate system.
- -- This also suits for perspective view, with <Focus> that could be
+ -- This also suits for perspective view, with <theFocus> that could be
-- equal to distance from an eye to a view plane in
-- world-coordinates (focal distance).
-- The 3x3 transformation matrix is built up from three vectors:
-- x direction, up direction and view plane normal vectors, where each
- -- vector is a matrix row. Then <GT> is constructed from matrix and
+ -- vector is a matrix row. Then <theViewTrsf> is constructed from matrix and
-- reversed translation with methods SetTranslationPart(..) and
-- SetVectorialPart(..).
-- Note, that in that case amount of perspective distortion (perspective
-- angle) should be defined through focal distance.
returns Projector from Select3D;
+ Create (theViewTrsf : Mat4d from Graphic3d;
+ theProjTrsf : Mat4d from Graphic3d)
+ ---Purpose: Builds the Projector from the passed model-view <theViewTrsf>
+ -- and projection <theProjTrsf> transformation matrices.
+ returns Projector from Select3D;
+
Set (me : mutable;
- T : Trsf from gp;
- Persp : Boolean from Standard;
- Focus : Real from Standard)
- is static;
+ theViewTrsf : Trsf from gp;
+ theIsPersp : Boolean from Standard;
+ theFocus : Real from Standard);
+ ---Purpose: Sets new parameters for the Projector.
- SetView(me : mutable; V : View from V3d);
- ---Purpose: Sets the 3D view V used at the time of construction.
+ Set (me : mutable;
+ theViewTrsf : Mat4d from Graphic3d;
+ theProjTrsf : Mat4d from Graphic3d);
+ ---Purpose: Sets new parameters for the Projector.
+
+ SetView (me : mutable;
+ theView : View from V3d);
+ ---Purpose: Sets new parameters for the Projector
+ -- captured from the passed view.
+
+ Scaled (me : mutable; theToCheckOptimized : Boolean from Standard = Standard_False)
+ ---Purpose: Pre-compute inverse transformation and ensure whether it is possible
+ -- to use optimized transformation for the common view-orientation type or not
+ -- if <theToCheckOptimized> is TRUE.
+ is virtual;
- View(me) returns any View from V3d;
- ---Purpose: Returns the 3D view used at the time of construction.
- ---C++: return const&
+ Perspective (me) returns Boolean
+ ---Purpose: Returns True if there is simplified perspective
+ -- projection approach is used. Distortion defined by Focus.
---C++: inline
-
- Scaled(me : mutable; On : Boolean from Standard = Standard_False)
- ---Purpose: to compute with the given scale and translation.
is virtual;
- Perspective(me) returns Boolean
- ---Purpose: Returns True if there is a perspective transformation.
+ Focus (me) returns Real from Standard
+ ---Purpose: Returns the focal length of simplified perspective
+ -- projection approach. Raises program error exception if the
+ -- the projection transformation is not specified as simplified
+ -- Perspective (for example, custom projection transformation is defined
+ -- or the orthogonal Projector is defined).
---C++: inline
is virtual;
- Transformation(me) returns GTrsf from gp
- ---Purpose: Returns the active transformation.
+ Projection (me) returns Mat4d from Graphic3d;
+ ---Purpose: Returns projection transformation. Please note that for
+ -- simplified perspective projection approach, defined by Focus, the
+ -- returned transformation is identity.
---C++: inline
---C++: return const &
- is virtual;
- InvertedTransformation(me) returns GTrsf from gp
- ---Purpose: Returns the active inverted transformation.
+ Transformation (me) returns GTrsf from gp
+ ---Purpose: Returns the view transformation.
---C++: inline
---C++: return const &
is virtual;
- FullTransformation(me) returns Trsf from gp
- ---Purpose: Returns the original transformation.
+ InvertedTransformation (me) returns GTrsf from gp
+ ---Purpose: Returns the inverted view transformation.
---C++: inline
---C++: return const &
is virtual;
- Focus(me) returns Real from Standard
- ---Purpose: Returns the focal length.
+ FullTransformation (me) returns Trsf from gp
+ ---Purpose: Returns the uniform-scaled view transformation.
---C++: inline
- raises
- NoSuchObject from Standard -- if there is no perspective
+ ---C++: return const &
is virtual;
- Transform(me; D : in out Vec from gp)
+ Transform (me; theD : in out Vec from gp)
+ ---Purpose: Transforms the vector into view-coordinate space.
---C++: inline
is virtual;
- Transform(me; Pnt : in out Pnt from gp)
- ---C++: inline
+ Transform (me; thePnt : in out Pnt from gp)
+ ---Purpose: Transforms the point into view-coordinate space.
+ ---C++: inline
is virtual;
- Project(me; P : Pnt from gp;
- Pout : out Pnt2d from gp)
- ---Purpose: Transform and apply perspective if needed.
+ Project (me; theP : Pnt from gp; thePout : out Pnt2d from gp)
+ ---Purpose: Transforms the point into view-coordinate space
+ -- and applies projection transformation.
is virtual;
- Project(me; P : Pnt from gp;
- X,Y,Z : out Real from Standard)
- ---Purpose: Transform and apply perspective if needed.
+ Project (me; theP : Pnt from gp; theX, theY, theZ : out Real from Standard)
+ ---Purpose: Transforms the point into view-coordinate space
+ -- and applies projection transformation.
is static;
- Project(me; P : Pnt from gp;
- D1 : Vec from gp;
- Pout : out Pnt2d from gp;
- D1out : out Vec2d from gp)
- ---Purpose: Transform and apply perspective if needed.
+ Project (me; theP : Pnt from gp;
+ theD1 : Vec from gp;
+ thePout : out Pnt2d from gp;
+ theD1out : out Vec2d from gp)
+ ---Purpose: Transforms the point and vector passed from its location
+ -- into view-coordinate space and applies projection transformation.
is virtual;
- Shoot(me; X , Y : Real from Standard)
- returns Lin from gp
- ---Purpose: return a line going through the eye towards the
- -- 2d point <X,Y>.
+ Shoot (me; theX, theY : Real from Standard) returns Lin from gp
+ ---Purpose: Return projection line going through the 2d point <theX, theY>
is virtual;
- Transform(me; P : in out Pnt from gp;
- T : GTrsf from gp)
+ Transform(me; thePnt : in out Pnt from gp;
+ theTrsf : GTrsf from gp)
---C++: inline
is virtual;
- Transform(me; D : in out Lin from gp;
- T : GTrsf from gp)
+ Transform(me; theLin : in out Lin from gp;
+ theTrsf : GTrsf from gp)
---C++: inline
is virtual;
fields
- myType : Integer from Standard;
+ myType : Integer from Standard;
myPersp : Boolean from Standard is protected;
myFocus : Real from Standard is protected;
- myScaledTrsf : Trsf from gp is protected;
myGTrsf : GTrsf from gp is protected;
myInvTrsf : GTrsf from gp is protected;
-
- myView : View from V3d;
+ myScaledTrsf : Trsf from gp is protected;
+ myProjTrsf : Mat4d from Graphic3d is protected;
end Projector;
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
-#define IMP240100 //GG
-// Change RefToPix()/Convert() to Project() method.
-
#include <Select3D_Projector.ixx>
#include <Precision.hxx>
#include <gp_Ax3.hxx>
#include <gp_Vec.hxx>
#include <gp_Vec2d.hxx>
+#include <gp_Mat.hxx>
+#include <Graphic3d_Vec4.hxx>
+
+namespace
+{
+ //=======================================================================
+ //function : TrsfType
+ //purpose :
+ //=======================================================================
+ static Standard_Integer TrsfType(const gp_GTrsf& theTrsf)
+ {
+ const gp_Mat& aMat = theTrsf.VectorialPart();
+ if ((Abs (aMat.Value (1, 1) - 1.0) < 1e-15)
+ && (Abs (aMat.Value (2, 2) - 1.0) < 1e-15)
+ && (Abs (aMat.Value (3, 3) - 1.0) < 1e-15))
+ {
+ return 1; // top
+ }
+ else if ((Abs (aMat.Value (1, 1) - 0.7071067811865476) < 1e-15)
+ && (Abs (aMat.Value (1, 2) + 0.5) < 1e-15)
+ && (Abs (aMat.Value (1, 3) - 0.5) < 1e-15)
+ && (Abs (aMat.Value (2, 1) - 0.7071067811865476) < 1e-15)
+ && (Abs (aMat.Value (2, 2) - 0.5) < 1e-15)
+ && (Abs (aMat.Value (2, 3) + 0.5) < 1e-15)
+ && (Abs (aMat.Value (3, 1)) < 1e-15)
+ && (Abs (aMat.Value (3, 2) - 0.7071067811865476) < 1e-15)
+ && (Abs (aMat.Value (3, 3) - 0.7071067811865476) < 1e-15))
+ {
+ return 0; // inverse axo
+ }
+ else if ((Abs (aMat.Value (1, 1) - 1.0) < 1e-15)
+ && (Abs (aMat.Value (2, 3) - 1.0) < 1e-15)
+ && (Abs (aMat.Value (3, 2) + 1.0) < 1e-15))
+ {
+ return 2; // front
+ }
+ else if ((Abs (aMat.Value (1, 1) - 0.7071067811865476) < 1e-15)
+ && (Abs (aMat.Value (1, 2) - 0.7071067811865476) < 1e-15)
+ && (Abs (aMat.Value (1, 3)) < 1e-15)
+ && (Abs (aMat.Value (2, 1) + 0.5) < 1e-15)
+ && (Abs (aMat.Value (2, 2) - 0.5) < 1e-15)
+ && (Abs (aMat.Value (2, 3) - 0.7071067811865476) < 1e-15)
+ && (Abs (aMat.Value (3, 1) - 0.5) < 1e-15)
+ && (Abs (aMat.Value (3, 2) + 0.5) < 1e-15)
+ && (Abs (aMat.Value (3, 3) - 0.7071067811865476) < 1e-15))
+ {
+ return 3; // axo
+ }
+
+ return -1;
+ }
+
+ //====== TYPE 0 (inverse axonometric)
+ // (0.7071067811865476, -0.5 , 0.4999999999999999)
+ // (0.7071067811865475, 0.5000000000000001, -0.5 )
+ // (0.0, 0.7071067811865475, 0.7071067811865476)
+
+ // ====== TYPE 1 (top)
+ // (1.0, 0.0, 0.0)
+ // (0.0, 1.0, 0.0)
+ // (0.0, 0.0, 1.0)
+
+ // ======= TYPE 2 (front)
+ // (1.0, 0.0 , 0.0)
+ // (0.0, 1.110223024625157e-16 , 1.0)
+ // (0.0, -1.0 , 1.110223024625157e-16)
+
+ // ======= TYPE 3 (axonometric)
+ // ( 0.7071067811865476, 0.7071067811865475, 0.0)
+ // (-0.5 , 0.5000000000000001, 0.7071067811865475)
+ // ( 0.4999999999999999, -0.5 , 0.7071067811865476)
+}
// formula for derivating a perspective, from Mathematica
//function : Select3D_Projector
//purpose :
//=======================================================================
-
-Select3D_Projector::Select3D_Projector(const Handle(V3d_View)& aViou)
- : myView (aViou)
+Select3D_Projector::Select3D_Projector (const Handle(V3d_View)& theView)
+: myPersp (Standard_False),
+ myFocus (0.0),
+ myType (-1)
{
+ SetView (theView);
}
//=======================================================================
//function : Select3D_Projector
//purpose :
//=======================================================================
-
Select3D_Projector::Select3D_Projector()
-: myPersp(Standard_False),
- myFocus(0)
+: myPersp (Standard_False),
+ myFocus (0.0),
+ myType (-1)
{
Scaled();
}
//function : Select3D_Projector
//purpose :
//=======================================================================
-
-Select3D_Projector::Select3D_Projector (const gp_Ax2& CS)
-: myPersp(Standard_False),
- myFocus(0)
+Select3D_Projector::Select3D_Projector (const gp_Ax2& theCS)
+: myPersp (Standard_False),
+ myFocus (0.0),
+ myType (-1)
{
- myScaledTrsf.SetTransformation(CS);
- myGTrsf.SetTrsf(myScaledTrsf);
+ myScaledTrsf.SetTransformation (theCS);
+ myGTrsf.SetTrsf (myScaledTrsf);
Scaled();
}
//function : Select3D_Projector
//purpose :
//=======================================================================
-
-Select3D_Projector::Select3D_Projector (const gp_Ax2& CS,
- const Standard_Real Focus)
-: myPersp(Standard_True),
- myFocus(Focus)
+Select3D_Projector::Select3D_Projector (const gp_Ax2& theCS, const Standard_Real theFocus)
+: myPersp (Standard_True),
+ myFocus (theFocus),
+ myType (-1)
{
- myScaledTrsf.SetTransformation(CS);
- myGTrsf.SetTrsf(myScaledTrsf);
+ myScaledTrsf.SetTransformation (theCS);
+ myGTrsf.SetTrsf (myScaledTrsf);
Scaled();
}
//function : Select3D_Projector
//purpose :
//=======================================================================
-
-Select3D_Projector::Select3D_Projector (const gp_Trsf& T,
- const Standard_Boolean Persp,
- const Standard_Real Focus)
-: myPersp(Persp),
- myFocus(Focus),
- myScaledTrsf(T)
+Select3D_Projector::Select3D_Projector (const gp_Trsf& theViewTrsf,
+ const Standard_Boolean theIsPersp,
+ const Standard_Real theFocus)
+: myPersp (theIsPersp),
+ myFocus (theFocus),
+ myGTrsf (theViewTrsf),
+ myScaledTrsf (theViewTrsf),
+ myType (-1)
{
- myGTrsf.SetTrsf(myScaledTrsf);
Scaled();
}
//function : Select3D_Projector
//purpose :
//=======================================================================
-
-Select3D_Projector::Select3D_Projector (const gp_GTrsf& GT,
- const Standard_Boolean Persp,
- const Standard_Real Focus)
-: myPersp(Persp),
- myFocus(Focus),
- myGTrsf(GT)
+Select3D_Projector::Select3D_Projector (const gp_GTrsf& theViewTrsf,
+ const Standard_Boolean theIsPersp,
+ const Standard_Real theFocus)
+: myPersp (theIsPersp),
+ myFocus (theFocus),
+ myGTrsf (theViewTrsf),
+ myScaledTrsf (theViewTrsf.Trsf()),
+ myType (-1)
{
Scaled();
}
//=======================================================================
-//function : Set
+//function : Select3D_Projector
//purpose :
//=======================================================================
-
-void Select3D_Projector::Set
- (const gp_Trsf& T,
- const Standard_Boolean Persp,
- const Standard_Real Focus)
+Select3D_Projector::Select3D_Projector (const Graphic3d_Mat4d& theViewTrsf,
+ const Graphic3d_Mat4d& theProjTrsf)
+: myPersp (Standard_False),
+ myFocus (0.0),
+ myType (-1)
{
- myPersp = Persp;
- myFocus = Focus;
- myScaledTrsf = T;
- Scaled();
+ Set (theViewTrsf, theProjTrsf);
}
//=======================================================================
-//function : Scaled
+//function : Set
//purpose :
//=======================================================================
-
-#include <gp_Mat.hxx>
-
-static Standard_Integer TrsfType(const gp_GTrsf& Trsf) {
- const gp_Mat& Mat = Trsf.VectorialPart();
- if( (Abs(Mat.Value(1,1)-1.0) < 1e-15)
- && (Abs(Mat.Value(2,2)-1.0) < 1e-15)
- && (Abs(Mat.Value(3,3)-1.0) < 1e-15)) {
- return(1); //-- top
- }
- else if( (Abs(Mat.Value(1,1)-0.7071067811865476) < 1e-15)
- && (Abs(Mat.Value(1,2)+0.5) < 1e-15)
- && (Abs(Mat.Value(1,3)-0.5) < 1e-15)
-
- && (Abs(Mat.Value(2,1)-0.7071067811865476) < 1e-15)
- && (Abs(Mat.Value(2,2)-0.5) < 1e-15)
- && (Abs(Mat.Value(2,3)+0.5) < 1e-15)
-
- && (Abs(Mat.Value(3,1)) < 1e-15)
- && (Abs(Mat.Value(3,2)-0.7071067811865476) < 1e-15)
- && (Abs(Mat.Value(3,3)-0.7071067811865476) < 1e-15)) {
- return(0); //--
- }
- else if( (Abs(Mat.Value(1,1)-1.0) < 1e-15)
- && (Abs(Mat.Value(2,3)-1.0) < 1e-15)
- && (Abs(Mat.Value(3,2)+1.0) < 1e-15)) {
- return(2); //-- front
- }
- else if( (Abs(Mat.Value(1,1)-0.7071067811865476) < 1e-15)
- && (Abs(Mat.Value(1,2)-0.7071067811865476) < 1e-15)
- && (Abs(Mat.Value(1,3)) < 1e-15)
-
- && (Abs(Mat.Value(2,1)+0.5) < 1e-15)
- && (Abs(Mat.Value(2,2)-0.5) < 1e-15)
- && (Abs(Mat.Value(2,3)-0.7071067811865476) < 1e-15)
-
- && (Abs(Mat.Value(3,1)-0.5) < 1e-15)
- && (Abs(Mat.Value(3,2)+0.5) < 1e-15)
- && (Abs(Mat.Value(3,3)-0.7071067811865476) < 1e-15)) {
- return(3); //-- axo
- }
- return(-1);
+void Select3D_Projector::Set (const gp_Trsf& theViewTrsf,
+ const Standard_Boolean theIsPersp,
+ const Standard_Real theFocus)
+{
+ myPersp = theIsPersp;
+ myFocus = theFocus;
+ myScaledTrsf = theViewTrsf;
+ myProjTrsf.InitIdentity();
+ Scaled();
}
-void Select3D_Projector::Scaled (const Standard_Boolean On)
+//=======================================================================
+//function : Set
+//purpose :
+//=======================================================================
+void Select3D_Projector::Set (const Graphic3d_Mat4d& theViewTrsf,
+ const Graphic3d_Mat4d& theProjTrsf)
{
- myType=-1;
- if (!On) {
- if (!myPersp) {
- //myGTrsf.SetTranslationPart(gp_XYZ(0.,0.,0.));
- myType=TrsfType(myGTrsf);
+ // Copy elements corresponding to common view-transformation
+ for (Standard_Integer aRowIt = 0; aRowIt < 3; ++aRowIt)
+ {
+ for (Standard_Integer aColIt = 0; aColIt < 4; ++aColIt)
+ {
+ myGTrsf.SetValue (aRowIt + 1, aColIt + 1, theViewTrsf.GetValue (aRowIt, aColIt));
}
}
- myInvTrsf = myGTrsf;
- myInvTrsf.Invert();
+
+ // Adapt scaled transformation for compatibilty
+ gp_Dir aViewY (theViewTrsf.GetValue (0, 1), theViewTrsf.GetValue (1, 1), theViewTrsf.GetValue (2, 1));
+ gp_Dir aViewZ (theViewTrsf.GetValue (0, 2), theViewTrsf.GetValue (1, 2), theViewTrsf.GetValue (2, 2));
+ gp_XYZ aViewT (theViewTrsf.GetValue (0, 3), theViewTrsf.GetValue (1, 3), theViewTrsf.GetValue (2, 3));
+ gp_Dir aViewX = aViewY ^ aViewZ;
+ gp_Ax3 aViewAx3 (gp_Pnt (aViewT), aViewZ, aViewX);
+ myScaledTrsf.SetTransformation (aViewAx3);
+
+ myPersp = Standard_False;
+ myFocus = 0.0;
+ myProjTrsf = theProjTrsf;
+ Scaled();
}
//=======================================================================
-//function : Project
+//function : SetView
//purpose :
//=======================================================================
-
-void Select3D_Projector::Project (const gp_Pnt& P, gp_Pnt2d& Pout) const
+void Select3D_Projector::SetView (const Handle(V3d_View)& theView)
{
+ const Graphic3d_Mat4d& aViewTrsf = theView->Camera()->OrientationMatrix();
+ const Graphic3d_Mat4d& aProjTrsf = theView->Camera()->ProjectionMatrix();
- if(!myView.IsNull()){
- Standard_Real Xout,Yout;
-// V3d_View
-#ifdef IMP240100
- myView->Project(P.X(),P.Y(),P.Z(),Xout,Yout);
-#else
- Standard_Integer Xp,Yp;
- myView->RefToPix(P.X(),P.Y(),P.Z(),Xp,Yp);
- myView->Convert(Xp,Yp,Xout,Yout);
-#endif
- Pout.SetCoord(Xout,Yout);
- }
- else{
- if(myType!=-1) {
- Standard_Real X,Y;
- switch (myType) {
- case 0: { //-- axono standard
- Standard_Real x07 = P.X()*0.7071067811865475;
- Standard_Real y05 = P.Y()*0.5;
- Standard_Real z05 = P.Z()*0.5;
- X=x07-y05+z05;
- Y=x07+y05-z05;
- //-- Z=0.7071067811865475*(P.Y()+P.Z());
- break;
- }
- case 1: { //-- top
- X=P.X(); Y=P.Y(); //-- Z=P.Z();
- Pout.SetCoord(X,Y);
- break;
- }
- case 2: {
- X=P.X(); Y=P.Z(); //-- Z=-P.Y();
- Pout.SetCoord(X,Y);
- break;
- }
- case 3: {
- Standard_Real xmy05 = (P.X()-P.Y())*0.5;
- Standard_Real z07 = P.Z()*0.7071067811865476;
- X=0.7071067811865476*(P.X()+P.Y());
- Y=-xmy05+z07;
- Pout.SetCoord(X,Y);
- //-- Z= xmy05+z07;
- break;
- }
- default: {
- gp_Pnt P2 = P;
- Transform(P2);
- if (myPersp) {
- Standard_Real R = 1.-P2.Z()/myFocus;
- Pout.SetCoord(P2.X()/R,P2.Y()/R);
- }
- else
- Pout.SetCoord(P2.X(),P2.Y());
- break;
- }
- }
- }
- else {
- gp_Pnt P2 = P;
- Transform(P2);
- if (myPersp) {
- Standard_Real R = 1.-P2.Z()/myFocus;
- Pout.SetCoord(P2.X()/R,P2.Y()/R);
- }
- else
- Pout.SetCoord(P2.X(),P2.Y());
- }
- }
-
+ gp_XYZ aFrameScale = theView->Camera()->ViewDimensions();
+ Graphic3d_Mat4d aScale;
+ aScale.ChangeValue (0, 0) = aFrameScale.X();
+ aScale.ChangeValue (1, 1) = aFrameScale.Y();
+ aScale.ChangeValue (2, 2) = aFrameScale.Z();
+ Graphic3d_Mat4d aScaledProjTrsf = aScale * aProjTrsf;
+ Set (aViewTrsf, aScaledProjTrsf);
}
//=======================================================================
-//function : Project
+//function : Scaled
//purpose :
//=======================================================================
-/* ====== TYPE 0 (??)
- (0.7071067811865476, -0.5 , 0.4999999999999999)
- (0.7071067811865475, 0.5000000000000001, -0.5 )
- (0.0, 0.7071067811865475, 0.7071067811865476)
-
- ====== TYPE 1 (top)
-(1.0, 0.0, 0.0)
-(0.0, 1.0, 0.0)
-(0.0, 0.0, 1.0)
-
- ======= TYPE 2 (front)
-(1.0, 0.0 , 0.0)
-(0.0, 1.110223024625157e-16 , 1.0)
-(0.0, -1.0 , 1.110223024625157e-16)
-
- ======= TYPE 3
-( 0.7071067811865476, 0.7071067811865475, 0.0)
-(-0.5 , 0.5000000000000001, 0.7071067811865475)
-( 0.4999999999999999, -0.5 , 0.7071067811865476)
-*/
-void Select3D_Projector::Project (const gp_Pnt& P,
- Standard_Real& X,
- Standard_Real& Y,
- Standard_Real& Z) const
+void Select3D_Projector::Scaled (const Standard_Boolean theToCheckOptimized)
{
- if(!myView.IsNull()){
-// Standard_Real Xout,Yout;
-// V3d_View
-#ifdef IMP240100
- myView->Project(P.X(),P.Y(),P.Z(),X,Y);
-#else
- Standard_Integer Xp,Yp;
- myView->RefToPix(P.X(),P.Y(),P.Z(),Xp,Yp);
- myView->Convert(Xp,Yp,X,Y);
-#endif
- }
- else{
- if(myType!=-1) {
- switch (myType) {
- case 0: { //-- axono standard
- Standard_Real x07 = P.X()*0.7071067811865475;
- Standard_Real y05 = P.Y()*0.5;
- Standard_Real z05 = P.Z()*0.5;
- X=x07-y05+z05;
- Y=x07+y05-z05;
- Z=0.7071067811865475*(P.Y()+P.Z());
- break;
- }
- case 1: { //-- top
- X=P.X(); Y=P.Y(); Z=P.Z();
- break;
- }
- case 2: {
- X=P.X(); Y=P.Z(); Z=-P.Y();
- break;
- }
- case 3: {
- Standard_Real xmy05 = (P.X()-P.Y())*0.5;
- Standard_Real z07 = P.Z()*0.7071067811865476;
- X=0.7071067811865476*(P.X()+P.Y());
- Y=-xmy05+z07;
- Z= xmy05+z07;
- break;
- }
- default: {
- gp_Pnt P2 = P;
- Transform(P2);
- P2.Coord(X,Y,Z);
- break;
- }
- }
- }
- else {
- gp_Pnt P2 = P;
- Transform(P2);
- P2.Coord(X,Y,Z);
- if (myPersp) {
- Standard_Real R = 1 - Z / myFocus;
- X = X / R;
- Y = Y / R;
- }
- }
+ myType = -1;
+
+ if (!theToCheckOptimized && !myPersp && myProjTrsf.IsIdentity())
+ {
+ myType = TrsfType (myGTrsf);
}
+
+ myInvTrsf = myGTrsf.Inverted();
}
+
//=======================================================================
//function : Project
//purpose :
//=======================================================================
-
-void Select3D_Projector::Project (const gp_Pnt& P,
- const gp_Vec& D1,
- gp_Pnt2d& Pout,
- gp_Vec2d& D1out) const
+void Select3D_Projector::Project (const gp_Pnt& theP, gp_Pnt2d& thePout) const
{
- gp_Pnt PP = P;
- Transform(PP);
- gp_Vec DD1 = D1;
- Transform(DD1);
- if (myPersp) {
- Standard_Real R = 1. - PP.Z() / myFocus;
- Pout .SetCoord(PP .X()/R , PP.Y()/R);
- D1out.SetCoord(DD1.X()/R + PP.X()*DD1.Z()/(myFocus * R*R),
- DD1.Y()/R + PP.Y()*DD1.Z()/(myFocus * R*R));
- }
- else {
- Pout .SetCoord(PP .X(),PP .Y());
- D1out.SetCoord(DD1.X(),DD1.Y());
- }
+ Standard_Real aXout = 0.0;
+ Standard_Real aYout = 0.0;
+ Standard_Real aZout = 0.0;
+ Project (theP, aXout, aYout, aZout);
+ thePout.SetCoord (aXout, aYout);
}
-
//=======================================================================
-//function : Shoot
+//function : Project
//purpose :
//=======================================================================
-
-gp_Lin Select3D_Projector::Shoot
- (const Standard_Real X,
- const Standard_Real Y) const
+void Select3D_Projector::Project (const gp_Pnt& theP,
+ Standard_Real& theX,
+ Standard_Real& theY,
+ Standard_Real& theZ) const
{
- gp_Lin L;
+ Graphic3d_Vec4d aTransformed (0.0, 0.0, 0.0, 1.0);
- if (!myView.IsNull())
+ // view transformation
+ switch (myType)
{
- Handle(Graphic3d_Camera) aCamera = myView->Camera();
-
- Standard_Real aUMin, aVMin, aUMax, aVMax;
- aCamera->WindowLimit (aUMin, aVMin, aUMax, aVMax);
+ case 0 : // inverse axo
+ {
+ Standard_Real aX07 = theP.X() * 0.7071067811865475;
+ Standard_Real aY05 = theP.Y() * 0.5;
+ Standard_Real aZ05 = theP.Z() * 0.5;
+ aTransformed.x() = aX07 - aY05 + aZ05;
+ aTransformed.y() = aX07 + aY05 - aZ05;
+ aTransformed.z() = 0.7071067811865475 * (theP.Y() + theP.Z());
+ break;
+ }
- gp_Pnt aPos = aCamera->ConvertView2World (gp_Pnt (X, Y, 1.0));
- gp_Pnt aEyePos = aCamera->Eye();
+ case 1 : // top
+ {
+ aTransformed.x() = theP.X();
+ aTransformed.y() = theP.Y();
+ aTransformed.z() = theP.Z();
+ break;
+ }
- gp_Dir aDir;
+ case 2 : // front
+ {
+ aTransformed.x() = theP.X();
+ aTransformed.y() = theP.Z();
+ aTransformed.z() = -theP.Y();
+ break;
+ }
- if (aCamera->IsOrthographic())
+ case 3 : // axo
{
- aDir = aCamera->Direction();
+ Standard_Real aXmy05 = (theP.X() - theP.Y()) * 0.5;
+ Standard_Real aZ07 = theP.Z() * 0.7071067811865476;
+ aTransformed.x() = 0.7071067811865476 * (theP.X() + theP.Y());
+ aTransformed.y() = -aXmy05 + aZ07;
+ aTransformed.z() = aXmy05 + aZ07;
+ break;
}
- else
+
+ default :
{
- aDir = gp_Dir (aPos.X() - aEyePos.X(),
- aPos.Y() - aEyePos.Y(),
- aPos.Z() - aEyePos.Z());
+ gp_Pnt aTransformPnt = theP;
+ Transform (aTransformPnt);
+ aTransformed.x() = aTransformPnt.X();
+ aTransformed.y() = aTransformPnt.Y();
+ aTransformed.z() = aTransformPnt.Z();
}
+ }
- L = gp_Lin (aPos, aDir);
+ // projection transformation
+ if (myPersp)
+ {
+ // simplified perspective
+ Standard_Real aDistortion = 1.0 - aTransformed.z() / myFocus;
+ theX = aTransformed.x() / aDistortion;
+ theY = aTransformed.y() / aDistortion;
+ theZ = aTransformed.z();
+ return;
}
- else
+
+ if (myProjTrsf.IsIdentity())
{
- if (myPersp) {
- L = gp_Lin(gp_Pnt(0,0, myFocus),
- gp_Dir(X,Y,-myFocus));
- }
- else {
- L = gp_Lin(gp_Pnt(X,Y,0),
- gp_Dir(0,0,-1));
- }
-
- Transform(L, myInvTrsf);
+ // no projection transformation
+ theX = aTransformed.x();
+ theY = aTransformed.y();
+ theZ = aTransformed.z();
+ return;
}
+ Graphic3d_Vec4d aProjected = myProjTrsf * aTransformed;
- return L;
+ theX = aProjected.x() / aProjected.w();
+ theY = aProjected.y() / aProjected.w();
+ theZ = aProjected.z() / aProjected.w();
}
+//=======================================================================
+//function : Project
+//purpose :
+//=======================================================================
+void Select3D_Projector::Project (const gp_Pnt& theP,
+ const gp_Vec& theD1,
+ gp_Pnt2d& thePout,
+ gp_Vec2d& theD1out) const
+{
+ // view transformation
+ gp_Pnt aTP = theP;
+ Transform (aTP);
-void Select3D_Projector::SetView(const Handle(V3d_View)& aViou)
+ gp_Vec aTD1 = theD1;
+ Transform (aTD1);
+
+ // projection transformation
+ if (myPersp)
+ {
+ // simplified perspective
+ Standard_Real aDist = 1.0 - aTP.Z() / myFocus;
+ thePout.SetCoord (aTP.X() / aDist, aTP.Y() / aDist);
+ theD1out.SetCoord (aTD1.X() / aDist + aTP.X() * aTD1.Z() / (myFocus * aDist * aDist),
+ aTD1.Y() / aDist + aTP.Y() * aTD1.Z() / (myFocus * aDist * aDist));
+ return;
+ }
+
+ if (myProjTrsf.IsIdentity())
+ {
+ // no projection transformation
+ thePout.SetCoord (aTP.X(), aTP.Y());
+ theD1out.SetCoord (aTD1.X(), aTD1.Y());
+ }
+
+ Graphic3d_Vec4d aTransformedPnt1 (aTP.X(), aTP.Y(), aTP.Z(), 1.0);
+ Graphic3d_Vec4d aTransformedPnt2 (aTP.X() + aTD1.X(), aTP.Y() + aTD1.Y(), aTP.Z() + aTD1.Z(), 1.0);
+
+ Graphic3d_Vec4d aProjectedPnt1 = myProjTrsf * aTransformedPnt1;
+ Graphic3d_Vec4d aProjectedPnt2 = myProjTrsf * aTransformedPnt2;
+
+ aProjectedPnt1 /= aProjectedPnt1.w();
+ aProjectedPnt2 /= aProjectedPnt2.w();
+
+ Graphic3d_Vec4d aProjectedD1 = aProjectedPnt2 - aProjectedPnt1;
+
+ thePout.SetCoord (aProjectedPnt1.x(), aProjectedPnt1.y());
+ theD1out.SetCoord (aProjectedD1.x(), aProjectedD1.y());
+}
+
+//=======================================================================
+//function : Shoot
+//purpose :
+//=======================================================================
+gp_Lin Select3D_Projector::Shoot (const Standard_Real theX, const Standard_Real theY) const
{
- myView = aViou;
- myPersp = aViou->Type()==V3d_PERSPECTIVE;
- myFocus= aViou->Focale();
- Standard_Real Xat,Yat,Zat,XUp,YUp,ZUp,DX,DY,DZ;
- //Standard_Boolean Pers=Standard_False;
-
- aViou->At(Xat,Yat,Zat);
- aViou->Up(XUp,YUp,ZUp);
- aViou->Proj(DX,DY,DZ);
- gp_Pnt At (Xat,Yat,Zat);
- gp_Dir Zpers (DX,DY,DZ);
- gp_Dir Ypers (XUp,YUp,ZUp);
- gp_Dir Xpers = Ypers.Crossed(Zpers);
- gp_Ax3 Axe (At, Zpers, Xpers);
- myScaledTrsf.SetTransformation(Axe);
- Scaled();
+ gp_Lin aViewLin;
+
+ if (myPersp)
+ {
+ // simplified perspective
+ aViewLin = gp_Lin (gp_Pnt (0.0, 0.0, myFocus), gp_Dir (theX, theY, -myFocus));
+ }
+ else if (myProjTrsf.IsIdentity())
+ {
+ // no projection transformation
+ aViewLin = gp_Lin (gp_Pnt (theX, theY, 0.0), gp_Dir (0.0, 0.0, -1.0));
+ }
+ else
+ {
+ // get direction of projection over the point in view space
+ Graphic3d_Mat4d aProjInv;
+ if (!myProjTrsf.Inverted (aProjInv))
+ {
+ return gp_Lin();
+ }
+
+ Graphic3d_Vec4d aVPnt1 = aProjInv * Graphic3d_Vec4d (theX, theY, 0.0, 1.0);
+ Graphic3d_Vec4d aVPnt2 = aProjInv * Graphic3d_Vec4d (theX, theY, 10.0, 1.0);
+ aVPnt1 /= aVPnt1.w();
+ aVPnt2 /= aVPnt1.w();
+
+ gp_Vec aViewDir (aVPnt2.x() - aVPnt1.x(), aVPnt2.y() - aVPnt1.y(), aVPnt2.z() - aVPnt1.z());
+
+ aViewLin = gp_Lin (gp_Pnt (aVPnt1.x(), aVPnt1.y(), aVPnt1.z()), gp_Dir (aViewDir));
+ }
+
+ // view transformation
+ Transform (aViewLin, myInvTrsf);
+ return aViewLin;
}
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
-#include <Standard_NoSuchObject.hxx>
+#include <Graphic3d_Mat4d.hxx>
+#include <Standard_Assert.hxx>
#include <gp_Vec.hxx>
#include <gp_Pnt.hxx>
#include <gp_Lin.hxx>
-#include <V3d_View.hxx>
-#include <V3d.hxx>
//=======================================================================
//function : Perspective
//purpose :
//=======================================================================
-
inline Standard_Boolean Select3D_Projector::Perspective() const
-{ return myPersp; }
+{
+ return myPersp;
+}
//=======================================================================
-//function : Transformation
+//function : ProjectionTransformation
//purpose :
//=======================================================================
+inline const Graphic3d_Mat4d& Select3D_Projector::Projection() const
+{
+ return myProjTrsf;
+}
+//=======================================================================
+//function : Transformation
+//purpose :
+//=======================================================================
inline const gp_GTrsf& Select3D_Projector::Transformation() const
-{ return myGTrsf; }
+{
+ return myGTrsf;
+}
//=======================================================================
//function : InvertedTransformation
//purpose :
//=======================================================================
-
inline const gp_GTrsf& Select3D_Projector::InvertedTransformation() const
-{ return myInvTrsf; }
+{
+ return myInvTrsf;
+}
//=======================================================================
//function : FullTransformation
//purpose :
//=======================================================================
-
inline const gp_Trsf& Select3D_Projector::FullTransformation() const
-{ return myScaledTrsf; }
+{
+ return myScaledTrsf;
+}
//=======================================================================
//function : Focus
//purpose :
//=======================================================================
-
inline Standard_Real Select3D_Projector::Focus() const
{
- Standard_NoSuchObject_Raise_if(!myPersp,
- "Select3D_Projector::Not a Perpective");
+ Standard_ASSERT_RAISE (myPersp, "Not a simplified Perspective.");
return myFocus;
}
//function : Transform
//purpose :
//=======================================================================
-
-inline void Select3D_Projector::Transform (gp_Vec& D) const
+inline void Select3D_Projector::Transform (gp_Vec& theD) const
{
- gp_XYZ coord = D.XYZ();
- if (myGTrsf.Form() == gp_Identity || myGTrsf.Form() == gp_Translation) { }
- else if (myGTrsf.Form() == gp_PntMirror) { coord.Reverse(); }
- else { coord.Multiply (myGTrsf.VectorialPart()); }
- D.SetXYZ(coord);
+ gp_XYZ aXYZ = theD.XYZ();
+
+ if (myGTrsf.Form() == gp_PntMirror)
+ {
+ aXYZ.Reverse();
+ }
+ else if (myGTrsf.Form() != gp_Identity && myGTrsf.Form() != gp_Translation)
+ {
+ aXYZ.Multiply (myGTrsf.VectorialPart());
+ }
+
+ theD.SetXYZ (aXYZ);
}
//=======================================================================
//function : Transform
//purpose :
//=======================================================================
-
-inline void Select3D_Projector::Transform (gp_Pnt& Pnt) const
+inline void Select3D_Projector::Transform (gp_Pnt& thePnt) const
{
- gp_XYZ xyz = Pnt.XYZ();
- myGTrsf.Transforms(xyz);
- Pnt = gp_Pnt(xyz);
+ Transform (thePnt, myGTrsf);
}
-
-inline const Handle(V3d_View)& Select3D_Projector::View() const
-{return myView;}
-
-inline void Select3D_Projector::Transform (gp_Lin& Lin, const gp_GTrsf& T) const
+//=======================================================================
+//function : Transform
+//purpose :
+//=======================================================================
+inline void Select3D_Projector::Transform (gp_Lin& theLin, const gp_GTrsf& theTrsf) const
{
- gp_Ax1 ax1 = Lin.Position();
- gp_XYZ xyz = ax1.Location().XYZ();
- T.Transforms(xyz);
- ax1.SetLocation(gp_Pnt(xyz));
- gp_Dir dir = ax1.Direction();
- gp_XYZ coord = dir.XYZ();
- if (T.Form() == gp_Identity || T.Form() == gp_Translation) { }
- else if (T.Form() == gp_PntMirror) { coord.Reverse(); }
- else {
- coord.Multiply (T.VectorialPart());
- Standard_Real D = coord.Modulus();
- coord.Divide(D);
+ gp_Ax1 anAx1 = theLin.Position();
+ gp_XYZ aXYZ = anAx1.Location().XYZ();
+ theTrsf.Transforms (aXYZ);
+ anAx1.SetLocation (gp_Pnt (aXYZ));
+ gp_Dir aDir = anAx1.Direction();
+ gp_XYZ aDirXYZ = aDir.XYZ();
+
+ if (theTrsf.Form() == gp_PntMirror)
+ {
+ aDirXYZ.Reverse();
}
- dir.SetXYZ(coord);
- ax1.SetDirection(dir);
- Lin.SetPosition(ax1);
+ else if (theTrsf.Form() != gp_Identity && theTrsf.Form() != gp_Translation)
+ {
+ aDirXYZ.Multiply (theTrsf.VectorialPart());
+ Standard_Real aModulus = aDirXYZ.Modulus();
+ aDirXYZ.Divide (aModulus);
+ }
+
+ aDir.SetXYZ (aDirXYZ);
+ anAx1.SetDirection (aDir);
+ theLin.SetPosition (anAx1);
}
-inline void Select3D_Projector::Transform (gp_Pnt& Pnt, const gp_GTrsf& T) const
+//=======================================================================
+//function : Transform
+//purpose :
+//=======================================================================
+inline void Select3D_Projector::Transform (gp_Pnt& thePnt, const gp_GTrsf& theTrsf) const
{
- gp_XYZ xyz = Pnt.XYZ();
- T.Transforms(xyz);
- Pnt = gp_Pnt(xyz);
+ gp_XYZ aXYZ = thePnt.XYZ();
+ theTrsf.Transforms (aXYZ);
+ thePnt = gp_Pnt (aXYZ);
}
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
--- Modified by rob jun 25 98 : Add Method : Reactivate projector...
-
-
+-- Modified by rob jun 25 98 : Add Method : Reactivate projector...
class ViewerSelector3d from StdSelect inherits ViewerSelector from SelectMgr
- ---Purpose: Selector Usable by Viewers from V3d
- --
+ ---Purpose: Selector Usable by Viewers from V3d
uses
View from V3d,
Array1OfReal from TColStd,
Array1OfPnt2d from TColgp,
SensitivityMode from StdSelect,
- Lin from gp
+ Lin from gp,
+ Pnt from gp,
+ Dir from gp,
+ XYZ from gp
is
Create returns mutable ViewerSelector3d from StdSelect;
- ---Purpose: Constructs an empty 3D selector object.
- Create(aProj : Projector from Select3D) returns mutable ViewerSelector3d from StdSelect;
- ---Purpose: Constructs a 3D selector object defined by the projector aProj.
+ ---Purpose: Constructs an empty 3D selector object.
- Convert(me:mutable;aSelection:mutable Selection from SelectMgr)
+ Create (theProj : Projector from Select3D) returns mutable ViewerSelector3d from StdSelect;
+ ---Purpose: Constructs a 3D selector object defined by the projector <theProj>.
+
+ Convert (me : mutable; theSel : mutable Selection from SelectMgr)
is redefined static;
- ---Level: Public
- ---Purpose: Processes the projection of the sensitive primitives
- -- in the active view ; to be done before the selection action...
+ ---Level: Public
+ ---Purpose: Processes the projection of the sensitive primitives
+ -- in the active view ; to be done before the selection action...
+ Set (me : mutable; theProj : Projector from Select3D) is static;
+ ---Purpose: Sets the new projector <theProj> to replace the one used at construction time.
- Set(me:mutable; aProj: Projector from Select3D) is static;
- ---Purpose: Sets the new projector aProj to replace the one used at construction time.
-
-
- SetSensitivityMode(me : mutable;
- aMode : SensitivityMode from StdSelect) is static;
+ SetSensitivityMode (me : mutable;
+ theMode : SensitivityMode from StdSelect) is static;
---Purpose: Sets the selection sensitivity mode. SM_WINDOW mode
-- uses the specified pixel tolerance to compute the sensitivity
-- value, SM_VIEW mode allows to define the sensitivity manually.
- SensitivityMode(me) returns SensitivityMode from StdSelect;
+ SensitivityMode (me) returns SensitivityMode from StdSelect;
---C++: inline
---Purpose: Returns the selection sensitivity mode.
- SetPixelTolerance(me : mutable;
- aTolerance : Integer) is static;
- ---Purpose: Sets the pixel tolerance aTolerance.
+ SetPixelTolerance (me : mutable;
+ theTolerance : Integer) is static;
+ ---Purpose: Sets the pixel tolerance <theTolerance>.
- PixelTolerance(me) returns Integer from Standard;
+ PixelTolerance (me) returns Integer from Standard;
---C++: inline
---Purpose: Returns the pixel tolerance.
+ Pick (me : mutable; theXPix, theYPix : Integer;
+ theView : View from V3d) is static;
+ ---Level: Public
+ ---Purpose: Picks the sensitive entity at the pixel coordinates of
+ -- the mouse <theXPix> and <theYPix>. The selector looks for touched areas and owners.
- Pick (me : mutable;XPix,YPix:Integer;
- aView : View from V3d) is static;
- ---Level: Public
- ---Purpose: Picks the sensitive entity at the pixel coordinates of
- -- the mouse Xpix and Ypix. The selector looks for touched areas and owners.
-
-
- Pick (me:mutable;XPMin,YPMin,XPMax,YPMax:Integer;aView:View from V3d) is static;
- ---Purpose: Picks the sensitive entity according to the minimum
- -- and maximum pixel values XPMin, YPMin, XPMax
- -- and YPMax defining a 2D area for selection in the 3D view aView.
-
- Pick (me:mutable;Polyline:Array1OfPnt2d from TColgp;aView:View from V3d) is static;
- ---Level: Public
- ---Purpose: pick action - input pixel values for polyline selection for selection.
-
-
+ Pick (me : mutable; theXPMin, theYPMin, theXPMax, theYPMax : Integer; theView : View from V3d) is static;
+ ---Purpose: Picks the sensitive entity according to the minimum
+ -- and maximum pixel values <theXPMin>, <theYPMin>, <theXPMax>
+ -- and <theYPMax> defining a 2D area for selection in the 3D view aView.
+ Pick (me : mutable; thePolyline : Array1OfPnt2d from TColgp; theView : View from V3d) is static;
+ ---Level: Public
+ ---Purpose: pick action - input pixel values for polyline selection for selection.
---Category: Inquire Methods
Projector (me) returns Projector from Select3D;
- ---Level: Public
- ---Purpose: Returns the current Projector.
- ---C++: inline
- ---C++: return const&
-
-
+ ---Level: Public
+ ---Purpose: Returns the current Projector.
+ ---C++: inline
+ ---C++: return const&
---Category: Internal Methods
-- -----------------
- UpdateProj(me :mutable;
- aView: View from V3d) returns Boolean is static private;
- ---Level: Internal
-
-
- DisplayAreas(me :mutable;
- aView: View from V3d) is static;
- ---Purpose: Displays sensitive areas found in the view aView.
+ UpdateProj (me : mutable;
+ theView : View from V3d) returns Boolean is static private;
+ ---Level: Internal
- ClearAreas (me :mutable;
- aView: View from V3d) is static;
- ---Purpose: Clears the view aView of sensitive areas found in it.
-
- DisplaySensitive(me:mutable;aView : View from V3d) is static;
-
- --- Purpose: Displays the selection aSel found in the view aView.
-
- ClearSensitive(me:mutable;aView:View from V3d) is static;
+ DisplayAreas (me : mutable;
+ theView : View from V3d) is static;
+ ---Purpose: Displays sensitive areas found in the view <theView>.
+ ClearAreas (me : mutable;
+ theView : View from V3d) is static;
+ ---Purpose: Clears the view aView of sensitive areas found in it.
+ DisplaySensitive (me : mutable; theView : View from V3d) is static;
+ --- Purpose: Displays sensitives in view <theView>.
+ ClearSensitive (me : mutable; theView : View from V3d) is static;
- DisplaySensitive(me:mutable;
- aSel : Selection from SelectMgr;
- aView : View from V3d;
- ClearOthers : Boolean from Standard = Standard_True)
+ DisplaySensitive (me : mutable;
+ theSel : Selection from SelectMgr;
+ theView : View from V3d;
+ theToClearOthers : Boolean from Standard = Standard_True)
is static;
-
- DisplayAreas(me:mutable;
- aSel :Selection from SelectMgr;
- aView : View from V3d;
- ClearOthers : Boolean from Standard = Standard_True)
+
+ DisplayAreas (me : mutable;
+ theSel : Selection from SelectMgr;
+ theView : View from V3d;
+ theToClearOthers : Boolean from Standard = Standard_True)
is static;
-
-
- ComputeSensitivePrs(me:mutable;aSel: Selection from SelectMgr)
+
+ ComputeSensitivePrs (me : mutable; theSel: Selection from SelectMgr)
is static private;
- ---Level: Internal
+ ---Level: Internal
- ComputeAreasPrs(me:mutable;aSel:Selection from SelectMgr)
- is static private;
- ---Level: Internal
+ ComputeAreasPrs (me : mutable; theSel : Selection from SelectMgr)
+ is static private;
+ ---Level: Internal
SetClipping (me : mutable; thePlanes : SequenceOfHClipPlane from Graphic3d) is protected;
---Level: Internal
fields
- myprj : Projector from Select3D;
- mycoeff : Real from Standard[14];
- myprevcoeff : Real from Standard[14];
- mycenter : Real from Standard[2];
- myprevcenter : Real from Standard[2];
- mylastzoom : Real from Standard;
- mysensmode : SensitivityMode from StdSelect;
- mypixtol : Integer ;
- myupdatetol : Boolean;
-
-
- --areas verification...
+ myProjector : Projector from Select3D;
+ myPrevAt : Real from Standard[3];
+ myPrevUp : Real from Standard[3];
+ myPrevProj : Real from Standard[3];
+ myPrevAxialScale : Real from Standard[3];
+ myPrevFOV : Real from Standard;
+ myPrevScale : Real from Standard;
+ myPrevOrthographic : Boolean from Standard;
+ mySensMode : SensitivityMode from StdSelect;
+ myPixelTolerance : Integer from Standard;
+ myToUpdateTolerance : Boolean from Standard;
+
+ --areas verification...
myareagroup : Group from Graphic3d;
mysensgroup : Group from Graphic3d;
return nFree;
}
-static Standard_Boolean ReadIsDebugMode()
-{
- OSD_Environment StdSelectdb ("SELDEBUGMODE");
- return !StdSelectdb.Value().IsEmpty();
-}
-
-static Standard_Boolean StdSelectDebugModeOn()
-{
- static const Standard_Boolean isDebugMode = ReadIsDebugMode();
- return isDebugMode;
-}
-
-//==================================================
-// Function:
-// Purpose :
-//==================================================
-
-StdSelect_ViewerSelector3d
-::StdSelect_ViewerSelector3d():
-myprj(new Select3D_Projector()),
-mylastzoom(0.0),
-mysensmode(StdSelect_SM_WINDOW),
-mypixtol(2),
-myupdatetol(Standard_True)
+//=======================================================================
+// Function : Constructor
+// Purpose :
+//=======================================================================
+StdSelect_ViewerSelector3d::StdSelect_ViewerSelector3d()
+: myProjector (new Select3D_Projector()),
+ myPrevFOV (0.0),
+ myPrevScale (0.0),
+ myPrevOrthographic (Standard_True),
+ mySensMode (StdSelect_SM_WINDOW),
+ myPixelTolerance (2),
+ myToUpdateTolerance (Standard_True)
{
- for (Standard_Integer i=0;i<=13;i++) {mycoeff [i] = 0.;myprevcoeff[i]=0.0;}
- for (Standard_Integer j=0;j<2;j++) {mycenter [j] = 0.;myprevcenter[j]=0.0;}
+ myPrevAt[0] = 0.0;
+ myPrevAt[1] = 0.0;
+ myPrevAt[2] = 0.0;
+ myPrevUp[0] = 0.0;
+ myPrevUp[1] = 0.0;
+ myPrevUp[2] = 0.0;
+ myPrevProj[0] = 0.0;
+ myPrevProj[1] = 0.0;
+ myPrevProj[2] = 0.0;
+ myPrevAxialScale[0] = 0.0;
+ myPrevAxialScale[1] = 0.0;
+ myPrevAxialScale[2] = 0.0;
}
-
-//==================================================
-// Function:
-// Purpose :
-//==================================================
-
-StdSelect_ViewerSelector3d
-::StdSelect_ViewerSelector3d(const Handle(Select3D_Projector)& aProj):
-myprj(aProj),
-mylastzoom(0.0),
-mysensmode(StdSelect_SM_WINDOW),
-mypixtol(2),
-myupdatetol(Standard_True)
+//=======================================================================
+// Function : Constructor
+// Purpose :
+//=======================================================================
+StdSelect_ViewerSelector3d::StdSelect_ViewerSelector3d (const Handle(Select3D_Projector)& theProj)
+: myProjector (theProj),
+ myPrevFOV (0.0),
+ myPrevScale (0.0),
+ myPrevOrthographic (Standard_True),
+ mySensMode (StdSelect_SM_WINDOW),
+ myPixelTolerance (2),
+ myToUpdateTolerance (Standard_True)
{
- for (Standard_Integer i=0;i<=13;i++) {mycoeff [i] = 0.;myprevcoeff[i]=0.0;}
- for (Standard_Integer j=0;j<2;j++) {mycenter [j] = 0.;myprevcenter[j]=0.0;}
+ myPrevAt[0] = 0.0;
+ myPrevAt[1] = 0.0;
+ myPrevAt[2] = 0.0;
+ myPrevUp[0] = 0.0;
+ myPrevUp[1] = 0.0;
+ myPrevUp[2] = 0.0;
+ myPrevProj[0] = 0.0;
+ myPrevProj[1] = 0.0;
+ myPrevProj[2] = 0.0;
+ myPrevAxialScale[0] = 0.0;
+ myPrevAxialScale[1] = 0.0;
+ myPrevAxialScale[2] = 0.0;
}
-//==================================================
+//=======================================================================
// Function: Convert
// Purpose :
-//==================================================
-
-void StdSelect_ViewerSelector3d::Convert(const Handle(SelectMgr_Selection)& aSel)
+//=======================================================================
+void StdSelect_ViewerSelector3d::Convert (const Handle(SelectMgr_Selection)& theSel)
{
- for(aSel->Init();aSel->More();aSel->Next())
+ for (theSel->Init(); theSel->More(); theSel->Next())
{
- if(aSel->Sensitive()->NeedsConversion())
+ if (theSel->Sensitive()->NeedsConversion())
{
- Handle(Select3D_SensitiveEntity) SE = *((Handle(Select3D_SensitiveEntity)*) &(aSel->Sensitive()));
- SE->Project(myprj);
- if(!tosort) tosort=Standard_True;
+ Handle(Select3D_SensitiveEntity) aSE = *((Handle(Select3D_SensitiveEntity)*) &(theSel->Sensitive()));
+ aSE->Project (myProjector);
+ if (!tosort)
+ {
+ tosort = Standard_True;
+ }
}
}
}
-//==================================================
+//=======================================================================
// Function: Set
// Purpose :
-//==================================================
-
-void StdSelect_ViewerSelector3d
-::Set(const Handle(Select3D_Projector)& aProj)
+//=======================================================================
+void StdSelect_ViewerSelector3d::Set (const Handle(Select3D_Projector)& theProj)
{
- myprj = aProj;
- toupdate=Standard_True;
+ myProjector = theProj;
+ toupdate = Standard_True;
}
-//==================================================
+//=======================================================================
// Function: SetSensitivityMode
// Purpose :
-//==================================================
-
-void StdSelect_ViewerSelector3d
-::SetSensitivityMode(const StdSelect_SensitivityMode aMode)
+//=======================================================================
+void StdSelect_ViewerSelector3d::SetSensitivityMode (const StdSelect_SensitivityMode theMode)
{
- mysensmode = aMode;
+ mySensMode = theMode;
toupdate = Standard_True;
}
-//==================================================
+//=======================================================================
// Function: SetPixelTolerance
// Purpose :
-//==================================================
-
-void StdSelect_ViewerSelector3d
-::SetPixelTolerance(const Standard_Integer aTolerance)
+//=======================================================================
+void StdSelect_ViewerSelector3d::SetPixelTolerance (const Standard_Integer theTolerance)
{
- if(mypixtol!=aTolerance)
+ if (myPixelTolerance != theTolerance)
{
- mypixtol = aTolerance;
- myupdatetol = Standard_True;
+ myPixelTolerance = theTolerance;
+ myToUpdateTolerance = Standard_True;
}
}
-//==================================================
-// Function: SelectPix
+//=======================================================================
+// Function: Pick
// Purpose :
-//==================================================
-
-void StdSelect_ViewerSelector3d
-::Pick(const Standard_Integer XPix,
- const Standard_Integer YPix,
- const Handle(V3d_View)& aView)
+//=======================================================================
+void StdSelect_ViewerSelector3d::Pick (const Standard_Integer theXPix,
+ const Standard_Integer theYPix,
+ const Handle(V3d_View)& theView)
{
- SetClipping (aView->GetClipPlanes());
- UpdateProj(aView);
- Standard_Real Xr3d,Yr3d,Zr3d;
- gp_Pnt2d P2d;
- aView->Convert(XPix,YPix,Xr3d,Yr3d,Zr3d);
- myprj->Project(gp_Pnt(Xr3d,Yr3d,Zr3d),P2d);
-
- InitSelect(P2d.X(),P2d.Y());
-}
+ SetClipping (theView->GetClipPlanes());
+ UpdateProj (theView);
+
+ Standard_Real aXr3d = 0.0;
+ Standard_Real aYr3d = 0.0;
+ Standard_Real aZr3d = 0.0;
+ gp_Pnt2d aP2d;
+ theView->Convert (theXPix, theYPix, aXr3d, aYr3d, aZr3d);
+ myProjector->Project (gp_Pnt (aXr3d, aYr3d, aZr3d), aP2d);
+ InitSelect (aP2d.X(), aP2d.Y());
+}
-//==================================================
-// Function: InitSelect
+//=======================================================================
+// Function: Pick
// Purpose :
-//==================================================
-
-void StdSelect_ViewerSelector3d
-::Pick(const Standard_Integer XPMin,
- const Standard_Integer YPMin,
- const Standard_Integer XPMax,
- const Standard_Integer YPMax,
- const Handle(V3d_View)& aView)
+//=======================================================================
+void StdSelect_ViewerSelector3d::Pick (const Standard_Integer theXPMin,
+ const Standard_Integer theYPMin,
+ const Standard_Integer theXPMax,
+ const Standard_Integer theYPMax,
+ const Handle(V3d_View)& theView)
{
- if (myupdatetol && SensitivityMode() == StdSelect_SM_WINDOW)
+ if (myToUpdateTolerance && SensitivityMode() == StdSelect_SM_WINDOW)
{
- SetSensitivity (aView->Convert (mypixtol));
- myupdatetol = Standard_False;
+ SetSensitivity (theView->Convert (myPixelTolerance));
+ myToUpdateTolerance = Standard_False;
}
- UpdateProj (aView);
-
- Standard_Real x1,y1,z1,x2,y2,z2;
- gp_Pnt2d P2d_1,P2d_2;
- aView->Convert(XPMin,YPMin,x1,y1,z1);
- aView->Convert(XPMax,YPMax,x2,y2,z2);
- myprj->Project(gp_Pnt(x1,y1,z1),P2d_1);
- myprj->Project(gp_Pnt(x2,y2,z2),P2d_2);
-
- InitSelect (Min(P2d_1.X(),P2d_2.X()),
- Min(P2d_1.Y(),P2d_2.Y()),
- Max(P2d_1.X(),P2d_2.X()),
- Max(P2d_1.Y(),P2d_2.Y()));
+
+ UpdateProj (theView);
+
+ Standard_Real aX1 = 0.0;
+ Standard_Real aY1 = 0.0;
+ Standard_Real aZ1 = 0.0;
+ Standard_Real aX2 = 0.0;
+ Standard_Real aY2 = 0.0;
+ Standard_Real aZ2 = 0.0;
+ gp_Pnt2d aP2d1;
+ gp_Pnt2d aP2d2;
+
+ theView->Convert (theXPMin, theYPMin, aX1, aY1, aZ1);
+ theView->Convert (theXPMax, theYPMax, aX2, aY2, aZ2);
+ myProjector->Project (gp_Pnt (aX1, aY1, aZ1), aP2d1);
+ myProjector->Project (gp_Pnt (aX2, aY2, aZ2), aP2d2);
+
+ InitSelect (Min (aP2d1.X(), aP2d2.X()),
+ Min (aP2d1.Y(), aP2d2.Y()),
+ Max (aP2d1.X(), aP2d2.X()),
+ Max (aP2d1.Y(), aP2d2.Y()));
}
-//==================================================
+//=======================================================================
// Function: Pick
// Purpose : Selection using a polyline
-//==================================================
-
-void StdSelect_ViewerSelector3d::Pick(const TColgp_Array1OfPnt2d& aPolyline, const Handle(V3d_View)& aView)
+//=======================================================================
+void StdSelect_ViewerSelector3d::Pick (const TColgp_Array1OfPnt2d& thePolyline,
+ const Handle(V3d_View)& theView)
{
- if (myupdatetol && SensitivityMode() == StdSelect_SM_WINDOW)
+ if (myToUpdateTolerance && SensitivityMode() == StdSelect_SM_WINDOW)
{
- SetSensitivity (aView->Convert (mypixtol));
- myupdatetol = Standard_False;
+ SetSensitivity (theView->Convert (myPixelTolerance));
+ myToUpdateTolerance = Standard_False;
}
- UpdateProj (aView);
+ UpdateProj (theView);
- Standard_Integer NbPix = aPolyline.Length();
- Standard_Integer i;
+ Standard_Integer aNbPix = thePolyline.Length();
// Convert pixel
- Handle(TColgp_HArray1OfPnt2d) P2d = new TColgp_HArray1OfPnt2d(1,NbPix);
+ Handle(TColgp_HArray1OfPnt2d) aP2d = new TColgp_HArray1OfPnt2d (1, aNbPix);
- for (i = 1; i <= NbPix; ++i)
+ for (Standard_Integer aPntIt = 1; aPntIt <= aNbPix; ++aPntIt)
{
- Standard_Real x,y,z;
- Standard_Integer XP = (Standard_Integer)(aPolyline(i).X());
- Standard_Integer YP = (Standard_Integer)(aPolyline(i).Y());
- gp_Pnt2d Pnt2d;
+ Standard_Integer aXP = (Standard_Integer)(thePolyline (aPntIt).X());
+ Standard_Integer aYP = (Standard_Integer)(thePolyline (aPntIt).Y());
- aView->Convert (XP, YP, x, y, z);
- myprj->Project (gp_Pnt (x, y, z), Pnt2d);
+ Standard_Real aX = 0.0;
+ Standard_Real aY = 0.0;
+ Standard_Real aZ = 0.0;
+ gp_Pnt2d aPnt2d;
- P2d->SetValue (i, Pnt2d);
+ theView->Convert (aXP, aYP, aX, aY, aZ);
+ myProjector->Project (gp_Pnt (aX, aY, aZ), aPnt2d);
+
+ aP2d->SetValue (aPntIt, aPnt2d);
}
- const TColgp_Array1OfPnt2d& aPolyConvert = P2d->Array1();
+ const TColgp_Array1OfPnt2d& aPolyConvert = aP2d->Array1();
- InitSelect(aPolyConvert);
+ InitSelect (aPolyConvert);
}
-//==================================================
+//=======================================================================
// Function: DisplayAreas
// Purpose : display the activated areas...
-//==================================================
-
-void StdSelect_ViewerSelector3d::DisplayAreas(const Handle(V3d_View)& aView)
+//=======================================================================
+void StdSelect_ViewerSelector3d::DisplayAreas (const Handle(V3d_View)& theView)
{
- if (myupdatetol && SensitivityMode() == StdSelect_SM_WINDOW)
+ if (myToUpdateTolerance && SensitivityMode() == StdSelect_SM_WINDOW)
{
- SetSensitivity (aView->Convert (mypixtol));
- myupdatetol = Standard_False;
+ SetSensitivity (theView->Convert (myPixelTolerance));
+ myToUpdateTolerance = Standard_False;
}
- UpdateProj(aView);
+
+ UpdateProj (theView);
UpdateSort(); // Updates the activated areas
- if(mystruct.IsNull())
- mystruct = new Graphic3d_Structure(aView->Viewer()->Viewer());
+ if (mystruct.IsNull())
+ {
+ mystruct = new Graphic3d_Structure (theView->Viewer()->Viewer());
+ }
- if(myareagroup.IsNull())
- myareagroup = new Graphic3d_Group(mystruct);
+ if (myareagroup.IsNull())
+ {
+ myareagroup = new Graphic3d_Group (mystruct);
+ }
- SelectMgr_DataMapIteratorOfDataMapOfIntegerSensitive It(myentities);
- Handle(Select3D_Projector) prj = StdSelect::GetProjector(aView);
- prj->SetView(aView);
+ SelectMgr_DataMapIteratorOfDataMapOfIntegerSensitive anIt (myentities);
+ Handle(Select3D_Projector) aProjector = StdSelect::GetProjector (theView);
+ aProjector->SetView (theView);
- Standard_Real xmin,ymin,xmax,ymax;
- gp_Pnt Pbid;
- SelectBasics_ListOfBox2d BoxList;
+ Standard_Real aXmin = 0.0;
+ Standard_Real aYmin = 0.0;
+ Standard_Real aXmax = 0.0;
+ Standard_Real aYmax = 0.0;
+ gp_Pnt aPbid;
+ SelectBasics_ListOfBox2d aBoxList;
TColgp_SequenceOfPnt aSeqLines;
- for (; It.More(); It.Next())
+ for (; anIt.More(); anIt.Next())
{
- It.Value()->Areas(BoxList);
- for (SelectBasics_ListIteratorOfListOfBox2d itb (BoxList); itb.More(); itb.Next())
+ anIt.Value()->Areas (aBoxList);
+
+ for (SelectBasics_ListIteratorOfListOfBox2d aBoxIt (aBoxList); aBoxIt.More(); aBoxIt.Next())
{
- itb.Value().Get (xmin, ymin, xmax, ymax);
+ aBoxIt.Value().Get (aXmin, aYmin, aXmax, aYmax);
- Pbid.SetCoord (xmin - mytolerance, ymin - mytolerance, 0.0);
- prj->Transform (Pbid, prj->InvertedTransformation());
- aSeqLines.Append(Pbid);
+ aPbid.SetCoord (aXmin - mytolerance, aYmin - mytolerance, 0.0);
+ aProjector->Transform (aPbid, aProjector->InvertedTransformation());
+ aSeqLines.Append (aPbid);
- Pbid.SetCoord (xmax + mytolerance, ymin - mytolerance, 0.0);
- prj->Transform (Pbid, prj->InvertedTransformation());
- aSeqLines.Append(Pbid);
+ aPbid.SetCoord (aXmax + mytolerance, aYmin - mytolerance, 0.0);
+ aProjector->Transform (aPbid, aProjector->InvertedTransformation());
+ aSeqLines.Append (aPbid);
- Pbid.SetCoord (xmax + mytolerance, ymax + mytolerance, 0.0);
- prj->Transform (Pbid, prj->InvertedTransformation());
- aSeqLines.Append(Pbid);
+ aPbid.SetCoord (aXmax + mytolerance, aYmax + mytolerance, 0.0);
+ aProjector->Transform (aPbid, aProjector->InvertedTransformation());
+ aSeqLines.Append (aPbid);
- Pbid.SetCoord (xmin - mytolerance, ymax + mytolerance, 0.0);
- prj->Transform (Pbid, prj->InvertedTransformation());
- aSeqLines.Append(Pbid);
+ aPbid.SetCoord (aXmin - mytolerance, aYmax + mytolerance, 0.0);
+ aProjector->Transform (aPbid, aProjector->InvertedTransformation());
+ aSeqLines.Append (aPbid);
}
}
if (aSeqLines.Length())
{
- Standard_Integer n, np;
- const Standard_Integer nbl = aSeqLines.Length() / 4;
- Handle(Graphic3d_ArrayOfPolylines) aPrims = new Graphic3d_ArrayOfPolylines(5*nbl,nbl);
- for (np = 1, n=0; n<nbl; n++) {
- aPrims->AddBound(5);
- const gp_Pnt &p1 = aSeqLines(np++);
- aPrims->AddVertex(p1);
- aPrims->AddVertex(aSeqLines(np++));
- aPrims->AddVertex(aSeqLines(np++));
- aPrims->AddVertex(aSeqLines(np++));
- aPrims->AddVertex(p1);
+ Standard_Integer aN = 0;
+ Standard_Integer aNp = 0;
+ const Standard_Integer aNbl = aSeqLines.Length() / 4;
+
+ Handle(Graphic3d_ArrayOfPolylines) aPrims = new Graphic3d_ArrayOfPolylines (5 * aNbl, aNbl);
+ for (aNp = 1, aN = 0; aN < aNbl; aN++)
+ {
+ aPrims->AddBound (5);
+ const gp_Pnt &aPnt1 = aSeqLines (aNp++);
+ aPrims->AddVertex (aPnt1);
+ aPrims->AddVertex (aSeqLines (aNp++));
+ aPrims->AddVertex (aSeqLines (aNp++));
+ aPrims->AddVertex (aSeqLines (aNp++));
+ aPrims->AddVertex (aPnt1);
}
- myareagroup->AddPrimitiveArray(aPrims);
+ myareagroup->AddPrimitiveArray (aPrims);
}
myareagroup->SetGroupPrimitivesAspect (new Graphic3d_AspectLine3d (Quantity_NOC_AQUAMARINE1, Aspect_TOL_DASH, 1.0));
- myareagroup->Structure()->SetDisplayPriority(10);
+ myareagroup->Structure()->SetDisplayPriority (10);
myareagroup->Structure()->Display();
- if(aView->TransientManagerBeginDraw())
+ if (theView->TransientManagerBeginDraw())
{
- Visual3d_TransientManager::DrawStructure(mystruct);
+ Visual3d_TransientManager::DrawStructure (mystruct);
Visual3d_TransientManager::EndDraw();
}
else
{
- aView->Update();
+ theView->Update();
}
}
-//==================================================
+//=======================================================================
// Function: ClearAreas
// Purpose :
-//==================================================
-
-void StdSelect_ViewerSelector3d::ClearAreas(const Handle(V3d_View)& aView)
+//=======================================================================
+void StdSelect_ViewerSelector3d::ClearAreas (const Handle(V3d_View)& theView)
{
- if(myareagroup.IsNull()) return;
+ if (myareagroup.IsNull())
+ {
+ return;
+ }
+
myareagroup->Clear();
- if(aView.IsNull()) return;
- if(aView->TransientManagerBeginDraw())
+
+ if (theView.IsNull())
+ {
+ return;
+ }
+
+ if (theView->TransientManagerBeginDraw())
+ {
Visual3d_TransientManager::EndDraw();
+ }
else
- aView->Update();
+ {
+ theView->Update();
+ }
}
-//==================================================
-// Function: updateproj
-// Purpose : at any time verifies that
-// the view coefficients did not change :
-// store current view coeffts
-// in static array cf [ 0->2 At coordinates XAT YAT ZAT
-// 3->5 Up coordinates XUP YUP ZUP
-// 6->8 ProjVect coordinates DX DY DZ
-// 9 focale
-// 10 1. if pers 0. else
-//==================================================
-
-Standard_Boolean StdSelect_ViewerSelector3d::UpdateProj(const Handle(V3d_View)& aView)
+//=======================================================================
+// Function: UpdateProj
+// Purpose :
+//=======================================================================
+Standard_Boolean StdSelect_ViewerSelector3d::UpdateProj (const Handle(V3d_View)& theView)
{
- myprevcoeff[ 9] = 0.0;
- myprevcoeff[10] = 0.0;
- Standard_Boolean Pers = Standard_False;
- if (aView->Type() == V3d_PERSPECTIVE)
+ // Check common properties of camera
+ Standard_Real anUp[3];
+ Standard_Real aProj[3];
+ Standard_Real anAxialScale[3];
+ theView->Up (anUp[0], anUp[1], anUp[2]);
+ theView->Proj (aProj[0], aProj[1], aProj[2]);
+ theView->AxialScale (anAxialScale[0], anAxialScale[1], anAxialScale[2]);
+
+ Standard_Boolean isOrthographic = theView->Type() == V3d_ORTHOGRAPHIC;
+ Standard_Boolean toUpdateProjector = myPrevOrthographic != isOrthographic
+ || myPrevUp[0] != anUp[0]
+ || myPrevUp[1] != anUp[1]
+ || myPrevUp[2] != anUp[2]
+ || myPrevProj[0] != aProj[0]
+ || myPrevProj[1] != aProj[1]
+ || myPrevProj[2] != aProj[2]
+ || myPrevAxialScale[0] != anAxialScale[0]
+ || myPrevAxialScale[1] != anAxialScale[1]
+ || myPrevAxialScale[2] != anAxialScale[2];
+
+ // Check properties of perspective camera
+ Standard_Real anAt[3];
+ Standard_Real aScale = theView->Scale();
+ Standard_Real aFOV = theView->Camera()->FOVy();
+ theView->At (anAt[0], anAt[1], anAt[2]);
+ if (!isOrthographic && !toUpdateProjector)
{
- Pers = Standard_True;
- myprevcoeff[10] = 1.0;
- myprevcoeff[ 9] = aView->Focale();
+ toUpdateProjector = myPrevAt[0] != anAt[0]
+ || myPrevAt[1] != anAt[1]
+ || myPrevAt[2] != anAt[2]
+ || myPrevScale != aScale
+ || myPrevFOV != aFOV;
}
- aView->At (myprevcoeff[0], myprevcoeff[1], myprevcoeff[2]);
- aView->Up (myprevcoeff[3], myprevcoeff[4], myprevcoeff[5]);
- aView->Proj (myprevcoeff[6], myprevcoeff[7], myprevcoeff[8]);
- aView->AxialScale (myprevcoeff[11], myprevcoeff[12], myprevcoeff[13]);
- aView->Center (myprevcenter[0], myprevcenter[1]);
- Standard_Integer ii;
-
- for (ii = 0; ii <= 13 && (myprevcoeff[ii] == mycoeff[ii]); ++ii) {}
- if (ii <= 13 || (myprevcenter[0] != mycenter[0]) || (myprevcenter[1] != mycenter[1]))
+
+ myToUpdateTolerance = aScale != myPrevScale;
+
+ // Update projector if anything changed
+ if (toUpdateProjector)
{
- if (StdSelectDebugModeOn())
- {
- cout<<"\t\t\t\t\t VS3d::UpdateProj====> coefficients changes on reprojette"<<endl;
- cout<<"\t\t\t\t\t";
- for (Standard_Integer i = 1; i <= 9; ++i)
- {
- cout<<mycoeff[i-1]<<" ";
- if (i%3==0)
- cout<<"\n\t\t\t\t\t";
- }
- cout<<"focale :"<<mycoeff[9]<<" persp :"<<mycoeff[10]<<endl;
- cout<<"center :"<<mycenter[0]<<" "<<mycenter[1]<<endl;
- }
toupdate = Standard_True;
- myupdatetol = Standard_True;
- for (Standard_Integer imod = ii; imod <= 13; ++imod)
+
+ myToUpdateTolerance = Standard_True;
+
+ if (isOrthographic)
{
- mycoeff[imod] = myprevcoeff[imod];
+ // For orthographic view use only direction of projection and up vector
+ // Panning, and zooming has no effect on 2D selection sensitives.
+ Handle (Graphic3d_Camera) aCamera = new Graphic3d_Camera();
+
+ aCamera->SetProjectionType (Graphic3d_Camera::Projection_Orthographic);
+ aCamera->SetCenter (gp::Origin());
+ aCamera->SetDirection (gp_Dir (-aProj[0], -aProj[1], -aProj[2]));
+ aCamera->SetUp (gp_Dir (anUp[0], anUp[1], anUp[2]));
+ aCamera->SetDistance (1.0);
+ aCamera->SetAxialScale (gp_XYZ (anAxialScale[0], anAxialScale[1], anAxialScale[2]));
+
+ myProjector = new Select3D_Projector (aCamera->OrientationMatrix(), Graphic3d_Mat4d());
}
- for (Standard_Integer jmod = 0; jmod < 2; ++jmod)
+ else
{
- mycenter[jmod] = myprevcenter[jmod];
+ // For perspective projection panning, zooming and location of view
+ // has effect. Thus, use current view and projection matrices from
+ // view camera. Exception is that the projection transformation
+ // is scaled from NDC to size of displaying frame of view space in order
+ // to maintain consistence with pixel tolerance conversion.
+ const Graphic3d_Mat4d& aMVMatrix = theView->Camera()->OrientationMatrix();
+ const Graphic3d_Mat4d& aProjMatrix = theView->Camera()->ProjectionMatrix();
+ gp_XYZ aViewDimensions = theView->Camera()->ViewDimensions();
+
+ Graphic3d_Mat4d aScaledProj;
+ aScaledProj.ChangeValue (0, 0) = aViewDimensions.X();
+ aScaledProj.ChangeValue (1, 1) = aViewDimensions.Y();
+ aScaledProj.ChangeValue (2, 2) = aViewDimensions.Z();
+ Graphic3d_Mat4d aScaledProjMatrix = aScaledProj * aProjMatrix;
+
+ myProjector = new Select3D_Projector (aMVMatrix, aScaledProjMatrix);
}
-
- myprj = new Select3D_Projector (aView);
-
}
- if (Abs (aView->Scale() - mylastzoom) > 1.e-3)
+ myPrevAt[0] = anAt[0];
+ myPrevAt[1] = anAt[1];
+ myPrevAt[2] = anAt[2];
+ myPrevUp[0] = anUp[0];
+ myPrevUp[1] = anUp[1];
+ myPrevUp[2] = anUp[2];
+ myPrevProj[0] = aProj[0];
+ myPrevProj[1] = aProj[1];
+ myPrevProj[2] = aProj[2];
+ myPrevAxialScale[0] = anAxialScale[0];
+ myPrevAxialScale[1] = anAxialScale[1];
+ myPrevAxialScale[2] = anAxialScale[2];
+ myPrevFOV = aFOV;
+ myPrevScale = aScale;
+ myPrevOrthographic = isOrthographic;
+
+ if (myToUpdateTolerance && SensitivityMode() == StdSelect_SM_WINDOW)
{
- myupdatetol = Standard_True;
- mylastzoom = aView->Scale();
+ SetSensitivity (theView->Convert (myPixelTolerance));
+ myToUpdateTolerance = Standard_False;
}
- if (myupdatetol && SensitivityMode() == StdSelect_SM_WINDOW)
+ if (toupdate)
{
- SetSensitivity (aView->Convert (mypixtol));
- myupdatetol = Standard_False;
+ UpdateConversion();
}
- if (toupdate) UpdateConversion();
- if (tosort) UpdateSort();
+ if (tosort)
+ {
+ UpdateSort();
+ }
return Standard_True;
}
-//=============================
+//=======================================================================
// Function: DisplaySensitive.
// Purpose : Display active primitives.
-//=============================
-void StdSelect_ViewerSelector3d::DisplaySensitive(const Handle(V3d_View)& aViou)
+//=======================================================================
+void StdSelect_ViewerSelector3d::DisplaySensitive (const Handle(V3d_View)& theView)
{
- if (myupdatetol && SensitivityMode() == StdSelect_SM_WINDOW)
+ if (myToUpdateTolerance && SensitivityMode() == StdSelect_SM_WINDOW)
+ {
+ SetSensitivity (theView->Convert (myPixelTolerance));
+ myToUpdateTolerance = Standard_False;
+ }
+
+ if (toupdate)
+ {
+ UpdateProj (theView);
+ }
+
+ if (tosort)
{
- SetSensitivity (aViou->Convert (mypixtol));
- myupdatetol = Standard_False;
+ UpdateSort(); // Updates the activated areas
}
- if(toupdate) UpdateProj(aViou);
- if(tosort) UpdateSort(); // Updates the activated areas
// Preparation des structures
- if(mystruct.IsNull())
- mystruct = new Graphic3d_Structure(aViou->Viewer()->Viewer());
+ if (mystruct.IsNull())
+ {
+ mystruct = new Graphic3d_Structure (theView->Viewer()->Viewer());
+ }
+
+ if (mysensgroup.IsNull())
+ {
+ mysensgroup = new Graphic3d_Group (mystruct);
+ }
- if(mysensgroup.IsNull())
- mysensgroup = new Graphic3d_Group(mystruct);
+ Quantity_Color aColor (Quantity_NOC_INDIANRED3);
+ Handle(Graphic3d_AspectMarker3d) aMarkerAspect =
+ new Graphic3d_AspectMarker3d (Aspect_TOM_O_PLUS, aColor, 2.0);
- Quantity_Color Col(Quantity_NOC_INDIANRED3);
- Handle(Graphic3d_AspectMarker3d) AM =
- new Graphic3d_AspectMarker3d(Aspect_TOM_O_PLUS,Col,2.);
- mysensgroup-> SetPrimitivesAspect (AM);
+ mysensgroup->SetPrimitivesAspect (aMarkerAspect);
mysensgroup->SetPrimitivesAspect (
new Graphic3d_AspectLine3d (Quantity_NOC_GRAY40, Aspect_TOL_SOLID, 2.0));
- // Remplissage de la structure...
+ SelectMgr_DataMapIteratorOfDataMapOfSelectionActivation anIt (myselections);
- SelectMgr_DataMapIteratorOfDataMapOfSelectionActivation It(myselections);
-
- for (; It.More(); It.Next())
+ for (; anIt.More(); anIt.Next())
{
- if (It.Value()==0)
+ if (anIt.Value()==0)
{
- const Handle(SelectMgr_Selection)& Sel = It.Key();
- ComputeSensitivePrs(Sel);
+ const Handle(SelectMgr_Selection)& aSel = anIt.Key();
+ ComputeSensitivePrs (aSel);
}
}
- mysensgroup->Structure()->SetDisplayPriority(10);
+ mysensgroup->Structure()->SetDisplayPriority (10);
mystruct->Display();
- if (aViou->TransientManagerBeginDraw())
+
+ if (theView->TransientManagerBeginDraw())
{
- Visual3d_TransientManager::DrawStructure(mystruct);
+ Visual3d_TransientManager::DrawStructure (mystruct);
Visual3d_TransientManager::EndDraw();
}
- else if (!aViou.IsNull())
+ else if (!theView.IsNull())
{
- aViou->Update();
+ theView->Update();
}
}
-//=============================
+//=======================================================================
// Function: ClearSensitive
// Purpose :
-//=============================
-void StdSelect_ViewerSelector3d::ClearSensitive(const Handle(V3d_View)& aViou)
+//=======================================================================
+void StdSelect_ViewerSelector3d::ClearSensitive (const Handle(V3d_View)& theView)
{
- if(mysensgroup.IsNull()) return;
+ if (mysensgroup.IsNull())
+ {
+ return;
+ }
+
mysensgroup->Clear();
- if(aViou.IsNull()) return;
- if(aViou->TransientManagerBeginDraw())
+ if (theView.IsNull())
+ {
+ return;
+ }
+
+ if (theView->TransientManagerBeginDraw())
+ {
Visual3d_TransientManager::EndDraw();
+ }
else
- aViou->Update();
+ {
+ theView->Update();
+ }
}
//=======================================================================
//function : DisplaySenstive
//purpose :
//=======================================================================
-void StdSelect_ViewerSelector3d::
-DisplaySensitive (const Handle(SelectMgr_Selection)& Sel,
- const Handle(V3d_View)& aViou,
- const Standard_Boolean ClearOthers)
+void StdSelect_ViewerSelector3d::DisplaySensitive (const Handle(SelectMgr_Selection)& theSel,
+ const Handle(V3d_View)& theView,
+ const Standard_Boolean theToClearOthers)
{
if (mystruct.IsNull())
- mystruct = new Graphic3d_Structure (aViou->Viewer()->Viewer());
+ {
+ mystruct = new Graphic3d_Structure (theView->Viewer()->Viewer());
+ }
+
if (mysensgroup.IsNull())
{
mysensgroup = new Graphic3d_Group (mystruct);
- Quantity_Color Col (Quantity_NOC_INDIANRED3);
- Handle(Graphic3d_AspectMarker3d) AM =
- new Graphic3d_AspectMarker3d (Aspect_TOM_O_PLUS, Col, 2.0);
- mysensgroup-> SetPrimitivesAspect (AM);
+ Quantity_Color aColor (Quantity_NOC_INDIANRED3);
+ Handle(Graphic3d_AspectMarker3d) aMarkerAspect =
+ new Graphic3d_AspectMarker3d (Aspect_TOM_O_PLUS, aColor, 2.0);
+
+ mysensgroup-> SetPrimitivesAspect (aMarkerAspect);
mysensgroup->SetPrimitivesAspect (
new Graphic3d_AspectLine3d (Quantity_NOC_GRAY40, Aspect_TOL_SOLID, 2.0));
}
- if(ClearOthers) mysensgroup->Clear();
+ if (theToClearOthers)
+ {
+ mysensgroup->Clear();
+ }
- ComputeSensitivePrs(Sel);
+ ComputeSensitivePrs (theSel);
- mystruct->SetDisplayPriority(10);
+ mystruct->SetDisplayPriority (10);
mystruct->Display();
- if(aViou->TransientManagerBeginDraw())
+ if (theView->TransientManagerBeginDraw())
{
- Visual3d_TransientManager::DrawStructure(mystruct);
+ Visual3d_TransientManager::DrawStructure (mystruct);
Visual3d_TransientManager::EndDraw();
}
- else if(!aViou.IsNull())
+ else if(!theView.IsNull())
{
- aViou->Update();
+ theView->Update();
}
}
//function : DisplayAreas
//purpose :
//=======================================================================
-
-void StdSelect_ViewerSelector3d::
-DisplayAreas (const Handle(SelectMgr_Selection)& Sel,
- const Handle(V3d_View)& aViou,
- const Standard_Boolean ClearOthers)
+void StdSelect_ViewerSelector3d::DisplayAreas (const Handle(SelectMgr_Selection)& theSel,
+ const Handle(V3d_View)& theView,
+ const Standard_Boolean theToClearOthers)
{
if (mystruct.IsNull())
- mystruct = new Graphic3d_Structure (aViou->Viewer()->Viewer());
+ {
+ mystruct = new Graphic3d_Structure (theView->Viewer()->Viewer());
+ }
if (mysensgroup.IsNull())
{
myareagroup = new Graphic3d_Group (mystruct);
- myareagroup->SetGroupPrimitivesAspect(new Graphic3d_AspectLine3d (Quantity_NOC_AQUAMARINE1, Aspect_TOL_DASH, 1.0));
+ myareagroup->SetGroupPrimitivesAspect (
+ new Graphic3d_AspectLine3d (Quantity_NOC_AQUAMARINE1, Aspect_TOL_DASH, 1.0));
}
- if(ClearOthers) myareagroup->Clear();
+ if (theToClearOthers)
+ {
+ myareagroup->Clear();
+ }
- ComputeAreasPrs(Sel);
+ ComputeAreasPrs (theSel);
- mystruct->SetDisplayPriority(10);
+ mystruct->SetDisplayPriority (10);
mystruct->Display();
- if(aViou->TransientManagerBeginDraw())
+ if(theView->TransientManagerBeginDraw())
{
- Visual3d_TransientManager::DrawStructure(mystruct);
+ Visual3d_TransientManager::DrawStructure (mystruct);
Visual3d_TransientManager::EndDraw();
}
else
{
- aViou->Update();
+ theView->Update();
}
}
//function : ComputeSensitivePrs
//purpose :
//=======================================================================
-
-void StdSelect_ViewerSelector3d::ComputeSensitivePrs(const Handle(SelectMgr_Selection)& Sel)
+void StdSelect_ViewerSelector3d::ComputeSensitivePrs (const Handle(SelectMgr_Selection)& theSel)
{
TColgp_SequenceOfPnt aSeqLines, aSeqFree;
TColStd_SequenceOfInteger aSeqBnds;
- for(Sel->Init();Sel->More();Sel->Next())
+ for (theSel->Init(); theSel->More(); theSel->Next())
{
- Handle(Select3D_SensitiveEntity) Ent = Handle(Select3D_SensitiveEntity)::DownCast(Sel->Sensitive());
+ Handle(Select3D_SensitiveEntity) Ent = Handle(Select3D_SensitiveEntity)::DownCast(theSel->Sensitive());
const Standard_Boolean hasloc = (Ent.IsNull()? Standard_False : Ent->HasLocation());
TopLoc_Location theloc;
mysensgroup->SetPrimitivesAspect (new Graphic3d_AspectLine3d (Quantity_NOC_GREEN, Aspect_TOL_SOLID, 2.0));
Handle(Graphic3d_ArrayOfPolylines) aPrims = new Graphic3d_ArrayOfPolylines(aSeqFree.Length(),aSeqFree.Length()/2);
for (i = 1; i <= aSeqFree.Length(); i++)
- {
+ {
aPrims->AddBound(2);
aPrims->AddVertex(aSeqLines(i++));
aPrims->AddVertex(aSeqLines(i));
- }
+ }
mysensgroup->AddPrimitiveArray(aPrims);
mysensgroup->SetPrimitivesAspect (new Graphic3d_AspectLine3d (Quantity_NOC_GRAY40, Aspect_TOL_SOLID, 2.0));
}
//function : ComputeAreaPrs
//purpose :
//=======================================================================
-
-void StdSelect_ViewerSelector3d::ComputeAreasPrs (const Handle(SelectMgr_Selection)& Sel)
+void StdSelect_ViewerSelector3d::ComputeAreasPrs (const Handle(SelectMgr_Selection)& theSel)
{
- Standard_Real xmin, ymin, xmax, ymax;
- gp_Pnt Pbid;
- SelectBasics_ListOfBox2d BoxList;
+ Standard_Real aXmin = 0.0;
+ Standard_Real aYmin = 0.0;
+ Standard_Real aXmax = 0.0;
+ Standard_Real aYmax = 0.0;
+
+ gp_Pnt aPbid;
+ SelectBasics_ListOfBox2d aBoxList;
TColgp_SequenceOfPnt aSeqLines;
- for (Sel->Init(); Sel->More(); Sel->Next())
+ for (theSel->Init(); theSel->More(); theSel->Next())
{
- Sel->Sensitive()->Areas (BoxList);
- for (SelectBasics_ListIteratorOfListOfBox2d itb (BoxList); itb.More(); itb.Next())
+ theSel->Sensitive()->Areas (aBoxList);
+ for (SelectBasics_ListIteratorOfListOfBox2d aBoxIt (aBoxList); aBoxIt.More(); aBoxIt.Next())
{
- itb.Value().Get (xmin, ymin, xmax, ymax);
+ aBoxIt.Value().Get (aXmin, aYmin, aXmax, aYmax);
- Pbid.SetCoord (xmin - mytolerance, ymin - mytolerance, 0.0);
- myprj->Transform (Pbid, myprj->InvertedTransformation());
- aSeqLines.Append(Pbid);
+ aPbid.SetCoord (aXmin - mytolerance, aYmin - mytolerance, 0.0);
+ myProjector->Transform (aPbid, myProjector->InvertedTransformation());
+ aSeqLines.Append (aPbid);
- Pbid.SetCoord (xmax + mytolerance, ymin - mytolerance, 0.0);
- myprj->Transform (Pbid, myprj->InvertedTransformation());
- aSeqLines.Append(Pbid);
+ aPbid.SetCoord (aXmax + mytolerance, aYmin - mytolerance, 0.0);
+ myProjector->Transform (aPbid, myProjector->InvertedTransformation());
+ aSeqLines.Append (aPbid);
- Pbid.SetCoord (xmax + mytolerance, ymax + mytolerance, 0.0);
- myprj->Transform (Pbid, myprj->InvertedTransformation());
- aSeqLines.Append(Pbid);
+ aPbid.SetCoord (aXmax + mytolerance, aYmax + mytolerance, 0.0);
+ myProjector->Transform (aPbid, myProjector->InvertedTransformation());
+ aSeqLines.Append (aPbid);
- Pbid.SetCoord (xmin - mytolerance, ymax + mytolerance, 0.0);
- myprj->Transform (Pbid, myprj->InvertedTransformation());
- aSeqLines.Append(Pbid);
+ aPbid.SetCoord (aXmin - mytolerance, aYmax + mytolerance, 0.0);
+ myProjector->Transform (aPbid, myProjector->InvertedTransformation());
+ aSeqLines.Append (aPbid);
}
}
if (aSeqLines.Length())
{
- Standard_Integer n, np;
- const Standard_Integer nbl = aSeqLines.Length() / 4;
- Handle(Graphic3d_ArrayOfPolylines) aPrims = new Graphic3d_ArrayOfPolylines(5*nbl,nbl);
- for (np = 1, n=0; n<nbl; n++) {
- aPrims->AddBound(5);
- const gp_Pnt &p1 = aSeqLines(np++);
- aPrims->AddVertex(p1);
- aPrims->AddVertex(aSeqLines(np++));
- aPrims->AddVertex(aSeqLines(np++));
- aPrims->AddVertex(aSeqLines(np++));
- aPrims->AddVertex(p1);
+ Standard_Integer aN = 0;
+ Standard_Integer aNP = 0;
+ const Standard_Integer aNBL = aSeqLines.Length() / 4;
+ Handle(Graphic3d_ArrayOfPolylines) aPrims = new Graphic3d_ArrayOfPolylines (5 * aNBL, aNBL);
+ for (aNP = 1, aN = 0; aN < aNBL; aN++)
+ {
+ aPrims->AddBound (5);
+ const gp_Pnt &aP1 = aSeqLines (aNP++);
+ aPrims->AddVertex (aP1);
+ aPrims->AddVertex (aSeqLines (aNP++));
+ aPrims->AddVertex (aSeqLines (aNP++));
+ aPrims->AddVertex (aSeqLines (aNP++));
+ aPrims->AddVertex (aP1);
}
- myareagroup->AddPrimitiveArray(aPrims);
+ myareagroup->AddPrimitiveArray (aPrims);
}
}
//=======================================================================
gp_Lin StdSelect_ViewerSelector3d::PickingLine(const Standard_Real theX, const Standard_Real theY) const
{
- return myprj->Shoot (theX, theY);
+ return myProjector->Shoot (theX, theY);
}
//=======================================================================
inline StdSelect_SensitivityMode StdSelect_ViewerSelector3d::SensitivityMode() const
{
- return mysensmode;
+ return mySensMode;
}
inline Standard_Integer StdSelect_ViewerSelector3d::PixelTolerance() const
{
- return mypixtol;
+ return myPixelTolerance;
}
inline const Handle(Select3D_Projector)& StdSelect_ViewerSelector3d::Projector() const
{
- return myprj;
+ return myProjector;
}
ExtendedString from TCollection,
PrintAlgo from Aspect,
ClipPlane_Handle from Graphic3d,
- SequenceOfHClipPlane from Graphic3d
+ SequenceOfHClipPlane from Graphic3d,
+ XYZ from gp
raises
BadValue from V3d, TypeMismatch from Standard,
returns Boolean from Standard;
---Purpose: sets the immediate update mode and returns the previous one.
- SetAutoZFitMode( me : mutable; theMode : Boolean );
+ SetAutoZFitMode (me : mutable;
+ theIsOn : Boolean;
+ theScaleFactor : Real from Standard = 1.0);
---Level: public
- ---Purpose: sets the auto z-fit mode
-
- AutoZFitMode( me ) returns Boolean;
+ ---Purpose: Sets the automatic z-fit mode and its parameters.
+ -- The auto z-fit has extra parameters which can controlled from application level
+ -- to ensure that the size of viewing volume will be sufficiently large to cover
+ -- the depth of unmanaged objects, for example, transformation persistent ones.
+ -- @param theScaleFactor [in] the scale factor for Z-range.
+ -- The range between Z-min, Z-max projection volume planes
+ -- evaluated by z fitting method will be scaled using this coefficient.
+ -- Program error exception is thrown if negative or zero value
+ -- is passed.
+
+ AutoZFitMode (me) returns Boolean;
---Level: public
- ---Purpose: returns current auto z-fit mode
+ ---Purpose: returns TRUE if automatic z-fit mode is turned on.
+ AutoZFitScaleFactor (me) returns Real from Standard;
+ ---Level: public
+ ---Purpose: returns scale factor parameter of automatic z-fit mode.
---------------------------------------------------
-- Triedron methods
-- the current axis a distance relative to the initial
-- position expressed by Start = Standard_True
- Place (me: mutable; x,y: Integer from Standard;
- aZoomFactor: Factor from Quantity = 1)
+ Place (me : mutable;
+ theXp : Integer from Standard;
+ theYp : Integer from Standard;
+ theZoomFactor : Factor from Quantity = 1)
---Level: Public
- ---Purpose: places the point of the view corresponding
- -- at the pixel position x,y at the center of the window
- -- and updates the view.
- is static;
+ ---Purpose: places the point of the view corresponding
+ -- at the pixel position x,y at the center of the window
+ -- and updates the view.
+ is static;
Turn ( me : mutable ; Ax,Ay,Az : PlaneAngle ;
Start : Boolean = Standard_True )
---Category: Methods to modify the Mapping of the view
--------------------------------------------------------
- Panning ( me : mutable ; Dx , Dy : Length ;
- aZoomFactor : Factor from Quantity = 1;
- Start : Boolean = Standard_True )
- ---Level: Public
- ---Purpose: translates the center of the view and zooms the view.
- -- Updates the view.
- raises BadValue from V3d ;
-
- SetCenter ( me : mutable ; Xc , Yc : Coordinate )
- ---Level: Public
- ---Purpose: Defines the centre of the view.
- -- Updates the view.
- raises BadValue from V3d ;
- -- If one of the dimensions of the projection is NULL.
-
- SetCenter ( me : mutable ; X,Y: Integer from Standard)
- ---Level: Public
- ---Purpose: Defines the centre of the view from a pixel position.
- -- Updates the view.
- raises BadValue from V3d ;
- -- If one of the dimensions of the projection is NULL.
+ Panning (me : mutable;
+ theDXv : Real from Standard;
+ theDYv : Real from Standard;
+ theZoomFactor : Factor from Quantity = 1;
+ theToStart : Boolean = Standard_True);
+ ---Level: Public
+ ---Purpose: Translates the center of the view along "x" and "y" axes of
+ -- view projection. Can be used to perform interactive panning operation.
+ -- In that case the DXv, DXy parameters specify panning relative to the
+ -- point where the operation is started.
+ -- @param theDXv [in] the relative panning on "x" axis of view projection, in view space coordinates.
+ -- @param theDYv [in] the relative panning on "y" axis of view projection, in view space coordinates.
+ -- @param theZoomFactor [in] the zooming factor.
+ -- @param theToStart [in] pass TRUE when starting panning to remember view
+ -- state prior to panning for relative arguments. If panning is started,
+ -- passing {0, 0} for {theDXv, theDYv} will return view to initial state.
+ -- Performs update of view.
+
+ SetCenter (me : mutable; theXp, theYp : Integer from Standard)
+ ---Level: Public
+ ---Purpose: Relocates center of screen to the point, determined by
+ -- {Xp, Yp} pixel coordinates relative to the bottom-left corner of
+ -- screen. To calculate pixel coordinates for any point from world
+ -- coordinate space, it can be projected using "Project".
+ -- @param theXp [in] the x coordinate.
+ -- @param theYp [in] the y coordinate.
+ raises BadValue from V3d;
+ -- If one of the dimensions of the projection is NULL.
SetSize ( me : mutable ; Size : Length )
---Level: Public
raises BadValue from V3d ;
-- If the one of factors <= 0
- FitAll ( me : mutable ; Coef : Coefficient = 0.01; update : Boolean from Standard = Standard_True )
+ FitAll (me : mutable;
+ theMargin : Coefficient = 0.01;
+ theToUpdate : Boolean from Standard = Standard_True);
---Level: Public
- ---Purpose: Automatic zoom/panning. Objects in the view are visualised
- -- so as to occupy the maximum space while respecting the
- -- margin coefficient and the initial height /width ratio.
- -- Fits Z depending on AutoZFit option.
- raises BadValue from V3d ;
- -- If the margin coefficient is <0 ou >= 1 or
- -- Updates the view
+ ---Purpose: Adjust view parameters to fit the displayed scene, respecting height / width ratio.
+ -- The Z clipping range (depth range) is fitted if AutoZFit flag is TRUE.
+ -- Throws program error exception if margin coefficient is < 0 or >= 1.
+ -- Updates the view.
+ -- @param theMargin [in] the margin coefficient for view borders.
+ -- @param theToUpdate [in] flag to perform view update.
- ZFitAll ( me : mutable ; Coef : Coefficient = 1.0 )
+ ZFitAll (me : mutable; theScaleFactor : Real from Standard = 1.0);
---Level: Public
- ---Purpose: Automatic Depth Panning. Objects visible in the view are
- -- visualised so as to occupy the maximum Z amount of space
- -- while respecting the margin coefficient .
- -- NOTE than the original XY size of the view is NOT modified .
- raises BadValue from V3d ;
- -- If the margin coefficient is <0 ou or
- -- If No Objects are displayed in the view
+ ---Purpose: Change Z-min and Z-max planes of projection volume to match the
+ -- displayed objects. The methods ensures that view volume will
+ -- be close by depth range to the displayed objects. Fitting assumes that
+ -- for orthogonal projection the view volume contains the displayed objects
+ -- completely. For zoomed perspective view, the view volume is adjusted such
+ -- that it contains the objects or their parts, located in front of the camera.
+ -- @param theScaleFactor [in] the scale factor for Z-range.
+ -- The range between Z-min, Z-max projection volume planes
+ -- evaluated by z fitting method will be scaled using this coefficient.
+ -- Program error exception is thrown if negative or zero value is passed.
- AutoZFit ( me : mutable );
+ AutoZFit (me : mutable);
---Level: Public
- ---Purpose: Automatic z-range fitting with ZFitAll. Works only if myAutoZFit enabled.
+ ---Purpose: If automatic z-range fitting is turned on, adjusts Z-min and Z-max
+ -- projection volume planes with call to ZFitAll.
DepthFitAll( me : mutable ; Aspect : Coefficient = 0.01;
Margin : Coefficient = 0.01 );
-- calculated Z size and Aspect parameter.
-- NOTE than the original XY size of the view is NOT modified .
- FitAll ( me : mutable ; Umin, Vmin, Umax, Vmax : Coordinate )
+ FitAll (me : mutable;
+ theMinXv : Real from Standard;
+ theMinYv : Real from Standard;
+ theMaxXv : Real from Standard;
+ theMaxYv : Real from Standard)
---Level: Public
- ---Purpose: Centres the defined projection window so that it occupies
+ ---Purpose: Centers the defined projection window so that it occupies
-- the maximum space while respecting the initial
-- height/width ratio.
-- NOTE than the original Z size of the view is NOT modified .
raises BadValue from V3d;
-- If the defined projection window has zero size.
-
- WindowFit ( me : mutable ; Xmin, Ymin, Xmax, Ymax : Integer)
+ WindowFit (me : mutable; theMinXp, theMinYp, theMaxXp, theMaxYp : Integer)
---Level: Public
- ---Purpose: Centres the defined PIXEL window so that it occupies
- -- the maximum space while respecting the initial
- -- height/width ratio.
- -- NOTE than the original Z size of the view is NOT modified .
- raises BadValue from V3d
- -- If the defined projection window has zero size.
+ ---Purpose: Centers the defined PIXEL window so that it occupies
+ -- the maximum space while respecting the initial height/width ratio.
+ -- NOTE than the original Z size of the view is NOT modified.
+ -- @param theMinXp [in] pixel coordinates of minimal corner on x screen axis.
+ -- @param theMinYp [in] pixel coordinates of minimal corner on y screen axis.
+ -- @param theMaxXp [in] pixel coordinates of maximal corner on x screen axis.
+ -- @param theMaxYp [in] pixel coordinates of maximal corner on y screen axis.
is static;
-
- SetViewingVolume ( me : mutable ; Left, Right, Bottom, Top, ZNear, ZFar : Real from Standard)
- ---Level: Public
- ---Purpose: Sets Z and XY size of the view according to given values
- -- with respecting the initial view depth (eye position).
- -- Width/heigth aspect ratio should be preserved by the caller
- -- of this method similarly to SetSize() to avoid unexpected
- -- visual results like non-uniform scaling of objects in the view.
- raises BadValue from V3d;
- -- If the ZNear<0, ZFar<0 or ZNear>=Zfar.
-
SetViewMappingDefault( me : mutable );
---Level: Public
---Purpose: Saves the current view mapping. This will be the
ResetViewMapping ( me : mutable );
---Level: Public
- ---Purpose: Resets the centring of the view.
+ ---Purpose: Resets the centering of the view.
-- Updates the view
Reset ( me : mutable; update : Boolean from Standard = Standard_True );
---Level: Public
- ---Purpose: Resets the centring and the orientation of the view
+ ---Purpose: Resets the centering and the orientation of the view
-- Updates the view
---------------------------------------------------
---Category: Inquire methods
---Level: Public
---Purpose: Returns the current values of the anisotropic (axial) scale factors.
- Center ( me; Xc,Yc : out Coordinate );
- ---Level: Public
- ---Purpose: Returns the centre of the view.
-
Size ( me; Width, Height : out Length );
---Level: Public
---Purpose: Returns the height and width of the view.
---Level: Public
---Purpose: Returns the Type of the View
- Pan ( me : mutable; Dx, Dy: Integer from Standard;
- aZoomFactor: Factor from Quantity = 1);
- ---Level: Public
- ---Purpose: translates the center of the view and zooms the view.
- -- and updates the view.
-
- Zoom ( me : mutable; X1 , Y1 , X2 , Y2 : Integer from Standard)
- is static;
- ---Level: Public
- ---Purpose: Zoom the view according to a zoom factor computed
- -- from the distance between the 2 mouse position <X1,Y1>,<X2,Y2>
-
- Zoom ( me: mutable; X,Y: Integer from Standard)
+ Pan (me : mutable;
+ theDXp : Integer from Standard;
+ theDYp : Integer from Standard;
+ theZoomFactor : Factor from Quantity = 1;
+ theToStart : Boolean = Standard_True);
+ ---Level: Public
+ ---Purpose: Translates the center of the view along "x" and "y" axes of
+ -- view projection. Can be used to perform interactive panning operation.
+ -- In that case the DXp, DXp parameters specify panning relative to the
+ -- point where the operation is started.
+ -- @param theDXp [in] the relative panning on "x" axis of view projection, in pixels.
+ -- @param theDYp [in] the relative panning on "y" axis of view projection, in pixels.
+ -- @param theZoomFactor [in] the zooming factor.
+ -- @param theToStart [in] pass TRUE when starting panning to remember view
+ -- state prior to panning for relative arguments. Passing 0 for relative
+ -- panning parameter should return view panning to initial state.
+ -- Performs update of view.
+
+ Zoom (me : mutable;
+ theXp1 : Integer from Standard;
+ theYp1 : Integer from Standard;
+ theXp2 : Integer from Standard;
+ theYp2 : Integer from Standard)
is static;
---Level: Public
---Purpose: Zoom the view according to a zoom factor computed
- -- from the distance between the last and new mouse position <X,Y>
+ -- from the distance between the 2 mouse position.
+ -- @param theXp1 [in] the x coordinate of first mouse position, in pixels.
+ -- @param theYp1 [in] the y coordinate of first mouse position, in pixels.
+ -- @param theXp2 [in] the x coordinate of second mouse position, in pixels.
+ -- @param theYp2 [in] the y coordinate of second mouse position, in pixels.
- StartZoomAtPoint(me : mutable;
- xpix, ypix : Integer from Standard);
+ StartZoomAtPoint (me : mutable;
+ theXp : Integer from Standard;
+ theYp : Integer from Standard);
---Level: Public
- ---Purpose: Defines the point (pixel) of zooming (for the method ZoomAtPoint()).
+ ---Purpose: Defines starting point for ZoomAtPoint view operation.
+ -- @param theXp [in] the x mouse coordinate, in pixels.
+ -- @param theYp [in] the y mouse coordinate, in pixels.
ZoomAtPoint(me : mutable;
- mouseStartX, mouseStartY, mouseEndX, mouseEndY : Integer from Standard);
+ theMouseStartX : Integer from Standard;
+ theMouseStartY : Integer from Standard;
+ theMouseEndX : Integer from Standard;
+ theMouseEndY : Integer from Standard);
---Level: Public
---Purpose: Zooms the model at a pixel defined by the method StartZoomAtPoint().
StartRotation(me : mutable ; X,Y :Integer from Standard;
zRotationThreshold: Ratio from Quantity = 0.0);
---Level: Public
- ---Purpose: Begin the rotation of the view arround the screen axis
+ ---Purpose: Begin the rotation of the view around the screen axis
-- according to the mouse position <X,Y>.
-- Warning: Enable rotation around the Z screen axis when <zRotationThreshold>
-- factor is > 0 soon the distance from the start point and the center
-- of the view is > (medium viewSize * <zRotationThreshold> ).
-- Generally a value of 0.4 is usable to rotate around XY screen axis
- -- inside the circular treshold area and to rotate around Z screen axis
+ -- inside the circular threshold area and to rotate around Z screen axis
-- outside this area.
Rotation(me:mutable; X,Y :Integer from Standard);
-- you use it for your purposes;
-- Warning: Works only under Windows.
- ToPixMap ( me : mutable;
- theImage : in out PixMap from Image;
- theWidth : Integer from Standard;
- theHeight : Integer from Standard;
- theBufferType : BufferType from Graphic3d = Graphic3d_BT_RGB;
- theForceCentered : Boolean from Standard = Standard_True;
- theStereoOptions : StereoDumpOptions from V3d = V3d_SDO_MONO )
+ ToPixMap (me : mutable;
+ theImage : in out PixMap from Image;
+ theWidth : Integer from Standard;
+ theHeight : Integer from Standard;
+ theBufferType : BufferType from Graphic3d = Graphic3d_BT_RGB;
+ theToKeepAspect : Boolean from Standard = Standard_True;
+ theStereoOptions : StereoDumpOptions from V3d = V3d_SDO_MONO)
returns Boolean from Standard;
---Level : Public
- ---Purpose : dump the full contents of the view
- -- to a pixmap of pixel size <theWidth>*<theHeight> and
- -- buffer type <theBufferType>. If <theForceCentered> is true
- -- view scene will be centered.
- -- Pixmap will be automatically (re)allocated when needed.
- -- For stereographic camera by default the monographic projection
- -- is used during dumping. <theStereoOptions> flag can be used to
- -- dump projection for left right eye.
+ ---Purpose : Dumps the full contents of the view
+ -- to a pixmap of pixel size <theWidth> * <theHeight> and
+ -- buffer type <theBufferType>. If <theToKeepAspect> is true
+ -- the aspect ratio of view will be kept if <theWidth> and <theHeight>
+ -- define another ratio.
+ -- Pixmap will be automatically (re)allocated when needed.
+ -- When dumping stereographic camera - the corresponding
+ -- middle-point monographic projection will be used for dumping by default.
+ -- <theStereoOptions> flags are to be used for dumping then left or
+ -- right eye projections.
SetProjModel( me : mutable;
amOdel: TypeOfProjectionModel from V3d = V3d_TPM_SCREEN )
---Purpose: Adds clip plane to the view. The composition of clip planes truncates the
-- rendering space to convex volume. Number of supported clip planes can be consulted
-- by PlaneLimit method of associated Visual3d_View. Please be aware that the planes
- -- which exceed the limit are igonred during rendering.
+ -- which exceed the limit are ignored during rendering.
-- @param thePlane [in] the clip plane to be added to view.
RemoveClipPlane (me : mutable; thePlane : ClipPlane_Handle from Graphic3d) is virtual;
-- truncates the rendering space to convex volume. Number of supported
-- clip planes can be consulted by PlaneLimit method of associated
-- Visual3d_View. Please be aware that the planes which exceed the limit
- -- are igonred during rendering.
+ -- are ignored during rendering.
-- @param thePlanes [in] the clip planes to set.
GetClipPlanes (me) returns SequenceOfHClipPlane from Graphic3d;
Camera (me) returns Camera_Handle from Graphic3d is static;
---Level: Public
+ ---C++: return const&
---Purpose: Returns camera object of the view.
-- @return: handle to camera object, or NULL if 3D view does not use
-- the camera approach.
- FitCamera (me : mutable;
- theXmin : Real from Standard;
- theYmin : Real from Standard;
- theZmin : Real from Standard;
- theXmax : Real from Standard;
- theYmax : Real from Standard;
- theZmax : Real from Standard) is protected;
+ FitMinMax (me;
+ theCamera : Camera_Handle from Graphic3d;
+ theMinCorner : XYZ from gp;
+ theMaxCorner : XYZ from gp;
+ theMargin : Real from Standard;
+ theResolution : Real from Standard = 0.0;
+ theToEnlargeIfLine : Boolean from Standard = Standard_True)
+ returns Boolean from Standard is protected;
---Level: Protected
- ---Purpose: Transform camera to fit in the passed bounding box
- -- specified in world coordinate space.
- -- @param theXmin [in] x min bounding.
- -- @param theYmin [in] y min bounding.
- -- @param theZmin [in] z min bounding.
- -- @param theXmax [in] x max bounding.
- -- @param theYmax [in] y max bounding.
- -- @param theZmax [in] z max bounding.
-
- ZoomCamera (me : mutable;
- theUSize : Real from Standard;
- theVSize : Real from Standard;
- theZDepth : Real from Standard = 0.0) is protected;
+ ---Purpose: Transform camera eye, center and scale to fit in the
+ -- passed bounding box specified in WCS.
+ -- @param theCamera [in] the camera.
+ -- @param theMinCorner [in] the minimal corner of bounding box.
+ -- @param theMaxCorner [in] the maximal corner of bounding box.
+ -- @param theMargin [in] the margin coefficient for view borders.
+ -- @param theResolution [in] the minimum size of projection of
+ -- bounding box in Xv or Yv direction when it considered to
+ -- be a thin plane or point (without a volume).
+ -- In this case only the center of camera is adjusted.
+ -- @param theToEnlargeIfLine [in] if passed TRUE - in cases when the
+ -- whole bounding box projected into thin line going along
+ -- Z-axis of screen, the view plane is enlarged such that
+ -- we see the whole line on rotation, otherwise only the
+ -- center of camera is adjusted.
+ -- @return TRUE if the fit all operation can be done.
+
+ Scale (me;
+ theCamera : Camera_Handle from Graphic3d;
+ theSizeXv : Real from Standard;
+ theSizeYv : Real from Standard) is protected;
---Level: Protected
- ---Purpose: Zoom camera to fit the section defined in view coordinate space
- -- lying on the view direction ray. For orthogonal camera the method
- -- changes scale, for perspective adjusts Eye location about the Center point.
- -- Depth by Z defines distance of the zoomed section from camera Center.
- -- It is optional and for orthographic camera has no effect.
- -- @param theUSize [in] size of view section on U axis (horizontal to the screen).
- -- @param theVSize [in] size of view section on V axis (vertical to the screen).
- -- @param theZDepth [in] distance from camera center to the specified section.
-
- PanCamera (me : mutable;
- theU : Real from Standard;
- theV : Real from Standard) is protected;
+ ---Purpose: Scales camera to fit the view frame of defined width and height
+ -- keeping the aspect. For orthogonal camera the method changes scale,
+ -- for perspective adjusts Eye location about the Center point.
+ -- @param theSizeXv [in] size of viewport frame on "x" axis.
+ -- @param theSizeYv [in] size of viewport frame on "y" axis.
+
+ Translate (me;
+ theCamera : Camera_Handle from Graphic3d;
+ theDXv : Real from Standard;
+ theDYv : Real from Standard) is protected;
---Level: Protected
- ---Purpose: Pan camera along the view plane on the passed U, V distances.
- -- @param theU [in] the horizontal panning.
- -- @param theV [in] the vertical panning.
+ -- Purpose: Translates camera eye and center along the view plane.
+ -- @param theCamera [in] the camera to translate.
+ -- @param theDXv [in] the translation in "x" direction.
+ -- @param theDYv [in] the translation in "y" direction.
SetRaytracingMode (me : mutable) is static;
---Level: Public
MyTransparencyFlag : Boolean from Standard;
myImmediateUpdate: Boolean from Standard is protected;
- myXscreenAxis: Vector from Graphic3d;
- myYscreenAxis: Vector from Graphic3d;
- myZscreenAxis: Vector from Graphic3d;
- myViewAxis: Vector from Graphic3d;
- myGravityReferencePoint: Vertex from Graphic3d;
- myCamProjectionShift: Pnt from gp;
- myAutoZFitMode: Boolean from Standard;
+ myXscreenAxis : Vector from Graphic3d;
+ myYscreenAxis : Vector from Graphic3d;
+ myZscreenAxis : Vector from Graphic3d;
+ myViewAxis : Vector from Graphic3d;
+ myGravityReferencePoint : Vertex from Graphic3d;
+ myCamProjectionShift : Pnt from gp;
+ myAutoZFitIsOn : Boolean from Standard;
+ myAutoZFitScaleFactor : Real from Standard;
friends
*/
#include <Standard_TypeMismatch.hxx>
+#include <Standard_ShortReal.hxx>
+#include <Standard_Assert.hxx>
+#include <Standard_ErrorHandler.hxx>
+#include <Standard_DivideByZero.hxx>
+
+#include <Visual3d_TransientManager.hxx>
#include <Visual3d_ViewManager.hxx>
#include <Visual3d_Light.hxx>
-#include <Image_AlienPixMap.hxx>
+#include <Visual3d_Layer.hxx>
+
#include <V3d.hxx>
#include <V3d_View.ixx>
#include <V3d_BadValue.hxx>
#include <V3d_StereoDumpOptions.hxx>
-#include <Standard_ShortReal.hxx>
+
+#include <Image_AlienPixMap.hxx>
+
#include <gp_Dir.hxx>
#include <gp_Pln.hxx>
#include <TColStd_Array2OfReal.hxx>
-#include <Visual3d_TransientManager.hxx>
+#include <TColStd_HSequenceOfInteger.hxx>
+
+#include <Bnd_Box.hxx>
+
#include <Precision.hxx>
#include <Graphic3d_Structure.hxx>
#include <Aspect_WidthMap.hxx>
#include <Aspect_MarkMap.hxx>
#include <Aspect_FontMap.hxx>
-#include <TColStd_HSequenceOfInteger.hxx>
+#include <Aspect.hxx>
#define V3d_FLAG_COMPUTATION 0x00000004
#define DEUXPI (2. * M_PI)
-/*----------------------------------------------------------------------*/
-//-Constructors
-
+//=============================================================================
+//function : Constructor
+//purpose :
+//=============================================================================
V3d_View::V3d_View(const Handle(V3d_Viewer)& VM, const V3d_TypeOfView Type ) :
MyProjModel(V3d_TPM_SCREEN),
MyViewer(VM.operator->()),
MyActiveLights(),
MyViewContext (),
myActiveLightsIterator(),
- SwitchSetFront(Standard_False),
+ SwitchSetFront(Standard_False),
MyTrsf (1, 4, 1, 4),
- myAutoZFitMode (Standard_True)
+ myAutoZFitIsOn (Standard_True),
+ myAutoZFitScaleFactor (1.0)
{
myImmediateUpdate = Standard_False;
MyView = new Visual3d_View(MyViewer->Viewer());
SetZCueingDepth (0.);
SetZCueingWidth (zsize);
SetDepth (VM->DefaultViewSize()/2.0);
- SetCenter (0.,0.);
SetViewMappingDefault();
VM->AddView (this);
Init();
MyTransparencyFlag = Standard_False;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Constructor
+//purpose :
+//=============================================================================
V3d_View::V3d_View(const Handle(V3d_Viewer)& theVM,const Handle(V3d_View)& theView) :
-MyProjModel(V3d_TPM_SCREEN),
-MyViewer(theVM.operator->()),
-MyActiveLights(),
-MyViewContext (),
-myActiveLightsIterator(),
-SwitchSetFront(Standard_False),
-MyTrsf (1, 4, 1, 4),
-myAutoZFitMode (Standard_True)
+ MyProjModel(V3d_TPM_SCREEN),
+ MyViewer(theVM.operator->()),
+ MyActiveLights(),
+ MyViewContext (),
+ myActiveLightsIterator(),
+ SwitchSetFront(Standard_False),
+ MyTrsf (1, 4, 1, 4)
{
Handle(Visual3d_View) aFromView = theView->View();
MyViewContext = aFromView->Context() ;
SetCamera (new Graphic3d_Camera (theView->Camera()));
+ myAutoZFitIsOn = theView->AutoZFitMode();
+ myAutoZFitScaleFactor = theView->AutoZFitScaleFactor();
MyBackground = aFromView->Background() ;
MyGradientBackground = aFromView->GradientBackground();
myImmediateUpdate = Standard_True;
}
-/*----------------------------------------------------------------------*/
-
-//-Methods, in order
-
+//=============================================================================
+//function : SetMagnify
+//purpose :
+//=============================================================================
void V3d_View::SetMagnify(const Handle(Aspect_Window)& TheWindow,
const Handle(V3d_View)& aPreviousView,
const Standard_Integer x1,
}
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetWindow
+//purpose :
+//=============================================================================
void V3d_View::SetWindow(const Handle(Aspect_Window)& TheWindow)
{
Standard_MultiplyDefined_Raise_if( MyView->IsDefined(),
MyView->Redraw() ;
}
-// RIC120302
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetWindow
+//purpose :
+//=============================================================================
void V3d_View::SetWindow(const Handle(Aspect_Window)& aWindow,
const Aspect_RenderingContext aContext,
const Aspect_GraphicCallbackProc& aDisplayCB,
MyViewer->SetViewOn(this) ;
MyView->Redraw() ;
}
-// RIC120302
-
-/*----------------------------------------------------------------------*/
+//=============================================================================
+//function : Remove
+//purpose :
+//=============================================================================
void V3d_View::Remove() const
{
MyViewer->DelView (this);
aWin.Nullify();
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Update
+//purpose :
+//=============================================================================
void V3d_View::Update() const
{
if( MyView->IsDefined() ) MyView->Update() ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Redraw
+//purpose :
+//=============================================================================
void V3d_View::Redraw() const
{
if( MyView->IsDefined() ) MyView->Redraw() ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Redraw
+//purpose :
+//=============================================================================
void V3d_View::Redraw(const Standard_Integer xc,const Standard_Integer yc,
const Standard_Integer width,const Standard_Integer height) const
{
if( MyView->IsDefined() ) MyView->Redraw(xc,yc,width,height) ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : IsEmpty
+//purpose :
+//=============================================================================
Standard_Boolean V3d_View::IsEmpty() const
{
Standard_Boolean TheStatus = Standard_True ;
return (TheStatus) ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : UpdateLights
+//purpose :
+//=============================================================================
void V3d_View::UpdateLights() const
{
MyView->SetContext(MyViewContext);
Update();
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : DoMapping
+//purpose :
+//=============================================================================
void V3d_View::DoMapping()
{
if( MyView->IsDefined() ) {
}
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : MustBeResized
+//purpose :
+//=============================================================================
void V3d_View::MustBeResized()
{
if ( !MyLayerMgr.IsNull() )
}
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetBackgroundColor
+//purpose :
+//=============================================================================
void V3d_View::SetBackgroundColor(const Quantity_TypeOfColor Type, const Standard_Real v1, const Standard_Real v2, const Standard_Real v3)
{
Standard_Real V1 = Max( Min( v1, 1.0 ), 0.0 );
SetBackgroundColor( C );
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetBackgroundColor
+//purpose :
+//=============================================================================
void V3d_View::SetBackgroundColor(const Quantity_Color &Color)
{
MyBackground.SetColor( Color );
MyLayerMgr->Resized();
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetBackgroundColor
+//purpose :
+//=============================================================================
void V3d_View::SetBackgroundColor(const Quantity_NameOfColor Name)
{
Quantity_Color C( Name );
SetBackgroundColor( C );
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetBgGradientColors
+//purpose :
+//=============================================================================
void V3d_View::SetBgGradientColors( const Quantity_Color& Color1,
const Quantity_Color& Color2,
const Aspect_GradientFillMethod FillStyle,
MyView->SetGradientBackground( MyGradientBackground, status );
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetBgGradientColors
+//purpose :
+//=============================================================================
void V3d_View::SetBgGradientColors( const Quantity_NameOfColor Color1,
const Quantity_NameOfColor Color2,
const Aspect_GradientFillMethod FillStyle,
MyView->SetGradientBackground( MyGradientBackground, status );
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetBgGradientStyle
+//purpose :
+//=============================================================================
void V3d_View::SetBgGradientStyle( const Aspect_GradientFillMethod FillStyle,
const Standard_Boolean update)
{
MyView->SetBgGradientStyle( FillStyle, update ) ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetBackgroundImage
+//purpose :
+//=============================================================================
void V3d_View::SetBackgroundImage( const Standard_CString FileName,
const Aspect_FillMethod FillStyle,
const Standard_Boolean update )
#endif
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetBgImageStyle
+//purpose :
+//=============================================================================
void V3d_View::SetBgImageStyle( const Aspect_FillMethod FillStyle,
const Standard_Boolean update )
{
#endif
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetAxis
+//purpose :
+//=============================================================================
void V3d_View::SetAxis(const Standard_Real X, const Standard_Real Y, const Standard_Real Z, const Standard_Real Vx, const Standard_Real Vy, const Standard_Real Vz)
{
Standard_Real D,Nx = Vx,Ny = Vy,Nz = Vz ;
MyDefaultViewAxis.SetCoord(Nx,Ny,Nz) ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetShadingModel
+//purpose :
+//=============================================================================
void V3d_View::SetShadingModel(const V3d_TypeOfShadingModel Model)
{
MyViewContext.SetModel((Visual3d_TypeOfModel) Model) ;
MyView->SetContext(MyViewContext) ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetSurfaceDetail
+//purpose :
+//=============================================================================
void V3d_View::SetSurfaceDetail(const V3d_TypeOfSurfaceDetail Model)
{
MyViewContext.SetSurfaceDetail((Visual3d_TypeOfSurfaceDetail) Model) ;
MyView->SetContext(MyViewContext) ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetTextureEnv
+//purpose :
+//=============================================================================
void V3d_View::SetTextureEnv(const Handle(Graphic3d_TextureEnv)& ATexture)
{
MyViewContext.SetTextureEnv(ATexture) ;
MyView->SetContext(MyViewContext) ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetVisualization
+//purpose :
+//=============================================================================
void V3d_View::SetVisualization(const V3d_TypeOfVisualization Mode)
{
MyViewContext.SetVisualization((Visual3d_TypeOfVisualization) Mode);
MyView->SetContext(MyViewContext) ;
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : SetFront
+//purpose :
+//=============================================================================
void V3d_View::SetFront()
{
gp_Ax3 a = MyViewer->PrivilegedPlane();
a.YDirection().Coord(xu,yu,zu);
a.Location().Coord(xo,yo,zo);
- myCamera->BeginUpdate();
myCamera->SetCenter (gp_Pnt (xo, yo, zo));
if(SwitchSetFront)
myCamera->SetDirection (gp_Dir (vx, vy, vz));
myCamera->SetUp (gp_Dir (xu, yu, zu));
AutoZFit();
- myCamera->EndUpdate();
SwitchSetFront = !SwitchSetFront;
ImmediateUpdate();
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Rotate
+//purpose :
+//=============================================================================
void V3d_View::Rotate (const Standard_Real ax,
const Standard_Real ay,
const Standard_Real az,
myCamStartOpCenter = myCamera->Center();
}
- myCamera->BeginUpdate();
myCamera->SetUp (myCamStartOpUp);
myCamera->SetEye (myCamStartOpEye);
myCamera->SetCenter (myCamStartOpCenter);
myCamera->Transform (aTrsf);
- myCamera->EndUpdate();
-
AutoZFit();
ImmediateUpdate();
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Rotate
+//purpose :
+//=============================================================================
void V3d_View::Rotate(const Standard_Real ax, const Standard_Real ay, const Standard_Real az,
const Standard_Real X, const Standard_Real Y, const Standard_Real Z, const Standard_Boolean Start)
{
const Graphic3d_Vertex& aVref = myGravityReferencePoint;
- myCamera->BeginUpdate();
myCamera->SetUp (myCamStartOpUp);
myCamera->SetEye (myCamStartOpEye);
myCamera->SetCenter (myCamStartOpCenter);
aTrsf.Multiply (aRot[2]);
myCamera->Transform (aTrsf);
- myCamera->EndUpdate();
AutoZFit();
ImmediateUpdate();
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Rotate
+//purpose :
+//=============================================================================
void V3d_View::Rotate(const V3d_TypeOfAxe Axe, const Standard_Real angle, const Standard_Boolean Start)
{
switch (Axe) {
}
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Rotate
+//purpose :
+//=============================================================================
void V3d_View::Rotate(const V3d_TypeOfAxe Axe, const Standard_Real angle,
const Standard_Real X, const Standard_Real Y, const Standard_Real Z, const Standard_Boolean Start)
{
const Graphic3d_Vertex& aVref = myGravityReferencePoint;
- myCamera->BeginUpdate();
myCamera->SetUp (myCamStartOpUp);
myCamera->SetEye (myCamStartOpEye);
myCamera->SetCenter (myCamStartOpCenter);
aRotation.SetRotation (gp_Ax1 (aRCenter, aRAxis), Angle);
myCamera->Transform (aRotation);
- myCamera->EndUpdate();
-
AutoZFit();
ImmediateUpdate();
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Rotate
+//purpose :
+//=============================================================================
void V3d_View::Rotate(const Standard_Real angle, const Standard_Boolean Start)
{
Standard_Real Angle = angle;
const Graphic3d_Vertex& aPnt = MyDefaultViewPoint;
const Graphic3d_Vector& anAxis = MyDefaultViewAxis;
- myCamera->BeginUpdate();
myCamera->SetUp (myCamStartOpUp);
myCamera->SetEye (myCamStartOpEye);
myCamera->SetCenter (myCamStartOpCenter);
aRotation.SetRotation (gp_Ax1 (aRCenter, aRAxis), Angle);
myCamera->Transform (aRotation);
- myCamera->EndUpdate();
-
AutoZFit();
ImmediateUpdate();
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Turn
+//purpose :
+//=============================================================================
void V3d_View::Turn(const Standard_Real ax, const Standard_Real ay, const Standard_Real az, const Standard_Boolean Start)
{
Standard_Real Ax = ax;
myCamStartOpCenter = myCamera->Center();
}
- myCamera->BeginUpdate();
myCamera->SetUp (myCamStartOpUp);
myCamera->SetEye (myCamStartOpEye);
myCamera->SetCenter (myCamStartOpCenter);
aTrsf.Multiply (aRot[2]);
myCamera->Transform (aTrsf);
- myCamera->EndUpdate();
AutoZFit();
ImmediateUpdate();
}
-/*----------------------------------------------------------------------*/
-
+//=============================================================================
+//function : Turn
+//purpose :
+//=============================================================================
void V3d_View::Turn(const V3d_TypeOfAxe Axe, const Standard_Real angle, const Standard_Boolean Start)
{
switch (Axe) {
}
}
+//=============================================================================
+//function : Turn
+//purpose :
+//=============================================================================
void V3d_View::Turn(const Standard_Real angle, const Standard_Boolean Start)
{
Standard_Real Angle = angle ;
myCamStartOpCenter = myCamera->Center();
}
- myCamera->BeginUpdate();
myCamera->SetUp (myCamStartOpUp);
myCamera->SetEye (myCamStartOpEye);
myCamera->SetCenter (myCamStartOpCenter);
aRotation.SetRotation (gp_Ax1 (aRCenter, aRAxis), Angle);
myCamera->Transform (aRotation);
- myCamera->EndUpdate();
-
AutoZFit();
ImmediateUpdate();
}
+//=============================================================================
+//function : SetTwist
+//purpose :
+//=============================================================================
void V3d_View::SetTwist(const Standard_Real angle)
{
Standard_Real Angle = angle ;
Standard_Real myYscreenAxisX, myYscreenAxisY, myYscreenAxisZ;
myYscreenAxis.Coord (myYscreenAxisX, myYscreenAxisY, myYscreenAxisZ);
-
- myCamera->BeginUpdate();
+
myCamera->SetUp (gp_Dir (myYscreenAxisX, myYscreenAxisY, myYscreenAxisZ));
myCamera->Transform (aTrsf);
- myCamera->EndUpdate();
AutoZFit();
ImmediateUpdate();
}
-void V3d_View::SetAutoZFitMode (Standard_Boolean theMode)
+//=============================================================================
+//function : SetAutoZFitMode
+//purpose :
+//=============================================================================
+void V3d_View::SetAutoZFitMode (const Standard_Boolean theIsOn, const Standard_Real theScaleFactor)
{
- myAutoZFitMode = theMode;
+ Standard_ASSERT_RAISE (theScaleFactor > 0.0, "Zero or negative scale factor is not allowed.");
+ myAutoZFitScaleFactor = theScaleFactor;
+ myAutoZFitIsOn = theIsOn;
}
-Standard_Boolean V3d_View::AutoZFitMode () const
+//=============================================================================
+//function : AutoZFitMode
+//purpose :
+//=============================================================================
+Standard_Boolean V3d_View::AutoZFitMode() const
{
- return myAutoZFitMode;
+ return myAutoZFitIsOn;
}
-void V3d_View::SetEye(const Standard_Real X,const Standard_Real Y,const Standard_Real Z)
+//=============================================================================
+//function : AutoZFitScaleFactor
+//purpose :
+//=============================================================================
+Standard_Real V3d_View::AutoZFitScaleFactor () const
{
- Standard_Real Angle;
- Angle = Twist();
+ return myAutoZFitScaleFactor;
+}
- myCamera->SetEye (gp_Pnt (X, Y, Z));
+//=============================================================================
+//function : SetEye
+//purpose :
+//=============================================================================
+void V3d_View::SetEye(const Standard_Real X,const Standard_Real Y,const Standard_Real Z)
+{
+ Standard_Real aTwistBefore = Twist();
- Standard_Boolean update = myImmediateUpdate;
- myImmediateUpdate = Standard_False;
+ Standard_Boolean wasUpdateEnabled = SetImmediateUpdate (Standard_False);
- SetTwist(Angle);
+ myCamera->SetEye (gp_Pnt (X, Y, Z));
+ SetTwist (aTwistBefore);
AutoZFit();
- myImmediateUpdate = update;
+ SetImmediateUpdate (wasUpdateEnabled);
+
ImmediateUpdate();
}
+//=============================================================================
+//function : SetDepth
+//purpose :
+//=============================================================================
void V3d_View::SetDepth(const Standard_Real Depth)
{
V3d_BadValue_Raise_if (Depth == 0. ,"V3d_View::SetDepth, bad depth");
myCamera->SetDistance (Depth);
}
else
- {
+ {
// Move the view ref point instead of the eye.
gp_Vec aDir (myCamera->Direction());
gp_Pnt aCameraEye = myCamera->Eye();
- gp_Pnt aCameraCenter = aCameraEye.Translated (aDir.Multiplied (Abs (Depth)));
-
+ gp_Pnt aCameraCenter = aCameraEye.Translated (aDir.Multiplied (Abs (Depth)));
+
myCamera->SetCenter (aCameraCenter);
}
ImmediateUpdate();
}
-
+//=============================================================================
+//function : SetProj
+//purpose :
+//=============================================================================
void V3d_View::SetProj( const Standard_Real Vx,const Standard_Real Vy, const Standard_Real Vz )
{
- Standard_Real Angle ;
-
V3d_BadValue_Raise_if( Sqrt(Vx*Vx + Vy*Vy + Vz*Vz) <= 0.,
"V3d_View::SetProj, null projection vector");
- Angle = Twist();
+ Standard_Real aTwistBefore = Twist();
- myCamera->SetDirection (gp_Dir (Vx, Vy, Vz).Reversed());
+ Standard_Boolean wasUpdateEnabled = SetImmediateUpdate (Standard_False);
- Standard_Boolean update = myImmediateUpdate;
- myImmediateUpdate = Standard_False;
+ myCamera->SetDirection (gp_Dir (Vx, Vy, Vz).Reversed());
- if( MyProjModel == V3d_TPM_SCREEN ) SetTwist(Angle) ;
+ if (MyProjModel == V3d_TPM_SCREEN)
+ {
+ SetTwist(aTwistBefore);
+ }
AutoZFit();
- myImmediateUpdate = update;
+ SetImmediateUpdate (wasUpdateEnabled);
+
ImmediateUpdate();
}
+//=============================================================================
+//function : SetProj
+//purpose :
+//=============================================================================
void V3d_View::SetProj( const V3d_TypeOfOrientation Orientation )
{
Standard_Real Xpn=0;
}
const Graphic3d_Vector& aBck = V3d::GetProjAxis (Orientation);
- myCamera->BeginUpdate();
+
+ // retain camera panning from origin when switching projection
+ gp_Pnt anOriginVCS = myCamera->ConvertWorld2View (gp::Origin());
+ Standard_Real aPanX = anOriginVCS.X();
+ Standard_Real aPanY = anOriginVCS.Y();
+
myCamera->SetCenter (gp_Pnt (0, 0, 0));
myCamera->SetDirection (gp_Dir (aBck.X(), aBck.Y(), aBck.Z()).Reversed());
myCamera->SetUp (gp_Dir (Xpn, Ypn, Zpn));
- myCamera->EndUpdate();
+ myCamera->OrthogonalizeUp();
+
+ Panning (aPanX, aPanY);
AutoZFit();
ImmediateUpdate();
}
+//=============================================================================
+//function : SetAt
+//purpose :
+//=============================================================================
void V3d_View::SetAt(const Standard_Real X,const Standard_Real Y,const Standard_Real Z)
{
- Standard_Real Angle;
+ Standard_Real aTwistBefore = Twist();
- Angle = Twist();
+ Standard_Boolean wasUpdateEnabled = SetImmediateUpdate (Standard_False);
myCamera->SetCenter (gp_Pnt (X, Y, Z));
- Standard_Boolean update = myImmediateUpdate;
- myImmediateUpdate = Standard_False;
- SetTwist(Angle) ;
+ SetTwist (aTwistBefore);
AutoZFit();
- myImmediateUpdate = update;
+ SetImmediateUpdate (wasUpdateEnabled);
+
ImmediateUpdate();
}
+//=============================================================================
+//function : SetUp
+//purpose :
+//=============================================================================
void V3d_View::SetUp(const Standard_Real Vx,const Standard_Real Vy,const Standard_Real Vz)
{
Standard_Boolean TheStatus ;
Standard_Real myYscreenAxisX, myYscreenAxisY, myYscreenAxisZ;
myYscreenAxis.Coord (myYscreenAxisX, myYscreenAxisY, myYscreenAxisZ);
- myCamera->BeginUpdate();
myCamera->SetUp (gp_Dir (myYscreenAxisX, myYscreenAxisY, myYscreenAxisZ));
+
AutoZFit();
- myCamera->EndUpdate();
ImmediateUpdate();
}
+//=============================================================================
+//function : SetUp
+//purpose :
+//=============================================================================
void V3d_View::SetUp( const V3d_TypeOfOrientation Orientation )
{
Standard_Boolean TheStatus ;
Standard_Real myYscreenAxisX, myYscreenAxisY, myYscreenAxisZ;
myYscreenAxis.Coord (myYscreenAxisX, myYscreenAxisY, myYscreenAxisZ);
- myCamera->BeginUpdate();
myCamera->SetUp (gp_Dir (myYscreenAxisX, myYscreenAxisY, myYscreenAxisZ));
+
AutoZFit();
- myCamera->EndUpdate();
ImmediateUpdate();
}
+//=============================================================================
+//function : SetViewOrientationDefault
+//purpose :
+//=============================================================================
void V3d_View::SetViewOrientationDefault()
{
MyView->SetViewOrientationDefault() ;
ImmediateUpdate();
}
+//=============================================================================
+//function : ResetViewOrientation
+//purpose :
+//=============================================================================
void V3d_View::ResetViewOrientation()
{
MyView->ViewOrientationReset() ;
ImmediateUpdate();
}
+//=============================================================================
+//function : Reset
+//purpose :
+//=============================================================================
void V3d_View::Reset( const Standard_Boolean update )
{
Handle(Graphic3d_Camera) aDefaultCamera = MyView->DefaultCamera();
if (!aDefaultCamera.IsNull())
{
- myCamera->BeginUpdate();
myCamera->CopyMappingData (aDefaultCamera);
myCamera->CopyOrientationData (aDefaultCamera);
- myCamera->EndUpdate();
+
+ AutoZFit();
}
- AutoZFit();
SwitchSetFront = Standard_False;
if( !myImmediateUpdate && update ) Update();
}
-void V3d_View::Panning(const Standard_Real Dx, const Standard_Real Dy, const Quantity_Factor aZoomFactor, const Standard_Boolean Start)
-{
- V3d_BadValue_Raise_if( aZoomFactor <= 0.,"V3d_View::Panning, bad zoom factor");
-
- if( Start ) {
- myCamStartOpEye = myCamera->Eye();
- myCamStartOpCenter = myCamera->Center();
- myCamProjectionShift = myCamera->ProjectionShift();
- }
-
- myCamera->BeginUpdate();
- myCamera->SetEye (myCamStartOpEye);
- myCamera->SetCenter (myCamStartOpCenter);
- myCamera->SetProjectionShift (myCamProjectionShift);
- PanCamera (-Dx, -Dy);
- gp_Pnt aViewDims = myCamera->ViewDimensions();
- ZoomCamera (aViewDims.X() / aZoomFactor, aViewDims.Y() / aZoomFactor);
- myCamera->EndUpdate();
-
- ImmediateUpdate();
-}
-
-void V3d_View::SetCenter(const Standard_Integer X, const Standard_Integer Y)
-{
- Standard_Real x,y;
- Convert(X,Y,x,y);
- SetCenter(x,y);
-}
-
-void V3d_View::SetCenter(const Standard_Real Xc, const Standard_Real Yc)
+//=======================================================================
+//function : SetCenter
+//purpose :
+//=======================================================================
+void V3d_View::SetCenter (const Standard_Integer theXp,
+ const Standard_Integer theYp)
{
- myCamera->SetProjectionShift (gp_Pnt (-Xc, -Yc, 0.0));
+ Standard_Real aXv, aYv;
+ Convert (theXp, theYp, aXv, aYv);
+ Translate (myCamera, aXv, aYv);
ImmediateUpdate();
}
+//=============================================================================
+//function : SetSize
+//purpose :
+//=============================================================================
void V3d_View::SetSize(const Standard_Real Size)
{
V3d_BadValue_Raise_if( Size <= 0.,
"V3d_View::SetSize, Window Size is NULL");
- myCamera->BeginUpdate();
myCamera->SetScale (Size);
+
AutoZFit();
- myCamera->EndUpdate();
ImmediateUpdate();
}
+//=============================================================================
+//function : SetZSize
+//purpose :
+//=============================================================================
void V3d_View::SetZSize(const Standard_Real Size)
{
Standard_Real Zmax = Size/2.;
Standard_Real Front = MyViewContext.ZClippingFrontPlane();
Standard_Real Back = MyViewContext.ZClippingBackPlane();
- myCamera->SetZFar (Zmax + aDistance * 2.0);
- myCamera->SetZNear (-Zmax + aDistance);
+ // ShortReal precision factor used to add meaningful tolerance to
+ // ZNear, ZFar values in order to avoid equality after type conversion
+ // to ShortReal matrices type.
+ const Standard_Real aPrecision = 1.0 / Pow (10.0, ShortRealDigits() - 1);
+
+ Standard_Real aZFar = Zmax + aDistance * 2.0;
+ Standard_Real aZNear = -Zmax + aDistance;
+ aZNear -= Abs (aZNear) * aPrecision;
+ aZFar += Abs (aZFar) * aPrecision;
+
+ if (!myCamera->IsOrthographic())
+ {
+ if (aZFar < aPrecision)
+ {
+ // Invalid case when both values are negative
+ aZNear = aPrecision;
+ aZFar = aPrecision * 2.0;
+ }
+ else if (aZNear < Abs (aZFar) * aPrecision)
+ {
+ // Z is less than 0.0, try to fix it using any appropriate z-scale
+ aZNear = Abs (aZFar) * aPrecision;
+ }
+ }
+
+ // If range is too small
+ if (aZFar < (aZNear + Abs (aZFar) * aPrecision))
+ {
+ aZFar = aZNear + Abs (aZFar) * aPrecision;
+ }
+
+ myCamera->SetZRange (aZNear, aZFar);
if (MyViewContext.FrontZClippingIsOn() ||
MyViewContext.BackZClippingIsOn())
}
}
+//=============================================================================
+//function : SetZoom
+//purpose :
+//=============================================================================
void V3d_View::SetZoom(const Standard_Real Coef,const Standard_Boolean Start)
{
V3d_BadValue_Raise_if( Coef <= 0.,"V3d_View::SetZoom, bad coefficient");
coef = aViewHeight / 1e12;
}
- myCamera->BeginUpdate();
myCamera->SetEye (myCamStartOpEye);
myCamera->SetCenter (myCamStartOpCenter);
myCamera->SetScale (myCamera->Scale() / Coef);
AutoZFit();
- myCamera->EndUpdate();
ImmediateUpdate();
}
+//=============================================================================
+//function : SetScale
+//purpose :
+//=============================================================================
void V3d_View::SetScale( const Standard_Real Coef )
{
V3d_BadValue_Raise_if( Coef <= 0. ,"V3d_View::SetScale, bad coefficient");
Handle(Graphic3d_Camera) aDefaultCamera = MyView->DefaultCamera();
- myCamera->BeginUpdate();
-
// Strange behavior for the sake of compatibility.
if (!aDefaultCamera.IsNull())
{
}
AutoZFit();
- myCamera->EndUpdate();
ImmediateUpdate();
}
+//=============================================================================
+//function : SetAxialScale
+//purpose :
+//=============================================================================
void V3d_View::SetAxialScale( const Standard_Real Sx, const Standard_Real Sy, const Standard_Real Sz )
{
V3d_BadValue_Raise_if( Sx <= 0. || Sy <= 0. || Sz <= 0.,"V3d_View::SetAxialScale, bad coefficient");
- myCamera->BeginUpdate();
- myCamera->SetAxialScale (gp_Pnt (Sx, Sy, Sz));
+ myCamera->SetAxialScale (gp_XYZ (Sx, Sy, Sz));
AutoZFit();
- myCamera->EndUpdate();
}
-void V3d_View::FitAll(const Standard_Real Coef, const Standard_Boolean update)
+//=============================================================================
+//function : FitAll
+//purpose :
+//=============================================================================
+void V3d_View::FitAll (const Standard_Real theMargin, const Standard_Boolean theToUpdate)
{
- Standard_Real Xmin, Ymin, Zmin, Xmax, Ymax, Zmax;
+ Standard_ASSERT_RAISE (theMargin >= 0.0 && theMargin < 1.0, "Invalid margin coefficient");
+
+ if (MyView->NumberOfDisplayedStructures() == 0)
+ {
+ return;
+ }
- // retrieve min / max values for current displayed objects
- MyView->MinMaxValues (Xmin, Ymin, Zmin,
- Xmax, Ymax, Zmax);
+ Standard_Real aXmin, aYmin, aZmin, aXmax, aYmax, aZmax;
+ MyView->MinMaxValues (aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
+ gp_XYZ aMin (aXmin, aYmin, aZmin);
+ gp_XYZ aMax (aXmax, aYmax, aZmax);
- Standard_Real LIM = ShortRealLast() - 1.0;
- if (Abs(Xmin) > LIM || Abs(Ymin) > LIM || Abs(Zmin) > LIM
- || Abs(Xmax) > LIM || Abs(Ymax) > LIM || Abs(Zmax) > LIM)
+ if (!FitMinMax (myCamera, aMin, aMax, theMargin, 10.0 * Precision::Confusion()))
{
- ImmediateUpdate();
return;
}
- myCamera->BeginUpdate();
- FitCamera (Xmin, Ymin, Zmin, Xmax, Ymax, Zmax);
- myCamera->SetScale (myCamera->Scale() * (1.0 + Coef));
AutoZFit();
- myCamera->EndUpdate();
- if (myImmediateUpdate || update)
+ if (myImmediateUpdate || theToUpdate)
{
Update();
}
}
-//===============================================================================================
+//=============================================================================
//function : AutoZFit
//purpose :
-//===============================================================================================
+//=============================================================================
void V3d_View::AutoZFit()
{
- if (myAutoZFitMode)
+ if (!AutoZFitMode())
{
- ZFitAll();
+ return;
}
-}
-
-void V3d_View::ZFitAll (const Standard_Real theCoeff)
-{
- V3d_BadValue_Raise_if (theCoeff <= 0.0, "V3d_View::ZFitAll, bad margin coefficient");
-
- Standard_Real aMinMax[6];
- MyView->MinMaxValues (aMinMax[0], aMinMax[1], aMinMax[2], aMinMax[3], aMinMax[4], aMinMax[5]);
-
- gp_Pnt aBMin = gp_Pnt (aMinMax[0], aMinMax[1], aMinMax[2]);
- gp_Pnt aBMax = gp_Pnt (aMinMax[3], aMinMax[4], aMinMax[5]);
+ ZFitAll (myAutoZFitScaleFactor);
+}
- // check bounding box for validness
+//=============================================================================
+//function : ZFitAll
+//purpose :
+//=============================================================================
+void V3d_View::ZFitAll (const Standard_Real theScaleFactor)
+{
+ Standard_ASSERT_RAISE (theScaleFactor > 0.0, "Zero or negative scale factor is not allowed.");
+
+ // Method changes ZNear and ZFar planes of camera so as to fit the graphical structures
+ // by their real boundaries (computed ignoring infinite flag) into the viewing volume.
+ // In addition to the graphical boundaries, the usual min max used for fitting perspective
+ // camera. To avoid numeric errors for perspective camera the negative ZNear values are
+ // fixed using tolerance distance, relative to boundaries size. The tolerance distance
+ // should be computed using information on boundaries of primary application actors,
+ // (e.g. representing the displayed model) - to ensure that they are not unreasonably clipped.
+
+ Standard_Real aMinMax[6]; // applicative min max boundaries
+ View()->MinMaxValues (aMinMax[0], aMinMax[1], aMinMax[2],
+ aMinMax[3], aMinMax[4], aMinMax[5],
+ Standard_False);
+
+ Standard_Real aGraphicBB[6]; // real graphical boundaries (not accounting infinite flag).
+ View()->MinMaxValues (aGraphicBB[0], aGraphicBB[1], aGraphicBB[2],
+ aGraphicBB[3], aGraphicBB[4], aGraphicBB[5],
+ Standard_True);
+
+ // Check if anything can be adjusted
Standard_Real aLim = (ShortRealLast() - 1.0);
- if (Abs (aBMin.X()) > aLim || Abs (aBMin.Y()) > aLim || Abs (aBMin.Z()) > aLim ||
- Abs (aBMax.X()) > aLim || Abs (aBMax.Y()) > aLim || Abs (aBMax.Z()) > aLim)
+ if (Abs (aGraphicBB[0]) > aLim || Abs (aGraphicBB[1]) > aLim || Abs (aGraphicBB[2]) > aLim ||
+ Abs (aGraphicBB[3]) > aLim || Abs (aGraphicBB[4]) > aLim || Abs (aGraphicBB[5]) > aLim)
{
SetZSize (0.0);
ImmediateUpdate();
return;
}
- // adapt bound points
- gp_Pnt aPnts[8] =
- { gp_Pnt (aBMin.X(), aBMin.Y(), aBMin.Z()),
- gp_Pnt (aBMin.X(), aBMin.Y(), aBMax.Z()),
- gp_Pnt (aBMin.X(), aBMax.Y(), aBMin.Z()),
- gp_Pnt (aBMin.X(), aBMax.Y(), aBMax.Z()),
- gp_Pnt (aBMax.X(), aBMin.Y(), aBMin.Z()),
- gp_Pnt (aBMax.X(), aBMin.Y(), aBMax.Z()),
- gp_Pnt (aBMax.X(), aBMax.Y(), aBMin.Z()),
- gp_Pnt (aBMax.X(), aBMax.Y(), aBMax.Z()) };
-
- // camera Eye plane
- gp_Dir aDir = myCamera->Direction();
- gp_Pnt anEye = myCamera->Eye();
- gp_Pln aCamPln (anEye, aDir);
-
- Standard_Real aMinDist = RealLast() - 1;
- Standard_Real aMaxDist = RealFirst() + 1;
-
- gp_Pnt anAxialScale = myCamera->AxialScale();
-
- // get minimum and maximum distances to the eye plane
- for (Standard_Integer aPntIt = 0; aPntIt < 8; ++aPntIt)
+ // Measure depth of boundary points from camera eye
+ gp_Pnt aPntsToMeasure[16] =
+ {
+ gp_Pnt (aMinMax[0], aMinMax[1], aMinMax[2]),
+ gp_Pnt (aMinMax[0], aMinMax[1], aMinMax[5]),
+ gp_Pnt (aMinMax[0], aMinMax[4], aMinMax[2]),
+ gp_Pnt (aMinMax[0], aMinMax[4], aMinMax[5]),
+ gp_Pnt (aMinMax[3], aMinMax[1], aMinMax[2]),
+ gp_Pnt (aMinMax[3], aMinMax[1], aMinMax[5]),
+ gp_Pnt (aMinMax[3], aMinMax[4], aMinMax[2]),
+ gp_Pnt (aMinMax[3], aMinMax[4], aMinMax[5]),
+
+ gp_Pnt (aGraphicBB[0], aGraphicBB[1], aGraphicBB[2]),
+ gp_Pnt (aGraphicBB[0], aGraphicBB[1], aGraphicBB[5]),
+ gp_Pnt (aGraphicBB[0], aGraphicBB[4], aGraphicBB[2]),
+ gp_Pnt (aGraphicBB[0], aGraphicBB[4], aGraphicBB[5]),
+ gp_Pnt (aGraphicBB[3], aGraphicBB[1], aGraphicBB[2]),
+ gp_Pnt (aGraphicBB[3], aGraphicBB[1], aGraphicBB[5]),
+ gp_Pnt (aGraphicBB[3], aGraphicBB[4], aGraphicBB[2]),
+ gp_Pnt (aGraphicBB[3], aGraphicBB[4], aGraphicBB[5])
+ };
+
+ // Camera eye plane
+ gp_Dir aCamDir = myCamera->Direction();
+ gp_Pnt aCamEye = myCamera->Eye();
+ gp_Pln aCamPln (aCamEye, aCamDir);
+
+ Standard_Real aModelMinDist = RealLast();
+ Standard_Real aModelMaxDist = RealFirst();
+ Standard_Real aGraphicMinDist = RealLast();
+ Standard_Real aGraphicMaxDist = RealFirst();
+
+ const gp_XYZ& anAxialScale = myCamera->AxialScale();
+
+ // Get minimum and maximum distances to the eye plane
+ for (Standard_Integer aPntIt = 0; aPntIt < 16; ++aPntIt)
{
- gp_Pnt aPnt = aPnts[aPntIt];
+ gp_Pnt aMeasurePnt = aPntsToMeasure[aPntIt];
+
+ if (Abs (aMeasurePnt.X()) > aLim || Abs (aMeasurePnt.Y()) > aLim || Abs (aMeasurePnt.Z()) > aLim)
+ {
+ continue;
+ }
- aPnt = gp_Pnt (aPnt.X() * anAxialScale.X(),
- aPnt.Y() * anAxialScale.Y(),
- aPnt.Z() * anAxialScale.Z());
+ aMeasurePnt = gp_Pnt (aMeasurePnt.X() * anAxialScale.X(),
+ aMeasurePnt.Y() * anAxialScale.Y(),
+ aMeasurePnt.Z() * anAxialScale.Z());
- Standard_Real aDistance = aCamPln.Distance (aPnt);
+ Standard_Real aDistance = aCamPln.Distance (aMeasurePnt);
- // check if the camera is intruded into the scene
- if (aDir.IsOpposite (gp_Vec (anEye, aPnt), M_PI * 0.5))
+ // Check if the camera is intruded into the scene
+ if (aCamDir.IsOpposite (gp_Vec (aCamEye, aMeasurePnt), M_PI * 0.5))
{
aDistance *= -1;
}
- aMinDist = Min (aDistance, aMinDist);
- aMaxDist = Max (aDistance, aMaxDist);
+ Standard_Real& aChangeMinDist = aPntIt >= 8 ? aGraphicMinDist : aModelMinDist;
+ Standard_Real& aChangeMaxDist = aPntIt >= 8 ? aGraphicMaxDist : aModelMaxDist;
+ aChangeMinDist = Min (aDistance, aChangeMinDist);
+ aChangeMaxDist = Max (aDistance, aChangeMaxDist);
}
- // compute depth of bounding box center
- Standard_Real aMidDepth = (aMinDist + aMaxDist) * 0.5;
- Standard_Real aHalfDepth = (aMaxDist - aMinDist) * 0.5;
+ // Compute depth of bounding box center
+ Standard_Real aMidDepth = (aGraphicMinDist + aGraphicMaxDist) * 0.5;
+ Standard_Real aHalfDepth = (aGraphicMaxDist - aGraphicMinDist) * 0.5;
- // compute enlarged or shrank near and far z ranges.
- Standard_Real aZNear = aMidDepth - aHalfDepth * theCoeff;
- Standard_Real aZFar = aMidDepth + aHalfDepth * theCoeff;
+ // ShortReal precision factor used to add meaningful tolerance to
+ // ZNear, ZFar values in order to avoid equality after type conversion
+ // to ShortReal matrices type.
+ const Standard_Real aPrecision = 1.0 / Pow (10.0, ShortRealDigits() - 1);
- myCamera->BeginUpdate();
+ // Compute enlarged or shrank near and far z ranges
+ Standard_Real aZNear = aMidDepth - aHalfDepth * theScaleFactor;
+ Standard_Real aZFar = aMidDepth + aHalfDepth * theScaleFactor;
+ aZNear -= Abs (aZNear) * aPrecision;
+ aZFar += Abs (aZFar) * aPrecision;
- if (myCamera->IsOrthographic())
+ if (!myCamera->IsOrthographic())
{
- myCamera->SetZFar (myCamera->Distance() * 3.0);
- myCamera->SetZNear (0.0);
+ if (aZFar >= aPrecision)
+ {
+ // To avoid numeric errors... (See comments in the beginning of the method).
+ // Choose between model distance and graphical distance, as the model boundaries
+ // might be infinite if all structures have infinite flag.
+ const Standard_Real aGraphicDepth = aGraphicMaxDist >= aGraphicMinDist
+ ? aGraphicMaxDist - aGraphicMinDist : RealLast();
- if (aZNear < 0.0)
+ const Standard_Real aModelDepth = aModelMaxDist >= aModelMinDist
+ ? aModelMaxDist - aModelMinDist : RealLast();
+
+ const Standard_Real aMinDepth = Min (aModelDepth, aGraphicDepth);
+ const Standard_Real aZTolerance =
+ Max (Abs (aMinDepth) * aPrecision, aPrecision);
+
+ if (aZNear < aZTolerance)
+ {
+ aZNear = aZTolerance;
+ }
+ }
+ else // aZFar < aPrecision - Invalid case when both ZNear and ZFar are negative
{
- myCamera->SetDistance (myCamera->Distance() - (aZNear + myCamera->ZNear()) + 10.0);
+ aZNear = aPrecision;
+ aZFar = aPrecision * 2.0;
}
}
- else
+
+ // If range is too small
+ if (aZFar < (aZNear + Abs (aZFar) * aPrecision))
{
- myCamera->SetZFar (aZFar);
- myCamera->SetZNear (aZNear);
+ aZFar = aZNear + Abs (aZFar) * aPrecision;
}
- myCamera->EndUpdate();
+ myCamera->SetZRange (aZNear, aZFar);
ImmediateUpdate();
}
-
-// Better to use ZFitAll instead.
+//=============================================================================
+//function : DepthFitAll
+//purpose :
+//=============================================================================
void V3d_View::DepthFitAll(const Quantity_Coefficient Aspect,
const Quantity_Coefficient Margin)
{
ImmediateUpdate();
}
-void V3d_View::FitAll(const Standard_Real Xmin, const Standard_Real Ymin, const Standard_Real Xmax, const Standard_Real Ymax)
+//=============================================================================
+//function : FitAll
+//purpose :
+//=============================================================================
+void V3d_View::FitAll(const Standard_Real theMinXv,
+ const Standard_Real theMinYv,
+ const Standard_Real theMaxXv,
+ const Standard_Real theMaxYv)
{
- FitAll(MyWindow,Xmin,Ymin,Xmax,Ymax);
-
- ImmediateUpdate();
+ FitAll (MyWindow, theMinXv, theMinYv, theMaxXv, theMaxYv);
}
-void V3d_View::WindowFitAll(const Standard_Integer Xmin, const Standard_Integer Ymin, const Standard_Integer Xmax, const Standard_Integer Ymax)
+//=============================================================================
+//function : WindowFitAll
+//purpose :
+//=============================================================================
+void V3d_View::WindowFitAll(const Standard_Integer Xmin,
+ const Standard_Integer Ymin,
+ const Standard_Integer Xmax,
+ const Standard_Integer Ymax)
{
WindowFit(Xmin,Ymin,Xmax,Ymax);
}
-void V3d_View::WindowFit(const Standard_Integer Xmin, const Standard_Integer Ymin, const Standard_Integer Xmax, const Standard_Integer Ymax)
+//=======================================================================
+//function : WindowFit
+//purpose :
+//=======================================================================
+void V3d_View::WindowFit (const Standard_Integer theMinXp,
+ const Standard_Integer theMinYp,
+ const Standard_Integer theMaxXp,
+ const Standard_Integer theMaxYp)
{
+ Standard_Boolean wasUpdateEnabled = SetImmediateUpdate (Standard_False);
+
if (!myCamera->IsOrthographic())
{
// normalize view coordiantes
Standard_Real aDepth = myCamera->Project (myCamera->Center()).Z();
// camera projection coordinate are in NDC which are normalized [-1, 1]
- Standard_Real aUMin = (2.0 / aWinWidth) * Xmin - 1.0;
- Standard_Real aUMax = (2.0 / aWinWidth) * Xmax - 1.0;
- Standard_Real aVMin = (2.0 / aWinHeight) * Ymin - 1.0;
- Standard_Real aVMax = (2.0 / aWinHeight) * Ymax - 1.0;
+ Standard_Real aUMin = (2.0 / aWinWidth) * theMinXp - 1.0;
+ Standard_Real aUMax = (2.0 / aWinWidth) * theMaxXp - 1.0;
+ Standard_Real aVMin = (2.0 / aWinHeight) * theMinYp - 1.0;
+ Standard_Real aVMax = (2.0 / aWinHeight) * theMaxYp - 1.0;
// compute camera panning
gp_Pnt aScreenCenter (0.0, 0.0, aDepth);
Standard_Real aUSize = aViewTopRight.X() - aViewBotLeft.X();
Standard_Real aVSize = aViewTopRight.Y() - aViewBotLeft.Y();
- myCamera->BeginUpdate();
- PanCamera (aPanVec.X(), -aPanVec.Y());
- ZoomCamera (aUSize, aVSize);
+ Translate (myCamera, aPanVec.X(), -aPanVec.Y());
+ Scale (myCamera, aUSize, aVSize);
AutoZFit();
- myCamera->EndUpdate();
}
else
{
- Standard_Real x1,y1,x2,y2;
- Convert(Xmin,Ymin,x1,y1);
- Convert(Xmax,Ymax,x2,y2);
-
- FitAll(x1,y1,x2,y2);
+ Standard_Real aX1, aY1, aX2, aY2;
+ Convert (theMinXp, theMinYp, aX1, aY1);
+ Convert (theMaxXp, theMaxYp, aX2, aY2);
+ FitAll (aX1, aY1, aX2, aY2);
}
+
+ SetImmediateUpdate (wasUpdateEnabled);
+
+ ImmediateUpdate();
}
+//=======================================================================
+//function : SetViewMappingDefault
+//purpose :
+//=======================================================================
void V3d_View::SetViewMappingDefault()
{
MyView->SetViewMappingDefault();
ImmediateUpdate();
}
+//=======================================================================
+//function : ResetViewMapping
+//purpose :
+//=======================================================================
void V3d_View::ResetViewMapping()
{
MyView->ViewMappingReset();
Update();
}
-void V3d_View::ConvertToGrid(const Standard_Integer Xp, const Standard_Integer Yp, Standard_Real& Xg, Standard_Real& Yg, Standard_Real& Zg) const
+//=======================================================================
+//function : ConvertToGrid
+//purpose :
+//=======================================================================
+void V3d_View::ConvertToGrid(const Standard_Integer Xp,
+ const Standard_Integer Yp,
+ Standard_Real& Xg,
+ Standard_Real& Yg,
+ Standard_Real& Zg) const
{
Graphic3d_Vertex aVrp;
Standard_Real anX, anY, aZ;
aVrp.Coord (Xg,Yg,Zg) ;
}
-void V3d_View::ConvertToGrid(const Standard_Real X, const Standard_Real Y, const Standard_Real Z, Standard_Real& Xg, Standard_Real& Yg, Standard_Real& Zg) const
+//=======================================================================
+//function : ConvertToGrid
+//purpose :
+//=======================================================================
+void V3d_View::ConvertToGrid(const Standard_Real X,
+ const Standard_Real Y,
+ const Standard_Real Z,
+ Standard_Real& Xg,
+ Standard_Real& Yg,
+ Standard_Real& Zg) const
{
if( MyViewer->Grid()->IsActive() ) {
Graphic3d_Vertex aVrp (X,Y,Z) ;
}
}
-
+//=======================================================================
+//function : Convert
+//purpose :
+//=======================================================================
Standard_Real V3d_View::Convert(const Standard_Integer Vp) const
{
Standard_Integer aDxw, aDyw ;
MyWindow->Size (aDxw, aDyw);
Standard_Real aValue;
-
+
gp_Pnt aViewDims = myCamera->ViewDimensions();
aValue = aViewDims.X() * (Standard_Real)Vp / (Standard_Real)aDxw;
return aValue;
}
-void V3d_View::Convert(const Standard_Integer Xp, const Standard_Integer Yp, Standard_Real& Xv, Standard_Real& Yv) const
+//=======================================================================
+//function : Convert
+//purpose :
+//=======================================================================
+void V3d_View::Convert(const Standard_Integer Xp,
+ const Standard_Integer Yp,
+ Standard_Real& Xv,
+ Standard_Real& Yv) const
{
Standard_Integer aDxw, aDyw;
Yv = aPoint.Y();
}
+//=======================================================================
+//function : Convert
+//purpose :
+//=======================================================================
Standard_Integer V3d_View::Convert(const Standard_Real Vv) const
{
V3d_UnMapped_Raise_if (!MyView->IsDefined(), "view has no window");
return aValue;
}
-void V3d_View::Convert(const Standard_Real Xv, const Standard_Real Yv, Standard_Integer& Xp, Standard_Integer& Yp) const
+//=======================================================================
+//function : Convert
+//purpose :
+//=======================================================================
+void V3d_View::Convert(const Standard_Real Xv,
+ const Standard_Real Yv,
+ Standard_Integer& Xp,
+ Standard_Integer& Yp) const
{
V3d_UnMapped_Raise_if (!MyView->IsDefined(), "view has no window");
Yp = RealToInt (aPoint.Y());
}
-void V3d_View::Convert(const Standard_Integer Xp, const Standard_Integer Yp, Standard_Real& X, Standard_Real& Y, Standard_Real& Z) const
+//=======================================================================
+//function : Convert
+//purpose :
+//=======================================================================
+void V3d_View::Convert(const Standard_Integer Xp,
+ const Standard_Integer Yp,
+ Standard_Real& X,
+ Standard_Real& Y,
+ Standard_Real& Z) const
{
V3d_UnMapped_Raise_if (!MyView->IsDefined(), "view has no window");
Standard_Integer aHeight, aWidth;
}
}
-void V3d_View::ConvertWithProj(const Standard_Integer Xp, const Standard_Integer Yp, Standard_Real& X, Standard_Real& Y, Standard_Real& Z, Standard_Real& Dx, Standard_Real& Dy, Standard_Real& Dz) const
+//=======================================================================
+//function : ConvertWithProj
+//purpose :
+//=======================================================================
+void V3d_View::ConvertWithProj(const Standard_Integer Xp,
+ const Standard_Integer Yp,
+ Standard_Real& X,
+ Standard_Real& Y,
+ Standard_Real& Z,
+ Standard_Real& Dx,
+ Standard_Real& Dy,
+ Standard_Real& Dz) const
{
V3d_UnMapped_Raise_if( !MyView->IsDefined(), "view has no window");
Standard_Integer aHeight, aWidth;
}
}
-void V3d_View::Convert(const Standard_Real X, const Standard_Real Y, const Standard_Real Z, Standard_Integer& Xp, Standard_Integer& Yp) const
+//=======================================================================
+//function : Convert
+//purpose :
+//=======================================================================
+void V3d_View::Convert(const Standard_Real X,
+ const Standard_Real Y,
+ const Standard_Real Z,
+ Standard_Integer& Xp,
+ Standard_Integer& Yp) const
{
V3d_UnMapped_Raise_if( !MyView->IsDefined(), "view has no window");
Standard_Integer aHeight, aWidth;
Yp = RealToInt ((aPoint.Y() + 1) * 0.5 * aHeight);
}
-void V3d_View::Project(const Standard_Real X, const Standard_Real Y, const Standard_Real Z, Standard_Real &Xp, Standard_Real &Yp) const
+//=======================================================================
+//function : Project
+//purpose :
+//=======================================================================
+void V3d_View::Project(const Standard_Real X,
+ const Standard_Real Y,
+ const Standard_Real Z,
+ Standard_Real &Xp,
+ Standard_Real &Yp) const
{
Standard_Real Zp;
MyView->Projects (X, Y, Z, Xp, Yp, Zp);
}
-void V3d_View::BackgroundColor(const Quantity_TypeOfColor Type,Standard_Real& V1, Standard_Real& V2, Standard_Real& V3) const
+//=======================================================================
+//function : BackgroundColor
+//purpose :
+//=======================================================================
+void V3d_View::BackgroundColor(const Quantity_TypeOfColor Type,
+ Standard_Real& V1,
+ Standard_Real& V2,
+ Standard_Real& V3) const
{
Quantity_Color C = BackgroundColor() ;
C.Values(V1,V2,V3,Type) ;
}
+//=======================================================================
+//function : BackgroundColor
+//purpose :
+//=======================================================================
Quantity_Color V3d_View::BackgroundColor() const
{
return MyBackground.Color() ;
}
+//=======================================================================
+//function : GradientBackgroundColors
+//purpose :
+//=======================================================================
void V3d_View::GradientBackgroundColors(Quantity_Color& Color1,Quantity_Color& Color2) const
{
MyGradientBackground.Colors(Color1, Color2);
}
+//=======================================================================
+//function : GradientBackground
+//purpose :
+//=======================================================================
Aspect_GradientBackground V3d_View::GradientBackground() const
{
return MyGradientBackground;
}
+//=======================================================================
+//function : Scale
+//purpose :
+//=======================================================================
Standard_Real V3d_View::Scale() const
{
Handle(Graphic3d_Camera) aDefaultCamera = MyView->DefaultCamera();
return aCameraScale;
}
+//=======================================================================
+//function : AxialScale
+//purpose :
+//=======================================================================
void V3d_View::AxialScale(Standard_Real& Sx, Standard_Real& Sy, Standard_Real& Sz) const
{
gp_Pnt anAxialScale = myCamera->AxialScale();
Sz = anAxialScale.Z();
}
-void V3d_View::Center(Standard_Real& Xc, Standard_Real& Yc) const
-{
- gp_Pnt aCamProjShift = myCamera->ProjectionShift();
-
- Xc = -aCamProjShift.X();
- Yc = -aCamProjShift.Y();
-}
-
+//=======================================================================
+//function : Size
+//purpose :
+//=======================================================================
void V3d_View::Size(Standard_Real& Width, Standard_Real& Height) const
{
gp_Pnt aViewDims = myCamera->ViewDimensions();
Height = aViewDims.Y();
}
+//=======================================================================
+//function : ZSize
+//purpose :
+//=======================================================================
Standard_Real V3d_View::ZSize() const
{
gp_Pnt aViewDims = myCamera->ViewDimensions();
return aViewDims.Z();
}
-Standard_Integer V3d_View::MinMax(Standard_Real& Umin, Standard_Real& Vmin, Standard_Real& Umax, Standard_Real& Vmax) const
+//=======================================================================
+//function : MinMax
+//purpose :
+//=======================================================================
+Standard_Integer V3d_View::MinMax(Standard_Real& Umin,
+ Standard_Real& Vmin,
+ Standard_Real& Umax,
+ Standard_Real& Vmax) const
{
Standard_Real Wmin,Wmax,U,V,W ;
Standard_Real Xmin,Ymin,Zmin,Xmax,Ymax,Zmax ;
return Nstruct ;
}
-Standard_Integer V3d_View::MinMax(Standard_Real& Xmin, Standard_Real& Ymin, Standard_Real& Zmin, Standard_Real& Xmax, Standard_Real& Ymax, Standard_Real& Zmax) const
+//=======================================================================
+//function : MinMax
+//purpose :
+//=======================================================================
+Standard_Integer V3d_View::MinMax(Standard_Real& Xmin,
+ Standard_Real& Ymin,
+ Standard_Real& Zmin,
+ Standard_Real& Xmax,
+ Standard_Real& Ymax,
+ Standard_Real& Zmax) const
{
// CAL 6/11/98
// Standard_Integer Nstruct = (MyView->DisplayedStructures())->Extent() ;
return Nstruct ;
}
+//=======================================================================
+//function : Gravity
+//purpose :
+//=======================================================================
Standard_Integer V3d_View::Gravity(Standard_Real& X, Standard_Real& Y, Standard_Real& Z) const
{
Standard_Real Xmin,Ymin,Zmin,Xmax,Ymax,Zmax;
{
aStruct->MinMaxValues (Xmin, Ymin, Zmin, Xmax, Ymax, Zmax);
+ // Check bounding box for validness
+ Standard_Real aLim = (ShortRealLast() - 1.0);
+ if (Abs (Xmin) > aLim || Abs (Ymin) > aLim || Abs (Zmin) > aLim ||
+ Abs (Xmax) > aLim || Abs (Ymax) > aLim || Abs (Zmax) > aLim)
+ {
+ continue;
+ }
+
// use camera projection to find gravity point
gp_Pnt aPnts[8] = {
gp_Pnt (Xmin, Ymin, Zmin), gp_Pnt (Xmin, Ymin, Zmax),
return Nstruct ;
}
+//=======================================================================
+//function : Eye
+//purpose :
+//=======================================================================
void V3d_View::Eye(Standard_Real& X, Standard_Real& Y, Standard_Real& Z) const
{
gp_Pnt aCameraEye = myCamera->Eye();
Z = aCameraEye.Z();
}
+//=============================================================================
+//function : FocalReferencePoint
+//purpose :
+//=============================================================================
void V3d_View::FocalReferencePoint(Standard_Real& X, Standard_Real& Y,Standard_Real& Z) const
{
Eye (X,Y,Z);
}
-void V3d_View::ProjReferenceAxe(const Standard_Integer Xpix, const Standard_Integer Ypix, Standard_Real& XP, Standard_Real& YP, Standard_Real& ZP, Standard_Real& VX, Standard_Real& VY, Standard_Real& VZ) const
+//=============================================================================
+//function : ProjReferenceAxe
+//purpose :
+//=============================================================================
+void V3d_View::ProjReferenceAxe(const Standard_Integer Xpix,
+ const Standard_Integer Ypix,
+ Standard_Real& XP,
+ Standard_Real& YP,
+ Standard_Real& ZP,
+ Standard_Real& VX,
+ Standard_Real& VY,
+ Standard_Real& VZ) const
{
Standard_Real Xo,Yo,Zo;
}
}
+//=============================================================================
+//function : Depth
+//purpose :
+//=============================================================================
Standard_Real V3d_View::Depth() const
{
return myCamera->Distance();
}
+//=============================================================================
+//function : Proj
+//purpose :
+//=============================================================================
void V3d_View::Proj(Standard_Real& Dx, Standard_Real& Dy, Standard_Real& Dz) const
{
gp_Dir aCameraDir = myCamera->Direction().Reversed();
Dz = aCameraDir.Z();
}
+//=============================================================================
+//function : At
+//purpose :
+//=============================================================================
void V3d_View::At(Standard_Real& X, Standard_Real& Y, Standard_Real& Z) const
{
gp_Pnt aCameraCenter = myCamera->Center();
Z = aCameraCenter.Z();
}
+//=============================================================================
+//function : Up
+//purpose :
+//=============================================================================
void V3d_View::Up(Standard_Real& Vx, Standard_Real& Vy, Standard_Real& Vz) const
{
gp_Dir aCameraUp = myCamera->Up();
Vz = aCameraUp.Z();
}
+//=============================================================================
+//function : Twist
+//purpose :
+//=============================================================================
Standard_Real V3d_View::Twist() const
{
Standard_Real Xup,Yup,Zup,Xpn,Ypn,Zpn,X0,Y0,Z0 ;
return angle ;
}
+//=============================================================================
+//function : ShadingModel
+//purpose :
+//=============================================================================
V3d_TypeOfShadingModel V3d_View::ShadingModel() const
{
V3d_TypeOfShadingModel SM = (V3d_TypeOfShadingModel)MyViewContext.Model() ;
return SM ;
}
+//=============================================================================
+//function : SurfaceDetail
+//purpose :
+//=============================================================================
V3d_TypeOfSurfaceDetail V3d_View::SurfaceDetail() const
{
V3d_TypeOfSurfaceDetail SM = (V3d_TypeOfSurfaceDetail)MyViewContext.SurfaceDetail() ;
return SM ;
}
+//=============================================================================
+//function : TextureEnv
+//purpose :
+//=============================================================================
Handle_Graphic3d_TextureEnv V3d_View::TextureEnv() const
{
Handle(Graphic3d_TextureEnv) SM = MyViewContext.TextureEnv() ;
return SM ;
}
+//=============================================================================
+//function : Visualization
+//purpose :
+//=============================================================================
V3d_TypeOfVisualization V3d_View::Visualization() const
{
V3d_TypeOfVisualization V =
return V ;
}
+//=============================================================================
+//function : Antialiasing
+//purpose :
+//=============================================================================
Standard_Boolean V3d_View::Antialiasing() const
{
Standard_Boolean A = MyViewContext.AliasingIsOn() ;
return A ;
}
+//=============================================================================
+//function : Viewer
+//purpose :
+//=============================================================================
Handle(V3d_Viewer) V3d_View::Viewer() const
{
return MyViewer ;
}
+//=============================================================================
+//function : IfWindow
+//purpose :
+//=============================================================================
Standard_Boolean V3d_View::IfWindow() const
{
Standard_Boolean TheStatus = MyView->IsDefined() ;
return TheStatus ;
}
+//=============================================================================
+//function : Window
+//purpose :
+//=============================================================================
Handle(Aspect_Window) V3d_View::Window() const
{
return MyWindow;
}
+//=============================================================================
+//function : Type
+//purpose :
+//=============================================================================
V3d_TypeOfView V3d_View::Type() const
{
return myCamera->IsOrthographic() ? V3d_ORTHOGRAPHIC : V3d_PERSPECTIVE;
}
+//=============================================================================
+//function : SetFocale
+//purpose :
+//=============================================================================
void V3d_View::SetFocale( const Standard_Real focale )
{
if (myCamera->IsOrthographic())
ImmediateUpdate();
}
+//=============================================================================
+//function : Focale
+//purpose :
+//=============================================================================
Standard_Real V3d_View::Focale() const
{
if (myCamera->IsOrthographic())
return myCamera->Distance() * 2.0 * Tan(myCamera->FOVy() * M_PI / 360.0);
}
-void V3d_View::SetViewingVolume(const Standard_Real Left, const Standard_Real Right,
- const Standard_Real Bottom, const Standard_Real Top,
- const Standard_Real ZNear, const Standard_Real ZFar)
-{
- V3d_BadValue_Raise_if (ZNear >= ZFar, "V3d_View::SetVolume, bad distances");
-
-
- myCamera->BeginUpdate();
-
- myCamera->SetZFar (ZFar);
- myCamera->SetZNear (ZNear);
-
- myCamera->SetScale (Top - Bottom);
- myCamera->SetAspect ((Right - Left) / (Top - Bottom));
- gp_Pnt aCameraProjShift (-(Left + Right) / 2.0, -(Bottom + Top) / 2.0, 0.0);
- myCamera->SetProjectionShift (aCameraProjShift);
- if (myCamera->IsOrthographic())
- {
- myCamera->SetDistance (Abs (ZNear));
- }
- AutoZFit();
- myCamera->EndUpdate();
-
- ImmediateUpdate();
-}
-
+//=============================================================================
+//function : View
+//purpose :
+//=============================================================================
Handle(Visual3d_View) V3d_View::View() const
{
return MyView ;
}
+//=============================================================================
+//function : ScreenAxis
+//purpose :
+//=============================================================================
Standard_Boolean V3d_View::ScreenAxis( const gp_Dir &Vpn, const gp_Dir &Vup, Graphic3d_Vector &Xaxe, Graphic3d_Vector &Yaxe, Graphic3d_Vector &Zaxe)
{
Standard_Real Xpn, Ypn, Zpn, Xup, Yup, Zup;
return Standard_True;
}
+//=============================================================================
+//function : TrsPoint
+//purpose :
+//=============================================================================
Graphic3d_Vertex V3d_View::TrsPoint( const Graphic3d_Vertex &P, const TColStd_Array2OfReal &Matrix )
{
Graphic3d_Vertex PP ;
return PP ;
}
-void V3d_View::Pan(const Standard_Integer Dx, const Standard_Integer Dy,const Quantity_Factor aZoomFactor)
+//=======================================================================
+//function : Pan
+//purpose :
+//=======================================================================
+void V3d_View::Pan (const Standard_Integer theDXp,
+ const Standard_Integer theDYp,
+ const Quantity_Factor theZoomFactor,
+ const Standard_Boolean theToStart)
{
- Panning (Convert(Dx), Convert(Dy), aZoomFactor, Standard_True);
+ Panning (Convert (theDXp), Convert (theDYp), theZoomFactor, theToStart);
}
-void V3d_View::Zoom (const Standard_Integer X1,
- const Standard_Integer Y1,
- const Standard_Integer X2,
- const Standard_Integer Y2)
+//=======================================================================
+//function : Panning
+//purpose :
+//=======================================================================
+void V3d_View::Panning (const Standard_Real theDXv,
+ const Standard_Real theDYv,
+ const Quantity_Factor theZoomFactor,
+ const Standard_Boolean theToStart)
{
+ Standard_ASSERT_RAISE (theZoomFactor > 0.0, "Bad zoom factor");
- Standard_Real dx = Standard_Real (X2-X1);
- Standard_Real dy = Standard_Real (Y2-Y1);
- if ( dx != 0. || dy != 0. ) {
- Standard_Real dzoom = Sqrt(dx*dx + dy*dy) / 100. + 1;
- dzoom = (dx > 0) ? dzoom : 1./dzoom;
- SetZoom(dzoom, Standard_True);
+ if (theToStart)
+ {
+ myCamStartOpEye = myCamera->Eye();
+ myCamStartOpCenter = myCamera->Center();
}
+
+ Standard_Boolean wasUpdateEnabled = SetImmediateUpdate (Standard_False);
+
+ gp_Pnt aViewDims = myCamera->ViewDimensions();
+
+ myCamera->SetEye (myCamStartOpEye);
+ myCamera->SetCenter (myCamStartOpCenter);
+ Translate (myCamera, -theDXv, -theDYv);
+ Scale (myCamera, aViewDims.X() / theZoomFactor, aViewDims.Y() / theZoomFactor);
+
+ SetImmediateUpdate (wasUpdateEnabled);
+
+ ImmediateUpdate();
}
-void V3d_View::Zoom (const Standard_Integer X1,
- const Standard_Integer Y1)
-{
- Standard_Real x,y;
- Center(x,y);
- Standard_Integer ix,iy;
- Convert(x,y,ix,iy);
- Zoom(ix,iy,X1,Y1);
+//=======================================================================
+//function : Zoom
+//purpose :
+//=======================================================================
+void V3d_View::Zoom (const Standard_Integer theXp1,
+ const Standard_Integer theYp1,
+ const Standard_Integer theXp2,
+ const Standard_Integer theYp2)
+{
+ Standard_Integer aDx = theXp2 - theXp1;
+ Standard_Integer aDy = theYp2 - theYp1;
+ if (aDx != 0 || aDy != 0)
+ {
+ Standard_Real aCoeff = Sqrt( (Standard_Real)(aDx * aDx + aDy * aDy) ) / 100.0 + 1.0;
+ aCoeff = (aDx > 0) ? aCoeff : 1.0 / aCoeff;
+ SetZoom (aCoeff, Standard_True);
+ }
}
-// Defines the point (pixel) of zooming (for the method ZoomAtPoint()).
-void V3d_View::StartZoomAtPoint(const Standard_Integer xpix, const Standard_Integer ypix)
+//=======================================================================
+//function : StartZoomAtPoint
+//purpose :
+//=======================================================================
+void V3d_View::StartZoomAtPoint (const Standard_Integer theXp,
+ const Standard_Integer theYp)
{
- MyZoomAtPointX = xpix;
- MyZoomAtPointY = ypix;
+ MyZoomAtPointX = theXp;
+ MyZoomAtPointY = theYp;
}
-// Zooms the model at a pixel defined by the method StartZoomAtPoint().
-void V3d_View::ZoomAtPoint(const Standard_Integer mouseStartX,
- const Standard_Integer mouseStartY,
- const Standard_Integer mouseEndX,
- const Standard_Integer mouseEndY)
+//=======================================================================
+//function : ZoomAtPoint
+//purpose :
+//=======================================================================
+void V3d_View::ZoomAtPoint (const Standard_Integer theMouseStartX,
+ const Standard_Integer theMouseStartY,
+ const Standard_Integer theMouseEndX,
+ const Standard_Integer theMouseEndY)
{
- Standard_Boolean update;
- V3d_Coordinate X0, Y0, XS, YS;
+ Standard_Boolean wasUpdateEnabled = SetImmediateUpdate (Standard_False);
- // Forbid any update.
- update = SetImmediateUpdate(Standard_False);
+ // zoom
+ Standard_Real aDxy = Standard_Real ((theMouseEndX + theMouseEndY) - (theMouseStartX + theMouseStartY));
+ Standard_Real aDZoom = Abs (aDxy) / 100.0 + 1.0;
+ aDZoom = (aDxy > 0.0) ? aDZoom : 1.0 / aDZoom;
- // Get center point
- Center(X0, Y0);
+ V3d_BadValue_Raise_if (aDZoom <= 0.0, "V3d_View::ZoomAtPoint, bad coefficient");
- // Pan the point to the center of window.
- Convert(MyZoomAtPointX, MyZoomAtPointY, XS, YS);
- Panning(X0-XS, Y0-YS);
+ Standard_Real aViewWidth = myCamera->ViewDimensions().X();
+ Standard_Real aViewHeight = myCamera->ViewDimensions().Y();
- // Zoom
- Standard_Real d = Standard_Real ((mouseEndX + mouseEndY) - (mouseStartX + mouseStartY));
+ // ensure that zoom will not be too small or too big.
+ Standard_Real aCoef = aDZoom;
+ if (aViewWidth < aCoef * Precision::Confusion())
+ {
+ aCoef = aViewWidth / Precision::Confusion();
+ }
+ else if (aViewWidth > aCoef * 1e12)
+ {
+ aCoef = aViewWidth / 1e12;
+ }
+ if (aViewHeight < aCoef * Precision::Confusion())
+ {
+ aCoef = aViewHeight / Precision::Confusion();
+ }
+ else if (aViewHeight > aCoef * 1e12)
+ {
+ aCoef = aViewHeight / 1e12;
+ }
- Standard_Real dzoom = fabs(d) / 100.0 + 1.0;
- dzoom = (d > 0) ? dzoom : 1.0 / dzoom;
- V3d_BadValue_Raise_if( dzoom <= 0.,"V3d_View::ZoomAtPoint, bad coefficient");
+ Standard_Real aZoomAtPointXv = 0.0;
+ Standard_Real aZoomAtPointYv = 0.0;
+ Convert (MyZoomAtPointX, MyZoomAtPointY, aZoomAtPointXv, aZoomAtPointYv);
- Standard_Real aViewWidth = myCamera->ViewDimensions().X();
- Standard_Real aViewHeight = myCamera->ViewDimensions().Y();
+ V3d_Coordinate aDxv = aZoomAtPointXv / aCoef;
+ V3d_Coordinate aDyv = aZoomAtPointYv / aCoef;
- // Ensure that zoom will not be too small or too big.
- Standard_Real coef = dzoom;
- if (aViewWidth < coef * Precision::Confusion())
- {
- coef = aViewWidth / Precision::Confusion();
- }
- else if (aViewWidth > coef * 1e12)
- {
- coef = aViewWidth / 1e12;
- }
- if (aViewHeight < coef * Precision::Confusion())
- {
- coef = aViewHeight / Precision::Confusion();
- }
- else if (aViewHeight > coef * 1e12)
- {
- coef = aViewHeight / 1e12;
- }
-
- V3d_Coordinate Dxv = (XS - X0) / coef;
- V3d_Coordinate Dyv = (YS - Y0) / coef;
+ myCamera->SetScale (myCamera->Scale() / aCoef);
+ Translate (myCamera, aZoomAtPointXv - aDxv, aZoomAtPointYv - aDyv);
- myCamera->SetScale (myCamera->Scale() / coef);
- PanCamera (-Dxv, -Dyv);
+ AutoZFit();
- AutoZFit();
+ SetImmediateUpdate (wasUpdateEnabled);
- // Update the view.
- SetImmediateUpdate(update);
- ImmediateUpdate();
+ ImmediateUpdate();
}
+//=============================================================================
+//function : AxialScale
+//purpose :
+//=============================================================================
void V3d_View::AxialScale (const Standard_Integer Dx,
const Standard_Integer Dy,
const V3d_TypeOfAxe Axis)
}
}
-
+//=============================================================================
+//function : FitAll
+//purpose :
+//=============================================================================
void V3d_View::FitAll(const Handle(Aspect_Window)& aWindow,
const Standard_Real Xmin,
const Standard_Real Ymin,
const Standard_Real Xmax,
const Standard_Real Ymax)
{
- // normalize view coordinates
Standard_Integer aWinWidth, aWinHeight;
aWindow->Size (aWinWidth, aWinHeight);
- // compute camera panning
- gp_Vec aPanVec ((Xmin + Xmax) * 0.5, (Ymin + Ymax) * 0.5, 0.0);
-
- // compute section size
- gp_Pnt aViewBotLeft (Xmin, Ymin, 0.0);
- gp_Pnt aViewTopRight (Xmax, Ymax, 0.0);
-
- Standard_Real aUSize = Abs (Xmax - Xmin);
- Standard_Real aVSize = Abs (Ymax - Ymin);
-
- myCamera->BeginUpdate();
- myCamera->SetProjectionShift (gp_Pnt (0.0, 0.0, 0.0));
- PanCamera (aPanVec.X(), aPanVec.Y());
- ZoomCamera (aUSize, aVSize);
- myCamera->EndUpdate();
+ Standard_Real aWinAspect = (Standard_Real)aWinWidth / aWinHeight;
+ Standard_Real aFitSizeU = Abs (Xmax - Xmin);
+ Standard_Real aFitSizeV = Abs (Ymax - Ymin);
+ Standard_Real aFitAspect = aFitSizeU / aFitSizeV;
+ if (aFitAspect >= aWinAspect)
+ {
+ aFitSizeV = aFitSizeU / aWinAspect;
+ }
+ else
+ {
+ aFitSizeU = aFitSizeV * aWinAspect;
+ }
+ myCamera->SetAspect (aWinAspect);
+ Translate (myCamera, (Xmin + Xmax) * 0.5, (Ymin + Ymax) * 0.5);
+ Scale (myCamera, aFitSizeU, aFitSizeV);
AutoZFit();
- Update();
+ ImmediateUpdate();
}
+//=============================================================================
+//function : StartRotation
+//purpose :
+//=============================================================================
#ifdef IMP250900
static Standard_Boolean zRotation = Standard_False;
#endif
}
+//=============================================================================
+//function : Rotation
+//purpose :
+//=============================================================================
void V3d_View::Rotation(const Standard_Integer X,
const Standard_Integer Y)
{
#endif
}
-void V3d_View :: SetComputedMode ( const Standard_Boolean aMode )
+//=============================================================================
+//function : SetComputedMode
+//purpose :
+//=============================================================================
+void V3d_View::SetComputedMode (const Standard_Boolean aMode)
{
- if( aMode ) {
- if( myComputedMode ) {
- MyView -> SetComputedMode ( Standard_True );
- Update ();
+ if (aMode)
+ {
+ if (myComputedMode)
+ {
+ MyView->SetComputedMode (Standard_True);
+ Update();
}
- } else {
- MyView -> SetComputedMode ( Standard_False );
- Update ();
+ }
+ else
+ {
+ MyView->SetComputedMode (Standard_False);
+ Update();
}
}
-Standard_Boolean V3d_View :: ComputedMode () const
+//=============================================================================
+//function : ComputedMode
+//purpose :
+//=============================================================================
+Standard_Boolean V3d_View::ComputedMode() const
{
- return MyView -> ComputedMode ();
+ return MyView->ComputedMode();
}
-void V3d_View :: SetBackFacingModel (const V3d_TypeOfBackfacingModel aModel)
+//=============================================================================
+//function : SetBackFacingModel
+//purpose :
+//=============================================================================
+void V3d_View::SetBackFacingModel (const V3d_TypeOfBackfacingModel aModel)
{
- MyView -> SetBackFacingModel ( Visual3d_TypeOfBackfacingModel(aModel) );
+ MyView->SetBackFacingModel (Visual3d_TypeOfBackfacingModel(aModel));
Redraw();
}
-V3d_TypeOfBackfacingModel V3d_View :: BackFacingModel () const
+//=============================================================================
+//function : BackFacingModel
+//purpose :
+//=============================================================================
+V3d_TypeOfBackfacingModel V3d_View::BackFacingModel() const
{
return V3d_TypeOfBackfacingModel(MyView -> BackFacingModel ());
}
+//=============================================================================
+//function : TransientManagerBeginDraw
+//purpose :
+//=============================================================================
Standard_Boolean V3d_View::TransientManagerBeginDraw(const Standard_Boolean DoubleBuffer,const Standard_Boolean RetainMode) const
{
return Visual3d_TransientManager::BeginDraw(MyView,DoubleBuffer,RetainMode);
}
+//=============================================================================
+//function : TransientManagerClearDraw
+//purpose :
+//=============================================================================
void V3d_View::TransientManagerClearDraw() const
{
Visual3d_TransientManager::ClearDraw(MyView);
}
+//=============================================================================
+//function : TransientManagerBeginAddDraw
+//purpose :
+//=============================================================================
Standard_Boolean V3d_View::TransientManagerBeginAddDraw() const
{
return Visual3d_TransientManager::BeginAddDraw(MyView);
}
+//=============================================================================
+//function : Init
+//purpose :
+//=============================================================================
void V3d_View::Init()
{
myComputedMode = MyViewer->ComputedMode();
}
}
+//=============================================================================
+//function : SetPlotter
+//purpose :
+//=============================================================================
void V3d_View::SetPlotter(const Handle(Graphic3d_Plotter)& aPlotter)
{
MyPlotter = aPlotter;
}
+//=============================================================================
+//function : Plot
+//purpose :
+//=============================================================================
void V3d_View::Plot()
{
V3d_BadValue_Raise_if( !MyPlotter.IsNull(), "view has no plotter");
MyView->Plot(MyPlotter);
}
-#include <Aspect.hxx>
-#include <Visual3d_Layer.hxx>
-
-////////////////////////////////////////////////////////////////
+//=============================================================================
+//function : Dump
+//purpose :
+//=============================================================================
Standard_Boolean V3d_View::Dump (const Standard_CString theFile,
const Graphic3d_BufferType& theBufferType)
{
return ToPixMap (anImage, aWinWidth, aWinHeight, theBufferType) && anImage.Save (theFile);
}
-////////////////////////////////////////////////////////////////
+//=============================================================================
+//function : ToPixMap
+//purpose :
+//=============================================================================
Standard_Boolean V3d_View::ToPixMap (Image_PixMap& theImage,
const Standard_Integer theWidth,
const Standard_Integer theHeight,
const Graphic3d_BufferType& theBufferType,
- const Standard_Boolean theIsForceCentred,
+ const Standard_Boolean theToKeepAspect,
const V3d_StereoDumpOptions theStereoOptions)
{
Graphic3d_CView* cView = (Graphic3d_CView* )MyView->CView();
Handle(Graphic3d_Camera) aStoreMapping = new Graphic3d_Camera();
aStoreMapping->Copy (myCamera);
- Standard_Real Umin, Vmin, Umax, Vmax;
if (myCamera->IsStereo())
{
}
}
- if (theIsForceCentred)
- {
- Standard_Real PUmin, PVmin, PUmax, PVmax;
- myCamera->WindowLimit (PUmin, PVmin, PUmax, PVmax);
-
- // calculate expansion
- Umin = PUmin; Vmin = PVmin; Umax = PUmax; Vmax = PVmax;
- Standard_Real oldWidth = (PUmax - PUmin), oldHeight = (PVmax - PVmin);
- Standard_Real newWidth = (oldHeight * aFBOVPSizeX) / aFBOVPSizeY;
- if (newWidth < oldWidth)
- {
- Standard_Real newHeight = (oldWidth * aFBOVPSizeY) / aFBOVPSizeX;
- // Expand height
- Standard_Real delta = 0.5 * (newHeight - oldHeight);
- Vmin = PVmin - delta;
- Vmax = PVmax + delta;
- }
- else
- {
- // Expand width
- Standard_Real delta = 0.5 * (newWidth - oldWidth);
- Umin = PUmin - delta;
- Umax = PUmax + delta;
- }
+ AutoZFit();
- FitAll (Umin, Vmin, Umax, Vmax);
+ if (theToKeepAspect)
+ {
+ myCamera->SetAspect ((Standard_Real) aFBOVPSizeX / aFBOSizeYMax);
}
//workaround for rendering list of Over and Under Layers
// =======================================================================
void V3d_View::SetCamera (const Handle(Graphic3d_Camera)& theCamera)
{
+ Standard_ASSERT_RAISE (!theCamera.IsNull(), "Void camera is not allowed");
+
myCamera = theCamera;
MyView->SetCamera (theCamera);
// function : GetCamera
// purpose :
// =======================================================================
-Handle(Graphic3d_Camera) V3d_View::Camera() const
+const Handle(Graphic3d_Camera)& V3d_View::Camera() const
{
return myCamera;
}
// =======================================================================
-// function : FitCamera
-// purpose :
+// function : FitMinMax
+// purpose : Internal
// =======================================================================
-void V3d_View::FitCamera (const Standard_Real theXmin,
- const Standard_Real theYmin,
- const Standard_Real theZmin,
- const Standard_Real theXmax,
- const Standard_Real theYmax,
- const Standard_Real theZmax)
-{
- if (myCamera.IsNull())
- return;
-
- // check bounding box for validness
+Standard_Boolean V3d_View::FitMinMax (const Handle(Graphic3d_Camera)& theCamera,
+ const gp_XYZ& theMinCorner,
+ const gp_XYZ& theMaxCorner,
+ const Standard_Real theMargin,
+ const Standard_Real theResolution,
+ const Standard_Boolean theToEnlargeIfLine) const
+{
+ // Check bounding box for validness
Standard_Real aLim = (ShortRealLast() - 1.0);
- if (Abs (theXmin) > aLim || Abs (theYmin) > aLim || Abs (theZmin) > aLim ||
- Abs (theXmax) > aLim || Abs (theYmax) > aLim || Abs (theZmax) > aLim)
- return;
-
- // place camera center at the geometrical center
- // of the passed bounding box
- gp_Pnt aCenter ((theXmin + theXmax) * 0.5,
- (theYmin + theYmax) * 0.5,
- (theZmin + theZmax) * 0.5);
-
- // adapt bound points
- gp_Pnt aPnts[8] =
- { gp_Pnt (theXmin, theYmin, theZmin),
- gp_Pnt (theXmin, theYmin, theZmax),
- gp_Pnt (theXmin, theYmax, theZmin),
- gp_Pnt (theXmin, theYmax, theZmax),
- gp_Pnt (theXmax, theYmin, theZmin),
- gp_Pnt (theXmax, theYmin, theZmax),
- gp_Pnt (theXmax, theYmax, theZmin),
- gp_Pnt (theXmax, theYmax, theZmax) };
-
- Standard_Real aViewMinX = (RealLast() - 1);
- Standard_Real aViewMinY = (RealLast() - 1);
- Standard_Real aViewMinZ = (RealLast() - 1);
- Standard_Real aViewMaxX = (RealFirst() + 1);
- Standard_Real aViewMaxY = (RealFirst() + 1);
- Standard_Real aViewMaxZ = (RealFirst() + 1);
-
- // find out minimum and maximum values of bounding box
- // converted to view space. the limits point out a rectangular
- // section parallel to the screen that camera should zoom in.
- for (Standard_Integer aPntIt = 0; aPntIt < 8; ++aPntIt)
+ if (Abs (theMinCorner.X()) > aLim || Abs (theMinCorner.Y()) > aLim || Abs (theMinCorner.Z()) > aLim ||
+ Abs (theMaxCorner.X()) > aLim || Abs (theMaxCorner.Y()) > aLim || Abs (theMaxCorner.Z()) > aLim)
{
- gp_Pnt aView = myCamera->ConvertWorld2View (aPnts[aPntIt]);
- aViewMinX = Min (aViewMinX, aView.X());
- aViewMinY = Min (aViewMinY, aView.Y());
- aViewMaxX = Max (aViewMaxX, aView.X());
- aViewMaxY = Max (aViewMaxY, aView.Y());
- aViewMinZ = Min (aViewMinZ, aView.Z());
- aViewMaxZ = Max (aViewMaxZ, aView.Z());
- }
-
- // evaluate section size for x1 zoom.
- Standard_Real aSectU = (aViewMaxX - aViewMinX);
- Standard_Real aSectV = (aViewMaxY - aViewMinY);
-
- // zoom camera to front plane of bounding box. the camera
- // is set up at the center of bbox, so the depth is half
- // space of it in view coordinate space.
- Standard_Real aSectDepth = (aViewMaxZ - aViewMinZ) * 0.5;
-
- // re-compute Eye position
- gp_Vec aBck = gp_Vec (myCamera->Center(), myCamera->Eye());
- gp_Pnt aEye = aCenter.Translated (aBck);
-
- // start camera updates
- myCamera->BeginUpdate();
-
- if (myCamera->IsOrthographic())
+ return Standard_False; // bounding box is out of bounds...
+ }
+
+ // Apply "axial scaling" to the bounding points.
+ // It is not the best approach to make this scaling as a part of fit all operation,
+ // but the axial scale is integrated into camera orientation matrix and the other
+ // option is to perform frustum plane adjustment algorithm in view camera space,
+ // which will lead to a number of additional world-view space conversions and
+ // loosing precision as well.
+ Standard_Real aXmin = theMinCorner.X() * theCamera->AxialScale().X();
+ Standard_Real aXmax = theMaxCorner.X() * theCamera->AxialScale().X();
+ Standard_Real aYmin = theMinCorner.Y() * theCamera->AxialScale().Y();
+ Standard_Real aYmax = theMaxCorner.Y() * theCamera->AxialScale().Y();
+ Standard_Real aZmin = theMinCorner.Z() * theCamera->AxialScale().Z();
+ Standard_Real aZmax = theMaxCorner.Z() * theCamera->AxialScale().Z();
+
+ Bnd_Box aBBox;
+ aBBox.Update (aXmin, aYmin, aZmin, aXmax, aYmax, aZmax);
+ if (aBBox.IsThin (RealEpsilon()))
{
- Standard_Real anX = (aViewMaxX + aViewMinX) * 0.5;
- Standard_Real anY = (aViewMaxY + aViewMinY) * 0.5;
- myCamera->SetProjectionShift (gp_Pnt (-anX, -anY, 0.0));
- }
- else
+ return Standard_False; // nothing to fit all
+ }
+
+ gp_Pnt aBBCenter ((aXmin + aXmax) * 0.5, (aYmin + aYmax) * 0.5, (aZmin + aZmax) * 0.5);
+
+ gp_Pln aFrustumLeft;
+ gp_Pln aFrustumRight;
+ gp_Pln aFrustumBottom;
+ gp_Pln aFrustumTop;
+ gp_Pln aFrustumNear;
+ gp_Pln aFrustumFar;
+ theCamera->Frustum (aFrustumLeft, aFrustumRight, aFrustumBottom, aFrustumTop, aFrustumNear, aFrustumFar);
+
+ gp_Dir aCamUp = theCamera->OrthogonalizedUp();
+ gp_Dir aCamDir = theCamera->Direction();
+ gp_Dir aCamSide = aCamDir ^ aCamUp;
+
+ // Perspective-correct camera projection vector, matching the bounding box is determined geometrically.
+ // Knowing the initial shape of a frustum it is possible to match it to a bounding box.
+ // Then, knowing the relation of camera projection vector to the frustum shape it is possible to
+ // set up perspective-correct camera projection matching the bounding box.
+ // These steps support non-asymmetric transformations of view-projection space provided by camera.
+ // The zooming can be done by calculating view plane size matching the bounding box at center of
+ // the bounding box. The only limitation here is that the scale of camera should define size of
+ // its view plane passing through the camera center, and the center of camera should be on the
+ // same line with the center of bounding box.
+
+ // The following method is applied:
+ // 1) Determine normalized asymmetry of camera projection vector by frustum planes.
+ // 2) Determine new location of frustum planes, "matching" the bounding box.
+ // 3) Determine new camera projection vector using the normalized asymmetry.
+ // 4) Determine new zooming in view space.
+
+ // Determine normalized projection asymmetry (if any).
+
+ Standard_Real anAssymX = Tan ( aCamSide.Angle (aFrustumLeft.Axis().Direction()))
+ - Tan (-aCamSide.Angle (aFrustumRight.Axis().Direction()));
+ Standard_Real anAssymY = Tan ( aCamUp.Angle (aFrustumBottom.Axis().Direction()))
+ - Tan (-aCamUp.Angle (aFrustumTop.Axis().Direction()));
+
+ // Determine how far should be the frustum planes placed from center
+ // of bounding box, in order to match the bounding box closely.
+ gp_Pln aMatchSide[6] = {aFrustumLeft, aFrustumRight, aFrustumBottom, aFrustumTop, aFrustumNear, aFrustumFar};
+ Standard_Real aMatchDistance[6] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
+ for (Standard_Integer anIt = 0; anIt < 6; ++anIt)
+ {
+ const gp_Dir& aPlaneN = aMatchSide[anIt].Axis().Direction();
+
+ gp_Trsf aPlaneTrsf;
+ aPlaneTrsf.SetTransformation (gp_Ax3(), gp_Ax3 (aBBCenter, aPlaneN));
+ Bnd_Box aRelativeBBox = aBBox.Transformed (aPlaneTrsf);
+
+ Standard_Real aDummy = 0.0;
+ Standard_Real aZmin = 0.0;
+ Standard_Real aZmax = 0.0;
+ aRelativeBBox.Get (aDummy, aDummy, aZmin, aDummy, aDummy, aZmax);
+ aMatchDistance[anIt] = -aZmin;
+ }
+ // The center of camera is placed on the same line with center of bounding box.
+ // The view plane section crosses the bounding box at its center.
+ // To compute view plane size, evaluate coefficients converting "point -> plane distance"
+ // into view section size between the point and the frustum plane.
+ // proj
+ // /|\ right half of frame //
+ // | //
+ // point o<-- distance * coeff -->//---- (view plane section)
+ // \ //
+ // (distance) //
+ // ~ //
+ // (distance) //
+ // \/\//
+ // \//
+ // //
+ // (frustum plane)
+
+ aMatchDistance[0] *= Sqrt(1 + Pow (Tan ( aCamSide.Angle (aFrustumLeft.Axis().Direction())), 2.0));
+ aMatchDistance[1] *= Sqrt(1 + Pow (Tan (-aCamSide.Angle (aFrustumRight.Axis().Direction())), 2.0));
+ aMatchDistance[2] *= Sqrt(1 + Pow (Tan ( aCamUp.Angle (aFrustumBottom.Axis().Direction())), 2.0));
+ aMatchDistance[3] *= Sqrt(1 + Pow (Tan (-aCamUp.Angle (aFrustumTop.Axis().Direction())), 2.0));
+ aMatchDistance[4] *= Sqrt(1 + Pow (Tan ( aCamDir.Angle (aFrustumNear.Axis().Direction())), 2.0));
+ aMatchDistance[5] *= Sqrt(1 + Pow (Tan (-aCamDir.Angle (aFrustumFar.Axis().Direction())), 2.0));
+
+ Standard_Real aViewSizeXv = aMatchDistance[0] + aMatchDistance[1];
+ Standard_Real aViewSizeYv = aMatchDistance[2] + aMatchDistance[3];
+ Standard_Real aViewSizeZv = aMatchDistance[4] + aMatchDistance[5];
+
+ // Place center of camera on the same line with center of bounding
+ // box applying corresponding projection asymmetry (if any).
+ Standard_Real anAssymXv = anAssymX * aViewSizeXv * 0.5;
+ Standard_Real anAssymYv = anAssymY * aViewSizeYv * 0.5;
+ Standard_Real anOffsetXv = (aMatchDistance[1] - aMatchDistance[0]) * 0.5 + anAssymXv;
+ Standard_Real anOffsetYv = (aMatchDistance[3] - aMatchDistance[2]) * 0.5 + anAssymYv;
+ gp_Vec aTranslateSide = gp_Vec (aCamSide) * anOffsetXv;
+ gp_Vec aTranslateUp = gp_Vec (aCamUp) * anOffsetYv;
+ gp_Pnt aNewCenter = aBBCenter.Translated (aTranslateSide).Translated (aTranslateUp);
+
+ gp_Trsf aCenterTrsf;
+ aCenterTrsf.SetTranslation (theCamera->Center(), aNewCenter);
+ theCamera->Transform (aCenterTrsf);
+ theCamera->SetDistance (Max (aMatchDistance[5] + aMatchDistance[4], Precision::Confusion()));
+
+ // Bounding box collapses to a point or thin line going in depth of the screen
+ if (aViewSizeXv < theResolution && aViewSizeYv < theResolution)
{
- myCamera->SetProjectionShift (gp_Pnt (0.0, 0.0, 0.0));
- myCamera->SetCenter (aCenter);
- myCamera->SetEye (aEye);
+ if (aViewSizeXv < theResolution || !theToEnlargeIfLine)
+ {
+ return Standard_True; // This is just one point or line and zooming has no effect.
+ }
+
+ // Looking along line and "theToEnlargeIfLine" is requested.
+ // Fit view to see whole scene on rotation.
+ aViewSizeXv = aViewSizeZv;
+ aViewSizeYv = aViewSizeZv;
}
- // zoom camera to fit in the bounding box.
- ZoomCamera (aSectU, aSectV, aSectDepth);
+ Scale (theCamera, aViewSizeXv * (1.0 + theMargin), aViewSizeYv * (1.0 + theMargin));
- // re-evaluate camera
- myCamera->EndUpdate();
+ return Standard_True;
}
// =======================================================================
-// function : ZoomCamera
-// purpose :
+// function : Scale
+// purpose : Internal
// =======================================================================
-void V3d_View::ZoomCamera (const Standard_Real theUSize,
- const Standard_Real theVSize,
- const Standard_Real theZDepth)
+void V3d_View::Scale (const Handle(Graphic3d_Camera)& theCamera,
+ const Standard_Real theSizeXv,
+ const Standard_Real theSizeYv) const
{
- if (myCamera.IsNull())
- return;
-
- // compute maximum section size along both directions.
- Standard_Real anAspect = myCamera->Aspect();
- Standard_Real aSize = Max (theUSize / anAspect, theVSize);
-
- myCamera->BeginUpdate();
- myCamera->SetScale (aSize);
-
- if (!myCamera->IsOrthographic())
- {
- myCamera->SetDistance (myCamera->Distance() + theZDepth);
- }
-
- AutoZFit();
-
- myCamera->EndUpdate();
+ Standard_Real anAspect = theCamera->Aspect();
+ Standard_Real aMaxSize = Max (theSizeXv / anAspect, theSizeYv);
+ theCamera->SetScale (aMaxSize);
}
// =======================================================================
-// function : PanCamera
-// purpose : panning is fun
+// function : Translate
+// purpose : Internal
// =======================================================================
-void V3d_View::PanCamera (const Standard_Real theU,
- const Standard_Real theV)
-{
- if (myCamera.IsNull())
- return;
-
- if (myCamera->IsOrthographic())
- {
- // Projection based panning for compatibility.
- myCamera->SetProjectionShift (myCamera->ProjectionShift().
- Translated (gp_Vec (-theU, -theV, 0.0)));
- }
- else
- {
- gp_Vec anUp = myCamera->Up();
- gp_Vec aSide = myCamera->Direction().Crossed (anUp);
-
- gp_Vec aPanU = aSide.Scaled (theU);
- gp_Vec aPanV = anUp.Scaled (theV);
- gp_Pnt aPannedEye (myCamera->Eye());
- gp_Pnt aPannedCenter (myCamera->Center());
-
- aPannedEye.Translate (aPanU);
- aPannedEye.Translate (aPanV);
- aPannedCenter.Translate (aPanU);
- aPannedCenter.Translate (aPanV);
-
- myCamera->BeginUpdate();
- myCamera->SetEye (aPannedEye);
- myCamera->SetCenter (aPannedCenter);
- myCamera->EndUpdate();
- }
-
- AutoZFit();
+void V3d_View::Translate (const Handle(Graphic3d_Camera)& theCamera,
+ const Standard_Real theDXv,
+ const Standard_Real theDYv) const
+{
+ const gp_Pnt& aCenter = theCamera->Center();
+ const gp_Dir& aDir = theCamera->Direction();
+ const gp_Dir& anUp = theCamera->Up();
+ gp_Ax3 aCameraCS (aCenter, aDir.Reversed(), aDir ^ anUp);
+
+ gp_Vec aCameraPanXv = gp_Vec (aCameraCS.XDirection()) * theDXv;
+ gp_Vec aCameraPanYv = gp_Vec (aCameraCS.YDirection()) * theDYv;
+ gp_Vec aCameraPan = aCameraPanXv + aCameraPanYv;
+ gp_Trsf aPanTrsf;
+ aPanTrsf.SetTranslation (aCameraPan);
+
+ theCamera->Transform (aPanTrsf);
}
break ;
}
}
-void V3d_View::Place (const Standard_Integer ix, const Standard_Integer iy,
- const Quantity_Factor aZoomFactor) {
- Standard_Real xpos, ypos;
- Standard_Integer xc, yc;
- Center (xpos, ypos);
- Convert (xpos, ypos, xc, yc);
- Pan (xc - ix, iy - yc, aZoomFactor / Scale());
+
+//=======================================================================
+//function : Place
+//purpose :
+//=======================================================================
+void V3d_View::Place (const Standard_Integer theXp,
+ const Standard_Integer theYp,
+ const Quantity_Factor theZoomFactor)
+{
+ Standard_Integer aWinWidth = 0;
+ Standard_Integer aWinHeight = 0;
+ View()->Window()->Size (aWinWidth, aWinHeight);
+
+ Standard_Integer aWinCXp = aWinWidth / 2;
+ Standard_Integer aWinCYp = aWinHeight / 2;
+ Pan (aWinCXp - theXp, aWinCYp - theYp, theZoomFactor / Scale());
}
void V3d_View::Translate(const Standard_Real theLength, const Standard_Boolean theStart) {
---Purpose: Splits "parameter=value" string into separate
-- parameter and value strings.
-- @return TRUE if the string matches pattern "<string>=<empty or string>"
-
end;
#include <TopLoc_Location.hxx>
#include <TopTools_HArray1OfShape.hxx>
#include <TColStd_HArray1OfTransient.hxx>
+#include <TColStd_SequenceOfAsciiString.hxx>
#include <OSD_Timer.hxx>
#include <Geom_Axis2Placement.hxx>
#include <Geom_Axis1Placement.hxx>
#define DEFAULT_COLOR Quantity_NOC_GOLDENROD
#define DEFAULT_MATERIAL Graphic3d_NOM_BRASS
-
//=======================================================================
//function : GetColorFromName
//purpose : get the Quantity_NameOfColor from a string
//==============================================================================
//function : splitParameter
-//purpose : Split parameter string to parameter name an parameter value
+//purpose : Split parameter string to parameter name and parameter value
//==============================================================================
Standard_Boolean ViewerTest::SplitParameter (const TCollection_AsciiString& theString,
TCollection_AsciiString& theName,
#include <Image_AlienPixMap.hxx>
#include <OpenGl_GraphicDriver.hxx>
#include <OSD_Timer.hxx>
+#include <TColStd_SequenceOfAsciiString.hxx>
#include <TColStd_SequenceOfInteger.hxx>
#include <TColStd_HSequenceOfReal.hxx>
#include <TColgp_Array1OfPnt2d.hxx>
+#include <TColStd_MapOfAsciiString.hxx>
#include <Visual3d_LayerItem.hxx>
#include <Aspect_TypeOfLine.hxx>
#include <Image_Diff.hxx>
//==============================================================================
void VT_ProcessControlButton2Motion()
{
- Quantity_Length dx = ViewerTest::CurrentView()->Convert(X_Motion - X_ButtonPress);
- Quantity_Length dy = ViewerTest::CurrentView()->Convert(Y_Motion - Y_ButtonPress);
+ Standard_Integer aDx = X_Motion - X_ButtonPress;
+ Standard_Integer aDy = Y_Motion - Y_ButtonPress;
- dy = -dy; // Xwindow Y axis is from top to Bottom
+ aDy = -aDy; // Xwindow Y axis is from top to Bottom
- ViewerTest::CurrentView()->Panning( dx, dy );
+ ViewerTest::CurrentView()->Pan (aDx, aDy);
X_ButtonPress = X_Motion;
Y_ButtonPress = Y_Motion;
//purpose : ZFitall, no DRAW arguments
//Draw arg : No args
//==============================================================================
-
-static int VZFit(Draw_Interpretor& , Standard_Integer , const char** )
+static int VZFit (Draw_Interpretor& /*theDi*/, Standard_Integer theArgsNb, const char** theArgVec)
{
- Handle(V3d_View) V = ViewerTest::CurrentView();
- if ( !V.IsNull() ) V->ZFitAll(); return 0; }
+ const Handle(V3d_View)& aCurrentView = ViewerTest::CurrentView();
+
+ if (aCurrentView.IsNull())
+ {
+ std::cout << theArgVec[0] << ": Call vinit before this command, please.\n";
+ return 1;
+ }
+
+ if (theArgsNb == 1)
+ {
+ aCurrentView->ZFitAll();
+ aCurrentView->Redraw();
+ return 0;
+ }
+
+ Standard_Real aScale = 1.0;
+
+ if (theArgsNb >= 2)
+ {
+ aScale = Draw::Atoi (theArgVec[1]);
+ }
+
+ aCurrentView->ZFitAll (aScale);
+ aCurrentView->Redraw();
+ return 0;
+}
-static int VRepaint(Draw_Interpretor& , Standard_Integer , const char** )
+//==============================================================================
+//function : VRepaint
+//purpose :
+//==============================================================================
+static int VRepaint (Draw_Interpretor& , Standard_Integer , const char** )
{
Handle(V3d_View) V = ViewerTest::CurrentView();
if ( !V.IsNull() ) V->Redraw(); return 0;
}
-
//==============================================================================
//function : VClear
//purpose : Remove all the object from the viewer
return 0;
}
-//=======================================================================
+//=================================================================================================
//function : VViewParams
//purpose : Gets or sets AIS View characteristics
-//=======================================================================
-static Standard_Integer VViewParams (Draw_Interpretor& di,
- Standard_Integer argc,
- const char ** argv)
+//=================================================================================================
+static int VViewParams (Draw_Interpretor& theDi, Standard_Integer theArgsNb, const char** theArgVec)
{
- if ( argc != 1 && argc != 13)
+ Handle(V3d_View) anAISView = ViewerTest::CurrentView();
+ if (anAISView.IsNull())
{
- di << "Usage : " << argv[0] << "\n";
+ std::cout << theArgVec[0] << ": please initialize or activate view.\n";
return 1;
}
- Handle (V3d_View) anAISView = ViewerTest::CurrentView ();
- if ( anAISView.IsNull () )
+
+ if (theArgsNb == 1)
{
- di << "use 'vinit' command before " << argv[0] << "\n";
- return 1;
- }
- if(argc==1){
- Quantity_Factor anAISViewScale = anAISView -> V3d_View::Scale ();
- Standard_Real anAISViewCenterCoordinateX = 0.0;
- Standard_Real anAISViewCenterCoordinateY = 0.0;
- anAISView -> V3d_View::Center (anAISViewCenterCoordinateX, anAISViewCenterCoordinateY);
+ // print all of the available view parameters
+ Quantity_Factor anAISViewScale = anAISView->Scale();
+
Standard_Real anAISViewProjX = 0.0;
Standard_Real anAISViewProjY = 0.0;
Standard_Real anAISViewProjZ = 0.0;
- anAISView -> V3d_View::Proj (anAISViewProjX, anAISViewProjY, anAISViewProjZ);
+ anAISView->Proj (anAISViewProjX, anAISViewProjY, anAISViewProjZ);
+
Standard_Real anAISViewUpX = 0.0;
Standard_Real anAISViewUpY = 0.0;
Standard_Real anAISViewUpZ = 0.0;
- anAISView -> V3d_View::Up (anAISViewUpX, anAISViewUpY, anAISViewUpZ);
+ anAISView->Up (anAISViewUpX, anAISViewUpY, anAISViewUpZ);
+
Standard_Real anAISViewAtX = 0.0;
Standard_Real anAISViewAtY = 0.0;
Standard_Real anAISViewAtZ = 0.0;
- anAISView -> V3d_View::At (anAISViewAtX, anAISViewAtY, anAISViewAtZ);
- di << "Scale of current view: " << anAISViewScale << "\n";
- di << "Center on X : "<< anAISViewCenterCoordinateX << "; on Y: " << anAISViewCenterCoordinateY << "\n";
- di << "Proj on X : " << anAISViewProjX << "; on Y: " << anAISViewProjY << "; on Z: " << anAISViewProjZ << "\n";
- di << "Up on X : " << anAISViewUpX << "; on Y: " << anAISViewUpY << "; on Z: " << anAISViewUpZ << "\n";
- di << "At on X : " << anAISViewAtX << "; on Y: " << anAISViewAtY << "; on Z: " << anAISViewAtZ << "\n";
+ anAISView->At (anAISViewAtX, anAISViewAtY, anAISViewAtZ);
+
+ Standard_Real anAISViewEyeX = 0.0;
+ Standard_Real anAISViewEyeY = 0.0;
+ Standard_Real anAISViewEyeZ = 0.0;
+ anAISView->Eye (anAISViewEyeX, anAISViewEyeY, anAISViewEyeZ);
+
+ theDi << "Scale of current view: " << anAISViewScale << "\n";
+ theDi << "Proj on X : " << anAISViewProjX << "; on Y: " << anAISViewProjY << "; on Z: " << anAISViewProjZ << "\n";
+ theDi << "Up on X : " << anAISViewUpX << "; on Y: " << anAISViewUpY << "; on Z: " << anAISViewUpZ << "\n";
+ theDi << "At on X : " << anAISViewAtX << "; on Y: " << anAISViewAtY << "; on Z: " << anAISViewAtZ << "\n";
+ theDi << "Eye on X : " << anAISViewEyeX << "; on Y: " << anAISViewEyeY << "; on Z: " << anAISViewEyeZ << "\n";
+ return 0;
}
- else
+
+ // -------------------------
+ // Parse options and values
+ // -------------------------
+
+ NCollection_DataMap<TCollection_AsciiString, TColStd_SequenceOfAsciiString> aMapOfKeysByValues;
+ TCollection_AsciiString aParseKey;
+ for (Standard_Integer anArgIt = 1; anArgIt < theArgsNb; ++anArgIt)
+ {
+ TCollection_AsciiString anArg (theArgVec [anArgIt]);
+
+ if (anArg.Value (1) == '-' && !anArg.IsRealValue())
+ {
+ aParseKey = anArg;
+ aParseKey.Remove (1);
+ aParseKey.UpperCase();
+ aMapOfKeysByValues.Bind (aParseKey, TColStd_SequenceOfAsciiString());
+ continue;
+ }
+
+ aMapOfKeysByValues.ChangeFind (aParseKey).Append (anArg);
+ }
+
+ // ---------------------------------------------
+ // Change or print parameters, order plays role
+ // ---------------------------------------------
+
+ // Check arguments for validity
+ NCollection_DataMap<TCollection_AsciiString, TColStd_SequenceOfAsciiString>::Iterator aMapIt (aMapOfKeysByValues);
+ for (; aMapIt.More(); aMapIt.Next())
{
- Quantity_Factor anAISViewScale = atof (argv [1]);
- Standard_Real anAISViewCenterCoordinateX = atof (argv [2]);
- Standard_Real anAISViewCenterCoordinateY = atof (argv [3]);
- Standard_Real anAISViewProjX = atof (argv [4]);
- Standard_Real anAISViewProjY = atof (argv [5]);
- Standard_Real anAISViewProjZ = atof (argv [6]);
- Standard_Real anAISViewUpX = atof (argv [7]);
- Standard_Real anAISViewUpY = atof (argv [8]);
- Standard_Real anAISViewUpZ = atof (argv [9]);
- Standard_Real anAISViewAtX = atof (argv [10]);
- Standard_Real anAISViewAtY = atof (argv [11]);
- Standard_Real anAISViewAtZ = atof (argv [12]);
- anAISView -> V3d_View::Camera()->BeginUpdate();
- anAISView -> V3d_View::SetCenter (anAISViewCenterCoordinateX, anAISViewCenterCoordinateY);
- anAISView -> V3d_View::SetAt (anAISViewAtX, anAISViewAtY, anAISViewAtZ);
- anAISView -> V3d_View::SetScale (anAISViewScale);
- anAISView -> V3d_View::SetProj (anAISViewProjX, anAISViewProjY, anAISViewProjZ);
- anAISView -> V3d_View::SetUp (anAISViewUpX, anAISViewUpY, anAISViewUpZ);
- anAISView -> V3d_View::Camera()->EndUpdate();
+ const TCollection_AsciiString& aKey = aMapIt.Key();
+ const TColStd_SequenceOfAsciiString& aValues = aMapIt.Value();
+
+ if (!(aKey.IsEqual ("SCALE") && (aValues.Length() == 1 || aValues.IsEmpty()))
+ && !(aKey.IsEqual ("EYE") && (aValues.Length() == 3 || aValues.IsEmpty()))
+ && !(aKey.IsEqual ("AT") && (aValues.Length() == 3 || aValues.IsEmpty()))
+ && !(aKey.IsEqual ("UP") && (aValues.Length() == 3 || aValues.IsEmpty()))
+ && !(aKey.IsEqual ("PROJ") && (aValues.Length() == 3 || aValues.IsEmpty()))
+ && !(aKey.IsEqual ("CENTER") && aValues.Length() == 2))
+ {
+ TCollection_AsciiString aLowerKey;
+ aLowerKey = "-";
+ aLowerKey += aKey;
+ aLowerKey.LowerCase();
+ std::cout << theArgVec[0] << ": " << aLowerKey << " is unknown option, or number of arguments is invalid.\n";
+ std::cout << "Type help for more information.\n";
+ return 1;
+ }
}
+
+ TColStd_SequenceOfAsciiString aValues;
+
+ // Change view parameters in proper order
+ if (aMapOfKeysByValues.Find ("SCALE", aValues))
+ {
+ if (aValues.IsEmpty())
+ {
+ theDi << "Scale: " << anAISView->Scale() << "\n";
+ }
+ else
+ {
+ anAISView->SetScale (aValues (1).RealValue());
+ }
+ }
+ if (aMapOfKeysByValues.Find ("EYE", aValues))
+ {
+ if (aValues.IsEmpty())
+ {
+ Standard_Real anEyeX = 0.0;
+ Standard_Real anEyeY = 0.0;
+ Standard_Real anEyeZ = 0.0;
+ anAISView->Eye (anEyeX, anEyeY, anEyeZ);
+ theDi << "Eye X: " << anEyeX << " Y: " << anEyeY << " Z: " << anEyeZ << "\n";
+ }
+ else
+ {
+ anAISView->SetEye (aValues (1).RealValue(), aValues (2).RealValue(), aValues (3).RealValue());
+ }
+ }
+ if (aMapOfKeysByValues.Find ("AT", aValues))
+ {
+ if (aValues.IsEmpty())
+ {
+ Standard_Real anAtX = 0.0;
+ Standard_Real anAtY = 0.0;
+ Standard_Real anAtZ = 0.0;
+ anAISView->At (anAtX, anAtY, anAtZ);
+ theDi << "At X: " << anAtX << " Y: " << anAtY << " Z: " << anAtZ << "\n";
+ }
+ else
+ {
+ anAISView->SetAt (aValues (1).RealValue(), aValues (2).RealValue(), aValues (3).RealValue());
+ }
+ }
+ if (aMapOfKeysByValues.Find ("PROJ", aValues))
+ {
+ if (aValues.IsEmpty())
+ {
+ Standard_Real aProjX = 0.0;
+ Standard_Real aProjY = 0.0;
+ Standard_Real aProjZ = 0.0;
+ anAISView->Proj (aProjX, aProjY, aProjZ);
+ theDi << "Proj X: " << aProjX << " Y: " << aProjY << " Z: " << aProjZ << "\n";
+ }
+ else
+ {
+ anAISView->SetProj (aValues (1).RealValue(), aValues (2).RealValue(), aValues (3).RealValue());
+ }
+ }
+ if (aMapOfKeysByValues.Find ("UP", aValues))
+ {
+ if (aValues.IsEmpty())
+ {
+ Standard_Real anUpX = 0.0;
+ Standard_Real anUpY = 0.0;
+ Standard_Real anUpZ = 0.0;
+ anAISView->Up (anUpX, anUpY, anUpZ);
+ theDi << "Up X: " << anUpX << " Y: " << anUpY << " Z: " << anUpZ << "\n";
+ }
+ else
+ {
+ anAISView->SetUp (aValues (1).RealValue(), aValues (2).RealValue(), aValues (3).RealValue());
+ }
+ }
+ if (aMapOfKeysByValues.Find ("CENTER", aValues))
+ {
+ anAISView->SetCenter (aValues (1).IntegerValue(), aValues (2).IntegerValue());
+ }
+
return 0;
}
//===============================================================================================
static int VZRange (Draw_Interpretor& theDi, Standard_Integer theArgsNb, const char** theArgVec)
{
- if (ViewerTest::CurrentView().IsNull())
+ const Handle(V3d_View)& aCurrentView = ViewerTest::CurrentView();
+
+ if (aCurrentView.IsNull())
{
- theDi << theArgVec[0] << ": Call vinit before this command, please.\n";
+ std::cout << theArgVec[0] << ": Call vinit before this command, please.\n";
return 1;
}
- Handle(Graphic3d_Camera) aCamera = ViewerTest::CurrentView()->Camera();
+ Handle(Graphic3d_Camera) aCamera = aCurrentView->Camera();
if (theArgsNb < 2)
{
{
Standard_Real aNewZNear = atof (theArgVec[1]);
Standard_Real aNewZFar = atof (theArgVec[2]);
-
- aCamera->BeginUpdate();
- aCamera->SetZFar (aNewZFar);
- aCamera->SetZNear (aNewZNear);
- aCamera->EndUpdate();
+
+ if (aNewZNear >= aNewZFar)
+ {
+ std::cout << theArgVec[0] << ": invalid arguments: znear should be less than zfar.\n";
+ return 1;
+ }
+
+ if (!aCamera->IsOrthographic() && (aNewZNear <= 0.0 || aNewZFar <= 0.0))
+ {
+ std::cout << theArgVec[0] << ": invalid arguments: ";
+ std::cout << "znear, zfar should be positive for perspective camera.\n";
+ return 1;
+ }
+
+ aCamera->SetZRange (aNewZNear, aNewZFar);
}
else
{
- theDi << theArgVec[0] << ": wrong command arguments. Type help for more information.\n";
+ std::cout << theArgVec[0] << ": wrong command arguments. Type help for more information.\n";
return 1;
}
+ aCurrentView->Redraw();
+
return 0;
}
//===============================================================================================
static int VAutoZFit (Draw_Interpretor& theDi, Standard_Integer theArgsNb, const char** theArgVec)
{
- if (ViewerTest::CurrentView().IsNull())
+ const Handle(V3d_View)& aCurrentView = ViewerTest::CurrentView();
+
+ if (aCurrentView.IsNull())
{
- theDi << theArgVec[0] << ": Call vinit before this command, please.\n";
+ std::cout << theArgVec[0] << ": Call vinit before this command, please.\n";
return 1;
}
- if (theArgsNb < 2)
+ Standard_Real aScale = aCurrentView->AutoZFitScaleFactor();
+
+ if (theArgsNb > 3)
{
- theDi << "Auto z-fit mode: " << (ViewerTest::CurrentView()->AutoZFitMode() ? "enabled" : "disabled");
- return 0;
+ std::cout << theArgVec[0] << ": wrong command arguments. Type help for more information.\n";
+ return 1;
}
- if (theArgsNb == 2)
+ if (theArgsNb < 2)
{
- Standard_Real aNewMode = atoi (theArgVec[1]);
-
- ViewerTest::CurrentView()->SetAutoZFitMode (aNewMode != 0);
+ theDi << "Auto z-fit mode: " << "\n"
+ << "On: " << (aCurrentView->AutoZFitMode() ? "enabled" : "disabled") << "\n"
+ << "Scale: " << aScale << "\n";
+ return 0;
}
- else
+
+ Standard_Boolean isOn = Draw::Atoi (theArgVec[1]) == 1;
+
+ if (theArgsNb >= 3)
{
- theDi << theArgVec[0] << ": wrong command arguments. Type help for more information.\n";
- return 1;
+ aScale = Draw::Atoi (theArgVec[2]);
}
+ aCurrentView->SetAutoZFitMode (isOn, aScale);
+ aCurrentView->AutoZFit();
+ aCurrentView->Redraw();
+
return 0;
}
theDi << theArgVec[0] << anErrorMessage;
return 1;
}
-
- ViewerTest::CurrentView()->ZFitAll();
}
else if (aCommand == "dist")
{
aCamera->SetDistance (aValue.RealValue());
- ViewerTest::CurrentView()->ZFitAll();
}
else if (aCommand == "iod")
{
return 1;
}
+ ViewerTest::CurrentView()->AutoZFit();
ViewerTest::CurrentView()->Redraw();
return 0;
theCommands.Add("vfit" ,
"vfit or <F> : vfit",
__FILE__,VFit,group);
- theCommands.Add("vzfit" ,
- "vzfit",
- __FILE__,VZFit,group);
+ theCommands.Add ("vzfit", "vzfit [scale]\n"
+ " Matches Z near, Z far view volume planes to the displayed objects.\n"
+ " \"scale\" - specifies factor to scale computed z range.\n",
+ __FILE__, VZFit, group);
theCommands.Add("vrepaint",
"vrepaint : vrepaint, force redraw",
__FILE__,VRepaint,group);
"vmoveto x y"
"- emulates cursor movement to pixel postion (x,y)",
__FILE__, VMoveTo, group);
- theCommands.Add("vviewparams",
- "vviewparams [scale center_X center_Y proj_X proj_Y proj_Z up_X up_Y up_Z at_X at_Y at_Z]"
- "- gets or sets current view characteristics",
- __FILE__,VViewParams, group);
+ theCommands.Add ("vviewparams", "vviewparams usage:\n"
+ "- vviewparams\n"
+ "- vviewparams [-scale [s]] [-eye [x y z]] [-at [x y z]] [-up [x y z]]\n"
+ " [-proj [x y z]] [-center x y]\n"
+ "- Gets or sets current view parameters.\n"
+ "- If called without arguments, all view parameters are printed.\n"
+ "- The options are:\n"
+ " -scale [s] : prints or sets viewport scale.\n"
+ " -eye [x y z] : prints or sets eye location.\n"
+ " -at [x y z] : prints or sets center of look.\n"
+ " -up [x y z] : prints or sets direction of up vector.\n"
+ " -proj [x y z] : prints or sets direction of look.\n"
+ " -center x y : sets location of center of the screen in pixels.\n",
+ __FILE__, VViewParams, group);
theCommands.Add("vchangeselected",
"vchangeselected shape"
"- adds to shape to selection or remove one from it",
" Intraocular distance definition type (absolute value or coefficient).\n",
__FILE__, VChangeCamera, group);
theCommands.Add ("vautozfit", "command to enable or disable automatic z-range adjusting\n"
- " vautozfit [1|0]",
- __FILE__,VAutoZFit, group);
+ "- vautozfit [on={1|0}] [scale]\n"
+ " Prints or changes parameters of automatic z-fit mode:\n"
+ " \"on\" - turns automatic z-fit on or off\n"
+ " \"scale\" - specifies factor to scale computed z range.\n",
+ __FILE__, VAutoZFit, group);
theCommands.Add ("vzrange", "command to manually access znear and zfar values\n"
" vzrange - without parameters shows current values\n"
" vzrange [znear] [zfar] - applies provided values to view",
-- <me> is deleted after the call Remove (me).
---Category: Inquire methods
- MinMaxValues ( me;
- XMin, YMin, ZMin : out Real from Standard;
- XMax, YMax, ZMax : out Real from Standard )
- is static;
- ---Level: Public
- ---Purpose: Returns the coordinates of the boundary box of all
- -- structures displayed in the view <me>.
-
- MinMaxValues ( me;
- ASet : MapOfStructure from Graphic3d;
- XMin, YMin, ZMin : out Real from Standard;
- XMax, YMax, ZMax : out Real from Standard )
- is static;
- ---Level: Public
- ---Purpose: Returns the coordinates of the boundary box of all
- -- structures in the set <ASet>.
-
- MinMaxValues ( me : mutable;
- XMin, YMin : out Real from Standard;
- XMax, YMax : out Real from Standard )
- is static;
- ---Level: Public
- ---Purpose: Returns the coordinates of the projection of the
- -- boundary box of all structures displayed in the view <me>.
-
- MinMaxValues ( me : mutable;
- ASet : MapOfStructure from Graphic3d;
- XMin, YMin : out Real from Standard;
- XMax, YMax : out Real from Standard )
- is static;
- ---Level: Public
- ---Purpose: Returns the coordinates of the projection of the
- -- boundary box of all structures in the set <ASet>.
+ MinMaxValues (me;
+ theXMin, theYMin, theZMin : out Real from Standard;
+ theXMax, theYMax, theZMax : out Real from Standard;
+ theToIgnoreInfiniteFlag : Boolean from Standard = Standard_False)
+ is static;
+ ---Level: Public
+ ---Purpose: Returns the coordinates of the boundary box of all
+ -- structures displayed in the view <me>.
+ -- If <theToIgnoreInfiniteFlag> is TRUE, then the boundary box
+ -- also includes minimum and maximum limits of graphical elements
+ -- forming parts of infinite structures.
+
+ MinMaxValues (me;
+ theSet : MapOfStructure from Graphic3d;
+ theXMin, theYMin, theZMin : out Real from Standard;
+ theXMax, theYMax, theZMax : out Real from Standard;
+ theToIgnoreInfiniteFlag : Boolean from Standard = Standard_False)
+ is static;
+ ---Level: Public
+ ---Purpose: Returns the coordinates of the boundary box of all
+ -- structures in the set <theSet>.
+ -- If <theToIgnoreInfiniteFlag> is TRUE, then the boundary box
+ -- also includes minimum and maximum limits of graphical elements
+ -- forming parts of infinite structures.
+
+ MinMaxValues (me;
+ theXMin, theYMin : out Real from Standard;
+ theXMax, theYMax : out Real from Standard;
+ theToIgnoreInfiniteFlag : Boolean from Standard = Standard_False)
+ is static;
+ ---Level: Public
+ ---Purpose: Returns the coordinates of the projection of the
+ -- boundary box of all structures displayed in the view <me>.
+ -- If <theToIgnoreInfiniteFlag> is TRUE, then the boundary box
+ -- also includes minimum and maximum limits of graphical elements
+ -- forming parts of infinite structures.
+
+ MinMaxValues (me;
+ theSet : MapOfStructure from Graphic3d;
+ theXMin, theYMin : out Real from Standard;
+ theXMax, theYMax : out Real from Standard;
+ theToIgnoreInfiniteFlag : Boolean from Standard = Standard_False)
+ is static;
+ ---Level: Public
+ ---Purpose: Returns the coordinates of the projection of the
+ -- boundary box of all structures in the set <ASet>.
+ -- If <theToIgnoreInfiniteFlag> is TRUE, then the boundary box
+ -- also includes minimum and maximum limits of graphical elements
+ -- forming parts of infinite structures.
NumberOfDisplayedStructures ( me )
returns Integer from Standard
---Purpose: Returns number of displayed structures in
-- the view <me>.
- Projects ( me : mutable;
+ Projects (me;
AX, AY, AZ : Real from Standard;
APX, APY, APZ : out Real from Standard )
is static;
}
-void Visual3d_View::MinMaxValues (Standard_Real& XMin, Standard_Real& YMin, Standard_Real& ZMin, Standard_Real& XMax, Standard_Real& YMax, Standard_Real& ZMax) const {
-
- MinMaxValues
- (MyDisplayedStructure, XMin, YMin, ZMin, XMax, YMax, ZMax);
-
+//=============================================================================
+//function : MinMaxValues
+//purpose :
+//=============================================================================
+void Visual3d_View::MinMaxValues (Standard_Real& theXMin,
+ Standard_Real& theYMin,
+ Standard_Real& theZMin,
+ Standard_Real& theXMax,
+ Standard_Real& theYMax,
+ Standard_Real& theZMax,
+ const Standard_Boolean theToIgnoreInfiniteFlag) const
+{
+ MinMaxValues (MyDisplayedStructure,
+ theXMin, theYMin, theZMin,
+ theXMax, theYMax, theZMax,
+ theToIgnoreInfiniteFlag);
}
-void Visual3d_View::MinMaxValues (const Graphic3d_MapOfStructure& ASet, Standard_Real& XMin, Standard_Real& YMin, Standard_Real& ZMin, Standard_Real& XMax, Standard_Real& YMax, Standard_Real& ZMax) const {
-
- if (ASet.IsEmpty ()) {
- XMin = RealFirst ();
- YMin = RealFirst ();
- ZMin = RealFirst ();
+//=============================================================================
+//function : MinMaxValues
+//purpose :
+//=============================================================================
+void Visual3d_View::MinMaxValues (const Graphic3d_MapOfStructure& theSet,
+ Standard_Real& theXMin,
+ Standard_Real& theYMin,
+ Standard_Real& theZMin,
+ Standard_Real& theXMax,
+ Standard_Real& theYMax,
+ Standard_Real& theZMax,
+ const Standard_Boolean theToIgnoreInfiniteFlag) const
+{
+ if (theSet.IsEmpty ())
+ {
+ theXMin = RealFirst();
+ theYMin = RealFirst();
+ theZMin = RealFirst();
- XMax = RealLast ();
- YMax = RealLast ();
- ZMax = RealLast ();
+ theXMax = RealLast();
+ theYMax = RealLast();
+ theZMax = RealLast();
}
- else {
-
- Standard_Real Xm, Ym, Zm, XM, YM, ZM;
- Graphic3d_MapIteratorOfMapOfStructure Iterator (ASet);
+ else
+ {
+ Standard_Real aXm, aYm, aZm, aXM, aYM, aZM;
+ Graphic3d_MapIteratorOfMapOfStructure anIterator (theSet);
- XMin = RealLast ();
- YMin = RealLast ();
- ZMin = RealLast ();
+ theXMin = RealLast();
+ theYMin = RealLast();
+ theZMin = RealLast();
- XMax = RealFirst ();
- YMax = RealFirst ();
- ZMax = RealFirst ();
+ theXMax = RealFirst ();
+ theYMax = RealFirst ();
+ theZMax = RealFirst ();
- for ( Iterator.Initialize (ASet);
- Iterator.More ();
- Iterator.Next ()) {
+ for (anIterator.Initialize (theSet); anIterator.More(); anIterator.Next())
+ {
+ const Handle(Graphic3d_Structure)& aStructure = anIterator.Key();
- if ((Iterator.Key ())->IsInfinite ()){
+ if (aStructure->IsInfinite() && !theToIgnoreInfiniteFlag)
+ {
//XMin, YMin .... ZMax are initialized by means of infinite line data
- (Iterator.Key ())->MinMaxValues (Xm, Ym, Zm, XM, YM, ZM);
- if ( Xm != RealFirst() && Xm < XMin )
- XMin = Xm ;
- if ( Ym != RealFirst() && Ym < YMin )
- YMin = Ym ;
- if ( Zm != RealFirst() && Zm < ZMin )
- ZMin = Zm ;
- if ( XM != RealLast() && XM > XMax )
- XMax = XM ;
- if ( YM != RealLast() && YM > YMax )
- YMax = YM ;
- if ( ZM != RealLast() && ZM > ZMax )
- ZMax = ZM ;
+ aStructure->MinMaxValues (aXm, aYm, aZm, aXM, aYM, aZM, Standard_False);
+ if (aXm != RealFirst() && aXm < theXMin)
+ {
+ theXMin = aXm;
+ }
+ if (aYm != RealFirst() && aYm < theYMin)
+ {
+ theYMin = aYm;
+ }
+ if (aZm != RealFirst() && aZm < theZMin)
+ {
+ theZMin = aZm;
+ }
+ if (aXM != RealLast() && aXM > theXMax)
+ {
+ theXMax = aXM;
+ }
+ if (aYM != RealLast() && aYM > theYMax)
+ {
+ theYMax = aYM;
+ }
+ if (aZM != RealLast() && aZM > theZMax)
+ {
+ theZMax = aZM;
+ }
}
+
// Only non-empty and non-infinite structures
// are taken into account for calculation of MinMax
- if (! (Iterator.Key ())->IsInfinite () &&
- ! (Iterator.Key ())->IsEmpty ()) {
- (Iterator.Key ())->MinMaxValues(Xm, Ym, Zm, XM, YM, ZM);
- /* ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate ) */
- //"FitAll" operation ignores object with transform persitence parameter
- if( (Iterator.Key ())->TransformPersistenceMode() == Graphic3d_TMF_None )
- {
- if (Xm < XMin) XMin = Xm;
- if (Ym < YMin) YMin = Ym;
- if (Zm < ZMin) ZMin = Zm;
- if (XM > XMax) XMax = XM;
- if (YM > YMax) YMax = YM;
- if (ZM > ZMax) ZMax = ZM;
- }
+ if ((!aStructure->IsInfinite() || theToIgnoreInfiniteFlag) && !aStructure->IsEmpty())
+ {
+ aStructure->MinMaxValues (aXm, aYm, aZm, aXM, aYM, aZM, theToIgnoreInfiniteFlag);
+
+ /* ABD 29/10/04 Transform Persistence of Presentation( pan, zoom, rotate ) */
+ //"FitAll" operation ignores object with transform persitence parameter
+ if(aStructure->TransformPersistenceMode() == Graphic3d_TMF_None )
+ {
+ theXMin = Min (aXm, theXMin);
+ theYMin = Min (aYm, theYMin);
+ theZMin = Min (aZm, theZMin);
+ theXMax = Max (aXM, theXMax);
+ theYMax = Max (aYM, theYMax);
+ theZMax = Max (aZM, theZMax);
}
+ }
}
// The following cases are relevant
// For exemple if all structures are empty or infinite
- if (XMax < XMin) { Xm = XMin; XMin = XMax; XMax = Xm; }
- if (YMax < YMin) { Ym = YMin; YMin = YMax; YMax = Ym; }
- if (ZMax < ZMin) { Zm = ZMin; ZMin = ZMax; ZMax = Zm; }
+ if (theXMax < theXMin) { aXm = theXMin; theXMin = theXMax; theXMax = aXm; }
+ if (theYMax < theYMin) { aYm = theYMin; theYMin = theYMax; theYMax = aYm; }
+ if (theZMax < theZMin) { aZm = theZMin; theZMin = theZMax; theZMax = aZm; }
}
}
-void Visual3d_View::MinMaxValues (Standard_Real& XMin, Standard_Real& YMin, Standard_Real& XMax, Standard_Real& YMax) {
-
- MinMaxValues (MyDisplayedStructure, XMin, YMin, XMax, YMax);
-
+//=============================================================================
+//function : MinMaxValues
+//purpose :
+//=============================================================================
+void Visual3d_View::MinMaxValues (Standard_Real& theXMin,
+ Standard_Real& theYMin,
+ Standard_Real& theXMax,
+ Standard_Real& theYMax,
+ const Standard_Boolean theToIgnoreInfiniteFlag) const
+{
+ MinMaxValues (MyDisplayedStructure,
+ theXMin, theYMin,
+ theXMax, theYMax,
+ theToIgnoreInfiniteFlag);
}
-void Visual3d_View::MinMaxValues (const Graphic3d_MapOfStructure& ASet, Standard_Real& XMin, Standard_Real& YMin, Standard_Real& XMax, Standard_Real& YMax) {
-
-Standard_Real Xm, Ym, Zm, XM, YM, ZM;
-Standard_Real Xp, Yp, Zp;
+//=============================================================================
+//function : MinMaxValues
+//purpose :
+//=============================================================================
+void Visual3d_View::MinMaxValues (const Graphic3d_MapOfStructure& theSet,
+ Standard_Real& theXMin,
+ Standard_Real& theYMin,
+ Standard_Real& theXMax,
+ Standard_Real& theYMax,
+ const Standard_Boolean theToIgnoreInfiniteFlag) const
+{
+ Standard_Real aXm, aYm, aZm, aXM, aYM, aZM;
+ Standard_Real aXp, aYp, aZp;
- MinMaxValues (ASet, Xm, Ym, Zm, XM, YM, ZM);
+ MinMaxValues (theSet, aXm, aYm, aZm, aXM, aYM, aZM, theToIgnoreInfiniteFlag);
- Projects (Xm, Ym, Zm, Xp, Yp, Zp);
- XMin = Xp;
- YMin = Yp;
+ Projects (aXm, aYm, aZm, aXp, aYp, aZp);
+ theXMin = aXp;
+ theYMin = aYp;
- Projects (XM, YM, ZM, Xp, Yp, Zp);
- XMax = Xp;
- YMax = Yp;
+ Projects (aXM, aYM, aZM, aXp, aYp, aZp);
+ theXMax = aXp;
+ theYMax = aYp;
- if (XMax < XMin) { Xp = XMax; XMax = XMin; XMin = Xp; }
- if (YMax < YMin) { Yp = YMax; YMax = YMin; YMin = Yp; }
+ if (theXMax < theXMin) { aXp = theXMax; theXMax = theXMin; theXMin = aXp; }
+ if (theYMax < theYMin) { aYp = theYMax; theYMax = theYMin; theYMin = aYp; }
}
-
Standard_Integer Visual3d_View::NumberOfDisplayedStructures () const {
Standard_Integer Result = MyDisplayedStructure.Extent ();
}
-void Visual3d_View::Projects (const Standard_Real AX,
- const Standard_Real AY,
- const Standard_Real AZ,
- Standard_Real& APX,
- Standard_Real& APY,
- Standard_Real& APZ)
+//=======================================================================
+//function : Projects
+//purpose :
+//=======================================================================
+void Visual3d_View::Projects (const Standard_Real theX,
+ const Standard_Real theY,
+ const Standard_Real theZ,
+ Standard_Real& thePX,
+ Standard_Real& thePY,
+ Standard_Real& thePZ) const
{
- Handle(Graphic3d_Camera) aCamera = MyCView.Context.Camera;
-
- Standard_Real aUmin, aVMin, aUMax, aVMax;
- Standard_Real aNear, aFar;
- aCamera->WindowLimit (aUmin, aVMin, aUMax, aVMax);
+ const Handle(Graphic3d_Camera)& aCamera = MyCView.Context.Camera;
- aNear = aCamera->ZNear();
- aFar = aCamera->ZFar();
+ gp_XYZ aViewSpaceDimensions = aCamera->ViewDimensions();
+ Standard_Real aXSize = aViewSpaceDimensions.X();
+ Standard_Real aYSize = aViewSpaceDimensions.Y();
+ Standard_Real aZSize = aViewSpaceDimensions.Z();
- gp_Pnt aPoint (AX, AY, AZ);
- aPoint = aCamera->Project (aPoint);
+ gp_Pnt aPoint = aCamera->Project (gp_Pnt (theX, theY, theZ));
- APX = (aPoint.X() + 1) * 0.5 * (aUMax - aUmin) + aUmin;
- APY = (aPoint.Y() + 1) * 0.5 * (aVMax - aVMin) + aVMin;
- APZ = aPoint.Z() * (aFar - aNear) + aNear;
+ // NDC [-1, 1] --> PROJ [ -size / 2, +size / 2 ]
+ thePX = aPoint.X() * aXSize * 0.5;
+ thePY = aPoint.Y() * aYSize * 0.5;
+ thePZ = aPoint.Z() * aZSize * 0.5;
}
Standard_Integer Visual3d_View::Identification () const {
set scale 2.7840527693872859
set center_X 3.7559505017270567e-07
-set center_Y -71.035163389154491
set proj_X -0.89892524480819702
set proj_Y -0.37323716282844543
set proj_Z -0.22940616309642792
set up_X -0.41990724205970764
set up_Y 0.58468854427337646
set up_Z 0.69413024187088013
-set at_X -74.980735778808594
-set at_Y 22.785961151123047
-set at_Z -49.215263366699219
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X -44.6832661344329
+set at_Y -21.4529078187916
+set at_Z -95.9601818852522
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 5.8955238204183011
- set center_X -43.928617104386774
- set center_Y 295.47887425975171
- set proj_X 0.62061613798141479
+ set proj_X 0.62061613798141479
set proj_Y -0.6891753077507019
set proj_Z -0.37399500608444214
set up_X -0.12894462049007416
set up_Y -0.56017255783081055
set up_Z 0.81827831268310547
- set at_X 15.248310089111328
- set at_Y 165.90042114257812
- set at_Z 225.19309997558594
-
- vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+ set at_X -56.828238528324
+ set at_Y -19.8089213662065
+ set at_Z 447.801500039167
+
+ vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
}
vfit
set scale 5.8136266443689317
-set center_X -34.878384652992025
-set center_Y 41.518039353084561
set proj_X 0.5689244270324707
set proj_Y -0.54117375612258911
set proj_Z -0.61923813819885254
set up_X 0.48309960961341858
set up_Y -0.38943690061569214
set up_Z 0.78418976068496704
-set at_X -38.500396728515625
-set at_Y 34.677536010742188
-set at_Z -7.9150166511535645
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X -41.655908269392
+set at_Y -7.48592829187374
+set at_Z 26.0339793965026
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
set scale 6.3723487126883533
set center_X -4.2632564145606011e-14
-set center_Y -22.430308400362279
set proj_X 0.57735025882720947
set proj_Y -0.57735025882720947
set proj_Z 0.57735025882720947
set up_X -0.40824827551841736
set up_Y 0.40824827551841736
set up_Z 0.81649655103683472
-set at_X 0
-set at_Y 0
-set at_Z 0
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X 6.14255753835228
+set at_Y -12.171712579698
+set at_Z -18.3142701180503
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 17.084273613995954
-set center_X 210.44987026890158
-set center_Y -5.2570485620847549
set proj_X 0.98952245712280273
set proj_Y -0.12535266578197479
set proj_Z 0.071637466549873352
set up_X -0.016377445310354233
set up_Y 0.39552098512649536
set up_Z 0.91831082105636597
-set at_X 121.38485717773438
-set at_Y -46.730243682861328
-set at_Z 83.376449584960938
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X 151.659324986196
+set at_Y 142.670935515999
+set at_Z -3.38433863631535
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 5.8136266443689317
-set center_X -34.878384652992025
-set center_Y 41.518039353084561
set proj_X 0.5689244270324707
set proj_Y -0.54117375612258911
set proj_Z -0.61923813819885254
set up_X 0.48309960961341858
set up_Y -0.38943690061569214
set up_Z 0.78418976068496704
-set at_X -38.500396728515625
-set at_Y 34.677536010742188
-set at_Z -7.9150166511535645
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X -41.655908269392
+set at_Y -7.48592829187374
+set at_Z 26.0339793965026
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 5.4752524438940986
-set center_X 0.12443750381514462
-set center_Y 30.91257192276079
set proj_X 0.75705158710479736
set proj_Y -0.55456298589706421
set proj_Z 0.34544554352760315
set up_X -0.26271694898605347
set up_Y 0.22571359574794769
set up_Z 0.93810069561004639
-set at_X -8.4405813217163086
-set at_Y 5.1293683052062988
-set at_Z 1.3484655618667603
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X -16.4873994814895
+set at_Y 12.2064246030849
+set at_Z 30.344440786584
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 5.4752524438940986
-set center_X 0.12443750381514462
-set center_Y 30.91257192276079
set proj_X 0.75705158710479736
set proj_Y -0.55456298589706421
set proj_Z 0.34544554352760315
set up_X -0.26271694898605347
set up_Y 0.22571359574794769
set up_Z 0.93810069561004639
-set at_X -8.4405813217163086
-set at_Y 5.1293683052062988
-set at_Z 1.3484655618667603
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X -16.4873994814895
+set at_Y 12.2064246030849
+set at_Z 30.344440786584
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 4.1681300306816444
-set center_X 0.13164276086378379
-set center_Y 6.6154949824974238
set proj_X 0.48621529340744019
set proj_Y -0.47558537125587463
set proj_Z 0.73308473825454712
set up_X -0.51949578523635864
set up_Y 0.51725912094116211
set up_Z 0.68012285232543945
-set at_X 1.1775522232055664
-set at_Y -1.214188814163208
-set at_Z 0.14915035665035248
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X -2.16667064830908
+set at_Y 2.30140290143177
+set at_Z 4.64791596010368
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 4.1681300306816444
-set center_X 0.13164276086378379
-set center_Y 6.6154949824974238
set proj_X 0.48621529340744019
set proj_Y -0.47558537125587463
set proj_Z 0.73308473825454712
set up_X -0.51949578523635864
set up_Y 0.51725912094116211
set up_Z 0.68012285232543945
-set at_X 1.1775522232055664
-set at_Y -1.214188814163208
-set at_Z 0.14915035665035248
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X -2.16667064830908
+set at_Y 2.30140290143177
+set at_Z 4.64791596010368
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 5.7979972910353759
-set center_X 134.00320461480183
-set center_Y 57.36536300752401
set proj_X 0.40099617838859558
set proj_Y -0.39083370566368103
set proj_Z 0.82852339744567871
set up_X -0.58777821063995361
set up_Y 0.58394128084182739
set up_Z 0.55993682146072388
-set at_X 14.468252182006836
-set at_Y -14.975484848022461
-set at_Z -8.813446044921875
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X 74.9076600209737
+set at_Y 113.868559295313
+set at_Z 22.713272605878
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 5.7979972910353759
-set center_X 134.00320461480183
-set center_Y 57.36536300752401
set proj_X 0.40099617838859558
set proj_Y -0.39083370566368103
set proj_Z 0.82852339744567871
set up_X -0.58777821063995361
set up_Y 0.58394128084182739
set up_Z 0.55993682146072388
-set at_X 14.468252182006836
-set at_Y -14.975484848022461
-set at_Z -8.813446044921875
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X 74.9076600209737
+set at_Y 113.868559295313
+set at_Z 22.713272605878
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 17.084273613995954
-set center_X 210.44987026890158
-set center_Y -5.2570485620847549
set proj_X 0.98952245712280273
set proj_Y -0.12535266578197479
set proj_Z 0.071637466549873352
set up_X -0.016377445310354233
set up_Y 0.39552098512649536
set up_Z 0.91831082105636597
-set at_X 121.38485717773438
-set at_Y -46.730243682861328
-set at_Z 83.376449584960938
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X 151.659324986196
+set at_Y 142.670935515999
+set at_Z -3.38433863631535
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 4.1681300306816444
-set center_X 0.13164276086378379
-set center_Y 6.6154949824974238
set proj_X 0.48621529340744019
set proj_Y -0.47558537125587463
set proj_Z 0.73308473825454712
set up_X -0.51949578523635864
set up_Y 0.51725912094116211
set up_Z 0.68012285232543945
-set at_X 1.1775522232055664
-set at_Y -1.214188814163208
-set at_Z 0.14915035665035248
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X -2.16667064830908
+set at_Y 2.30140290143177
+set at_Z 4.64791596010368
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 4.1681300306816444
-set center_X 0.13164276086378379
-set center_Y 6.6154949824974238
set proj_X 0.48621529340744019
set proj_Y -0.47558537125587463
set proj_Z 0.73308473825454712
set up_X -0.51949578523635864
set up_Y 0.51725912094116211
set up_Z 0.68012285232543945
-set at_X 1.1775522232055664
-set at_Y -1.214188814163208
-set at_Z 0.14915035665035248
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X -2.16667064830908
+set at_Y 2.30140290143177
+set at_Z 4.64791596010368
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 5.7979972910353759
-set center_X 134.00320461480183
-set center_Y 57.36536300752401
set proj_X 0.40099617838859558
set proj_Y -0.39083370566368103
set proj_Z 0.82852339744567871
set up_X -0.58777821063995361
set up_Y 0.58394128084182739
set up_Z 0.55993682146072388
-set at_X 14.468252182006836
-set at_Y -14.975484848022461
-set at_Z -8.813446044921875
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X 74.9076600209737
+set at_Y 113.868559295313
+set at_Z 22.713272605878
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
vfit
set scale 5.7979972910353759
-set center_X 134.00320461480183
-set center_Y 57.36536300752401
set proj_X 0.40099617838859558
set proj_Y -0.39083370566368103
set proj_Z 0.82852339744567871
set up_X -0.58777821063995361
set up_Y 0.58394128084182739
set up_Z 0.55993682146072388
-set at_X 14.468252182006836
-set at_Y -14.975484848022461
-set at_Z -8.813446044921875
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X 74.9076600209737
+set at_Y 113.868559295313
+set at_Z 22.713272605878
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
set scale 6.3723487126883533
set center_X -4.2632564145606011e-14
-set center_Y -22.430308400362279
set proj_X 0.57735025882720947
set proj_Y -0.57735025882720947
set proj_Z 0.57735025882720947
set up_X -0.40824827551841736
set up_Y 0.40824827551841736
set up_Z 0.81649655103683472
-set at_X 0
-set at_Y 0
-set at_Z 0
-
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+set at_X 6.14255753835228
+set at_Y -12.171712579698
+set at_Z -18.3142701180503
+
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 0
# Data
set scale 19.469810863701095
-set center_X 436.67687011410339
-set center_Y 148.0981469658436
set proj_X 0.99999862909317017
set proj_Y 0.0012245246907696128
set proj_Z -0.0011169711360707879
set up_X 0.00037844621692784131
set up_Y 0.48741284012794495
set up_Z 0.87317168712615967
-set at_X 291.61880493164062
-set at_Y -453.53787231445312
-set at_Z 82.229469299316406
+set at_X 290.970210143045
+set at_Y -0.0594423932820831
+set at_Z -1.29683163874688
# Start
vfit
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
puts "TEMPORARY!!!!!!!!!!!!!!!!!"
set square 400000
# Data
set scale 57.547428234801195
-set center_X -29.161882474505589
-set center_Y -27.085456554411167
set proj_X -0.25567048788070679
set proj_Y -0.92769843339920044
set proj_Z 0.27204453945159912
set up_X 0.43156850337982178
set up_Y 0.14228194952011108
set up_Z 0.89078855514526367
-set at_X 53.189125061035156
-set at_Y -25.674787521362305
-set at_Z -2.9377093315124512
+set at_X 16.2722331487924
+set at_Y -19.463212261103
+set at_Z -16.4505465814645
set x1 190
vsetdispmode 1
vfit
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
vmoveto ${x1} ${y1}
vmoveto ${x1} ${y1}
pload QAcommands
set scale 73.609
-set center_X 7.93702
-set center_Y 0.264503
set proj_X 0.523995
set proj_Y 0.359655
set proj_Z 0.77206
set up_X -0.739036
set up_Y -0.258607
set up_Z 0.622051
-set at_X 9.06773
-set at_Y -1.93771
-set at_Z 1.45124
+set at_X 5.51184366274157
+set at_Y 5.10968389884332
+set at_Z 0.581665443993578
set x_coord 210
set y_coord 210
vsetdispmode 1
vdisplay result
- vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+ vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
checkcolor $x_coord $y_coord 0.98 0.72 0.13
set scale 71.101493567712652
-set center_X 8.280398902360842
-set center_Y 7.1615404015522026
set proj_X -0.14605970947882216
set proj_Y -0.18639384905183365
set proj_Z 0.97155745805516014
set up_X -0.587582742029223
set up_Y 0.80643668322534767
set up_Z 0.066380699137021923
-set at_X 3.9226062794202492
-set at_Y -3.6740070074451168
-set at_Z 6.1530005464201167
+set at_X 6.30475074082204
+set at_Y 6.748073489527
+set at_Z 8.5106037329062
-vviewparams ${scale} ${center_X} ${center_Y} \
-${proj_X} ${proj_Y} ${proj_Z} \
-${up_X} ${up_Y} ${up_Z} \
-${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 1
vdisplay result
vsetdispmode result 1
-vviewparams 5.1346924 95.358439 -4.910448 0.23495967 -0.302 0.923899 -0.7304302 0.5722587 0.372815 9.550874 -7.55706 -28.83166
+vviewparams -scale 5.1346924 -proj 0.23495967 -0.302 0.923899 -up -0.7304302 0.5722587 0.372815 -at 74.2909604913005 62.3380479127367 -22.4489114507273
isos result 0
triangles result
mkplane r w_1
vdisplay r
vfit
-vselect 120 21
+vselect 120 22
puts "WARNING : The rectangular MUST be highlighted !"
puts ""
set Y_02 300
set scale 60.6309
-set center_X 7.07107
-set center_Y 4.08248
set proj_X 0.479541
set proj_Y 0.586729
set proj_Z 0.652525
set up_X -0.838029
set up_Y 0.0856396
set up_Z 0.538863
-set at_X 8.87741
-set at_Y -2.73728
-set at_Z 4.68363
+set at_X 3.61568258316782
+set at_Y 3.30626448080767
+set at_Z 3.11631746104816
# Display two face
vinit
checkcolor ${X_02} ${Y_02} 0 1 1
# Rotation
-vviewparams ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set only_screen 1
vfit
set scale 2.50501
-set center_X 191.285
-set center_Y 76.6556
set proj_X 0.672033
set proj_Y -0.721033
set proj_Z 0.168771
set up_X -0.131494
set up_Y 0.108095
set up_Z 0.985406
-set at_X -27.258
-set at_Y 30.2321
-set at_Z -9.0201
+set at_X 102.061817325836
+set at_Y 169.436979868935
+set at_Z 70.7572056943368
-vviewparams ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set x_GREEN 300
set y_GREEN 180
vinit
OCC128
-vviewparams 4.9487928 89.23589 4.1505 0.7329295 0.59461397 0.33052679 -0.536849 0.2071041 0.81786 71.971878 -17.250309 33.509651
+vviewparams -scale 4.9487928 -proj 0.7329295 0.59461397 0.33052679 -up -0.536849 0.2071041 0.81786 -at 32.4556665273951 52.9347942181675 -5.1270029887922
checkcolor $x_coord $y_coord 0.43 0.48 0.54
\r
set x_coord 105\r
set y_coord 340\r
-vviewparams 60.6309 7.07107 4.08248 0.592163 -0.60038 -0.537482 0.369921 -0.390032 0.843228 -3.28175 3.38875 3.0464\r
+vviewparams -scale 60.6309 -proj 0.592163 -0.60038 -0.537482 -up 0.369921 -0.390032 0.843228 -at 3.29057034725635 6.73314999296002 6.55157729015654\r
\r
checkcolor $x_coord $y_coord 0.78 0.54 0.09\r
\r
\r
checkcolor $x_coord $y_coord 0 1 1\r
\r
-vviewparams 60.6309 7.07107 4.08248 0.592163 -0.60038 -0.537482 0.369921 -0.390032 0.843228 -3.28175 3.38875 3.0464\r
+vviewparams -scale 60.6309 -proj 0.592163 -0.60038 -0.537482 -up 0.369921 -0.390032 0.843228 -at 3.29057034725635 6.73314999296002 6.55157729015654\r
set x_coord 105\r
set y_coord 340\r
\r
vfit
set scale 6.29714883567995
-set center_X 70.7106779835678
-set center_Y 41.2330922040446
set proj_X 0.344812899827957
set proj_Y -0.830477952957153
set proj_Z 0.43750473856926
set up_X -0.368759274482727
set up_Y 0.308769434690475
set up_Z 0.876742839813232
-set at_X -5.88607025146484
-set at_Y 28.6973209381104
-set at_Z -12.5332689285278
+set at_X 39.9465644699194
+set at_Y 74.2135758209193
+set at_Z 37.7440421525395
-vviewparams ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set x_coord 229
set y_coord 94
vfit
set scale 7674.87317785833
-set center_X -2.16918246707847
-set center_Y 9.87290703657064
set proj_X 0.966540098190308
set proj_Y -0.24304473400116
set proj_Z 0.0820330902934074
set up_X -0.0460147373378277
set up_Y 0.150333747267723
set up_Z 0.987563848495483
-set at_X 1.04834496974945
-set at_Y 0.741619229316711
-set at_Z -0.0881031528115273
+set at_X 0.0466426680664981
+set at_Y 0.147133996816294
+set at_Z 9.95295385008357
set x_coord 388
set y_coord 28
-vviewparams ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
OCC218 trihedron1 b_1 X Y
# Data
set scale 2.9701073117025172
-set center_X -1339.0679502864409
-set center_Y -2077.3454643258542
set proj_X 0.4096425473690033
set proj_Y 0.77340573072433472
set proj_Z 0.48377299308776855
set up_X -0.83569550514221191
set up_Y 0.1055084615945816
set up_Z 0.538962721824646
-set at_X -2857.961669921875
-set at_Y -1655.37939453125
-set at_Z -1782.80908203125
+set at_X -632.109173226325
+set at_Y -2711.56694941045
+set at_Z -1979.06316609577
set x1 300
vfit
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
checkcolor ${x1} ${y1} ${Artifact_R} ${Artifact_G} ${Artifact_B}
# Data
set scale 276.45658048904141
-set center_X 0.41566799352988693
-set center_Y -1.4232027731292387
set proj_X -0.8895147442817688
set proj_Y -0.37965071201324463
set proj_Z 0.25422060489654541
set up_X -0.055201318114995956
set up_Y 0.64161688089370728
set up_Z 0.76503568887710571
-set at_X -0.018965641036629677
-set at_Y 1.2994236946105957
-set at_Z -0.41784921288490295
+set at_X 0.248127012715387
+set at_Y 0.109238834542233
+set at_Z -1.2607059785715
set x1 105
set y1 275
vfit
-vviewparams ${scale} ${center_X} ${center_Y} \
- ${proj_X} ${proj_Y} ${proj_Z} \
- ${up_X} ${up_Y} ${up_Z} \
- ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
checkcolor ${x1} ${y1} ${Hole1_R} ${Hole1_G} ${Hole1_B}
checkcolor ${x2} ${y2} ${Hole2_R} ${Hole2_G} ${Hole2_B}
vdrawtext Right_Align 0.0 0.0 0.0 255 255 255 2 0 0 1 20 0
set scale 3.1783114563761763
-set center_X 0
-set center_Y 0
set proj_X 0.57735025882720947
set proj_Y -0.57735025882720947
set proj_Z 0.57735025882720947
set at_Y 0
set at_Z 0
-vviewparams ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set x_coord 210
set y_coord 204
# selected point
set x_coord 22
-set y_coord 230
+set y_coord 241
vfit
OCC280 0 1
set x_coord 22
-set y_coord 230
+set y_coord 241
puts "Before View->FitAll()"
set TypeOfMarker 0
set scale 50.0521
-set center_X 0
-set center_Y 0
set proj_X 0.57735
set proj_Y -0.57735
set proj_Z 0.57735
set at_Y 0
set at_Z 0
-vviewparams ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
OCC281 ${x} ${y} ${TypeOfMarker}
OCC281 ${x} ${y} ${TypeOfMarker}
vfit
set scale 16.5593321780929
-set center_X -0.0688543427812931
-set center_Y 11.6346916159369
set proj_X 0.207536488771439
set proj_Y -0.233648166060448
set proj_Z 0.949914216995239
set up_X -0.857990384101868
set up_Y 0.422952175140381
set up_Z 0.291485607624054
-set at_X 8.22575855255127
-set at_Y -2.95449280738831
-set at_Z 3.08669567108154
+set at_X -1.78904829452738
+set at_Y 1.90614280957802
+set at_Z 6.47028180612483
-vviewparams ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set info [trinfo result]
regexp { +([-0-9.+eE]+) +triangles} $info full tri
vfit
set x1 135
-set y1 170
+set y1 119
-set x2 314
-set y2 97
+set x2 387
+set y2 33
set x3 172
-set y3 184
+set y3 144
-set x4 32
-set y4 241
+set x4 28
+set y4 190
-set x5 156
-set y5 263
+set x5 160
+set y5 257
-set x6 305
-set y6 186
+set x6 365
+set y6 150
-set x7 186
-set y7 280
+set x7 212
+set y7 272
-set x8 54
-set y8 342
+set x8 60
+set y8 343
-set x9 32
-set y9 286
+set x9 26
+set y9 255
-set x10 295
-set y10 142
+set x10 353
+set y10 99
-set x11 322
-set y11 153
+set x11 389
+set y11 113
-set x12 56
-set y12 305
+set x12 60
+set y12 276
#
# ___________2________________
vfit
set x1 135
-set y1 170
+set y1 119
-set x2 314
-set y2 97
+set x2 387
+set y2 33
set x3 172
-set y3 184
+set y3 144
-set x4 32
-set y4 241
+set x4 28
+set y4 190
-set x5 156
-set y5 263
+set x5 160
+set y5 257
-set x6 305
-set y6 186
+set x6 365
+set y6 150
-set x7 186
-set y7 280
+set x7 212
+set y7 272
-set x8 54
-set y8 342
+set x8 60
+set y8 343
-set x9 32
-set y9 286
+set x9 26
+set y9 255
-set x10 295
-set y10 142
+set x10 353
+set y10 99
-set x11 322
-set y11 153
+set x11 389
+set y11 113
-set x12 56
-set y12 305
+set x12 60
+set y12 276
set Black_R 0
set Black_G 0
vfit
set scale 2.05374
-set center_X 169.854
-set center_Y -49.5549
set proj_X 0.135192
set proj_Y -0.978297
set proj_Z -0.157031
set up_X -0.399854
set up_Y -0.198875
set up_Z 0.894743
-set at_X 241.985
-set at_Y 329.911
-set at_Z 390.356
+set at_X 415.781529476262
+set at_Y 349.647084890243
+set at_Z 417.026634136105
-vviewparams ${scale} ${center_X} ${center_Y} ${proj_X} ${proj_Y} ${proj_Z} ${up_X} ${up_Y} ${up_Z} ${at_X} ${at_Y} ${at_Z}
+vviewparams -scale ${scale} -proj ${proj_X} ${proj_Y} ${proj_Z} -up ${up_X} ${up_Y} ${up_Z} -at ${at_X} ${at_Y} ${at_Z}
set x1 300
set y1 70
vmoveto 102 204
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 102 204
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 102 204
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 102 204
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 102 204
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 102 204
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 102 204
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 102 204
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 100 230
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 100 230
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 100 230
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 100 230
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 185 110
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 140 300
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 100 230
vselmode 4 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vselmode 4 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vselmode 4 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vselmode 4 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vselmode 4 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vselmode 4 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vselmode 4 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vselmode 4 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vselmode 6 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vselmode 6 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vselmode 6 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vselmode 6 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vselmode 6 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vselmode 6 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vselmode 6 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vselmode 6 1
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 260 110
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 110 352
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vselect 120 350 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vmoveto 0 0
vmoveto 204 306
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 120 350
vmoveto 0 0
vmoveto 150 330
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 225 98
vmoveto 0 0
vmoveto 270 326
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 310 87
vselmode 4 1
vmoveto 150 250
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 250
vselmode 4 1
vmoveto 150 250
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 250
vselmode 4 1
vmoveto 150 250
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 250
vselmode 4 1
vmoveto 150 250
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 250
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 350 128
vselmode 4 1
vmoveto 150 250
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 250
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 350 128
vselmode 4 1
vmoveto 150 250
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 250
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 350 128
vselmode 4 1
vmoveto 150 250
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 250
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 350 128
vselmode 4 1
vmoveto 150 250
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 250
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 350 128
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vmoveto 300 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.924699 -0.333605 0.937786 -0.108455 -0.146382 -0.163422 -0.975587 4.079070 -26.221900 108.54900
+vviewparams -scale 6.063090 -proj -0.333605 0.937786 -0.108455 -up -0.146382 -0.163422 -0.975587 -at 63.9550768175051 -11.0454729423178 55.0758857080164
vfit
vmoveto 0 0
vmoveto 100 150
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vmoveto 300 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.924699 -0.333605 0.937786 -0.108455 -0.146382 -0.163422 -0.975587 4.079070 -26.221900 108.54900
+vviewparams -scale 6.063090 -proj -0.333605 0.937786 -0.108455 -up -0.146382 -0.163422 -0.975587 -at 63.9550768175051 -11.0454729423178 55.0758857080164
vfit
vmoveto 0 0
vmoveto 100 150
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vmoveto 300 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.924699 -0.333605 0.937786 -0.108455 -0.146382 -0.163422 -0.975587 4.079070 -26.221900 108.54900
+vviewparams -scale 6.063090 -proj -0.333605 0.937786 -0.108455 -up -0.146382 -0.163422 -0.975587 -at 63.9550768175051 -11.0454729423178 55.0758857080164
vfit
vmoveto 0 0
vmoveto 100 150
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vmoveto 300 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.924699 -0.333605 0.937786 -0.108455 -0.146382 -0.163422 -0.975587 4.079070 -26.221900 108.54900
+vviewparams -scale 6.063090 -proj -0.333605 0.937786 -0.108455 -up -0.146382 -0.163422 -0.975587 -at 63.9550768175051 -11.0454729423178 55.0758857080164
vfit
vmoveto 0 0
vmoveto 100 150
vmoveto 0 0
vselmode 4 1
vmoveto 150 250
-vselect 100 346
+vselect 100 347
vmoveto 0 0
vmoveto 90 89
vmoveto 0 0
vmoveto 250 250
vmoveto 350 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.8249 0.411696 -0.786621 0.462736 -0.373037 0.31875 0.871669 -5.442030 22.021500 -10.360400
+vviewparams -scale 6.063090 -proj 0.411696 -0.786621 0.462736 -up -0.373037 0.31875 0.871669 -at 38.160233803417 72.5566786768416 36.6684620085254
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.82481 0.826197 -0.328587 -0.456835 -0.325366 0.383482 -0.864270 52.8625 108.023000 126.162000
+vviewparams -scale 6.063090 -proj 0.826197 -0.328587 -0.456835 -up -0.325366 0.383482 -0.864270 -at 7.09632267265386 62.6518178738573 76.0263734322149
vfit
vmoveto 0 0
vmoveto 250 300
vmoveto 0 0
vmoveto 300 250
vmoveto 0 0
-vviewparams 6.063090 70.710700 40.924699 -0.333605 0.937786 -0.108455 -0.146382 -0.163422 -0.975587 4.079070 -26.221900 108.54900
+vviewparams -scale 6.063090 -proj -0.333605 0.937786 -0.108455 -up -0.146382 -0.163422 -0.975587 -at 63.9550768175051 -11.0454729423178 55.0758857080164
vfit
vmoveto 0 0
vmoveto 100 150
vfit
vmoveto 0 0
vselmode 1 1
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vfit
vmoveto 0 0
vselmode 1 1
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 73 302
vmoveto 0 0
vfit
vmoveto 0 0
vselmode 1 1
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vselect 73 302
vfit
vmoveto 0 0
vselmode 1 1
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vselect 161 197
vfit
vmoveto 0 0
vselmode 1 1
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vselect 161 197
vdisplay t_box
vfit
vselmode 1 1
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vselect 161 197
vdisplay t_box
vfit
vselmode 1 1
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vselect 0 0
vmoveto 161 197
vdisplay t_box
vfit
vselmode 1 1
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vselect 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 39 208
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 39 208
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 39 208
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 39 208
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 46 204
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 191 319
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 39 208
vmoveto 379 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 379 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 379 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 379 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 379 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 379 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 379 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 379 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 306 204
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 26 305
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 73 302
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 161 197
vmoveto 0 0
vmoveto 270 23
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 140 11
vmoveto 295 54
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 295 54
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 295 54
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 295 54
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 295 54
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 295 54
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 295 54
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 295 54
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 144 350
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 307
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vselect 73 302 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 0 0
vmoveto 27 104
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 92 231
vmoveto 0 0
vmoveto 13 102
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 283 297
vmoveto 0 0
vmoveto 272 22
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 96 211
vmoveto 140 100
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 140 100
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 140 100
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 140 100
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 140 100
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 140 100
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 140 100
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 140 100
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 140 100
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 300 300
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 200 200
vmoveto 300 300
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 300 300
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 300 300
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 300 300
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 300 300
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 300 300
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 300 300
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 300 300
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210
vmoveto 0 0
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 0 0
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 0 0
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 0 0
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 0 0
vmoveto 100 346
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vselect 100 329 1
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 203 129
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210
vmoveto 0 0
vmoveto 300 351
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824844 0.817216 -0.217801 0.535373 -0.420838 0.411627 0.808368 15.640388 -23.138439 18.852196
+vviewparams -scale 6.063093 -proj 0.817216 -0.217801 0.535373 -up -0.420838 0.411627 0.808368 -at 26.4654518144607 56.2503832914726 34.5651685621603
vfit
vmoveto 0 0
vmoveto 100 329
vmoveto 0 0
vmoveto 300 349
vmoveto 0 0
-vviewparams 6.063093 70.710655 41.047052 0.524772 0.731256 0.434393 0.716008 -0.104342 -0.691426 -40.284748 52.438004 4.063552
+vviewparams -scale 6.063093 -proj 0.524772 0.731256 0.434393 -up 0.716008 -0.104342 -0.691426 -at 21.6212460112894 0.5192504580656 16.591446657356
vfit
vmoveto 0 0
vmoveto 214 112
vmoveto 0 0
vmoveto 104 203
vmoveto 0 0
-vviewparams 6.063093 70.710655 40.824853 -0.444872 -0.214876 0.86866 0.109494 -0.886324 -0.185966 129.745911 93.761650 49.194000
+vviewparams -scale 6.063093 -proj -0.444872 -0.214876 0.86866 -up 0.109494 -0.886324 -0.185966 -at 71.8115798514333 53.1349971091326 8.4539251074103
vfit
vmoveto 0 0
vmoveto 404 210