X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGLViewer%2FGLViewer_CoordSystem.cxx;h=7df6d038fa444521cedbb4471e512a9fe98b8db1;hb=refs%2Fheads%2Fngr%2Fpython3_dev_pv5.4;hp=85502237ce52b5dca0066a7d54f26431272e4fef;hpb=4b914be3971471bcd67878b96fbdca12fbc2ac1d;p=modules%2Fgui.git diff --git a/src/GLViewer/GLViewer_CoordSystem.cxx b/src/GLViewer/GLViewer_CoordSystem.cxx index 85502237c..7df6d038f 100644 --- a/src/GLViewer/GLViewer_CoordSystem.cxx +++ b/src/GLViewer/GLViewer_CoordSystem.cxx @@ -1,14 +1,41 @@ -/*************************************************************************** -** Class: GLViewer_CoordSystem -** Descr: -** Module: GLViewer -** Created: UI team, 03.09.02 -****************************************************************************/ - -//#include +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +// Author : OPEN CASCADE +// File: GLViewer_Context.cxx +// Created: November, 2004 +// #include "GLViewer_CoordSystem.h" #include +/*! + Constructor + \param aType - type of CS + \param X0 - X of origin in reference CS + \param Y0 - Y of origin in reference CS + \param XUnit - X unit in reference CS + \param YUnit - Y unit in reference CS + \param Rotation - rotation relative reference CS +*/ GLViewer_CoordSystem::GLViewer_CoordSystem( CSType aType, double X0, double Y0, double XUnit, double YUnit, double Rotation ) { @@ -18,24 +45,36 @@ GLViewer_CoordSystem::GLViewer_CoordSystem( CSType aType, double X0, double Y0, setRotation( Rotation ); } +/*! + \return origin in reference CS +*/ void GLViewer_CoordSystem::getOrigin( double& x, double& y ) const { x = myX0; y = myY0; } +/*! + Sets origin in reference CS +*/ void GLViewer_CoordSystem::setOrigin( double x, double y ) { myX0 = x; myY0 = y; } +/*! + \return units +*/ void GLViewer_CoordSystem::getUnits( double& x, double& y ) const { x = myXUnit; y = myYUnit; } +/*! + Sets units +*/ void GLViewer_CoordSystem::setUnits( double x, double y ) { if( x>0 ) @@ -49,26 +88,42 @@ void GLViewer_CoordSystem::setUnits( double x, double y ) myYUnit = 1.0; } +/*! + \return rotation +*/ double GLViewer_CoordSystem::getRotation() const { return myRotation; } +/*! + Sets rotation +*/ void GLViewer_CoordSystem::setRotation( double rotation ) { myRotation = rotation; } +/*! + \return type +*/ GLViewer_CoordSystem::CSType GLViewer_CoordSystem::getType() const { return myType; } +/*! + Sets type +*/ void GLViewer_CoordSystem::setType( CSType type ) { myType = type; } +/*! + Recalculate co-ordinates to reference co-ordinates + \param x, y - co-ordinates +*/ void GLViewer_CoordSystem::toReference( double& x, double& y ) { if( myType==Cartesian ) @@ -86,6 +141,10 @@ void GLViewer_CoordSystem::toReference( double& x, double& y ) } } +/*! + Recalculate co-ordinates from reference co-ordinates + \param x, y - co-ordinates +*/ void GLViewer_CoordSystem::fromReference( double& x, double& y ) { x = (x - myX0) / myXUnit; @@ -105,6 +164,7 @@ void GLViewer_CoordSystem::fromReference( double& x, double& y ) double eps = 1E-8, pi = 3.14159265; if( r>eps ) + { if( fabs(x)>eps ) { double arg = y/x; @@ -116,18 +176,27 @@ void GLViewer_CoordSystem::fromReference( double& x, double& y ) phi = pi/2.0; else phi = 3*pi/2.0; + } x = r; y = phi-myRotation; } } +/*! + Recalculate co-ordinates to co-ordinates of other CS + \param aSystem - other CS + \param x, y - co-ordinates +*/ void GLViewer_CoordSystem::transform( GLViewer_CoordSystem& aSystem, double& x, double& y ) { toReference( x, y ); aSystem.fromReference( x, y ); } +/*! + \return stretching of CS along X and Y axis +*/ void GLViewer_CoordSystem::getStretching( GLViewer_CoordSystem& aSystem, double& theX, double& theY ) { theX = myXUnit / aSystem.myXUnit;