+++ /dev/null
-// Created on: 1992-07-09
-// Created by: Christophe MARION
-// Copyright (c) 1992-1999 Matra Datavision
-// Copyright (c) 1999-2014 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 License 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.
-
-#include <Graphic3d_Mat4d.hxx>
-#include <Standard_Assert.hxx>
-#include <gp_Vec.hxx>
-#include <gp_Pnt.hxx>
-#include <gp_Lin.hxx>
-
-//=======================================================================
-//function : Perspective
-//purpose :
-//=======================================================================
-inline Standard_Boolean Select3D_Projector::Perspective() const
-{
- return myPersp;
-}
-
-//=======================================================================
-//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;
-}
-
-//=======================================================================
-//function : InvertedTransformation
-//purpose :
-//=======================================================================
-inline const gp_GTrsf& Select3D_Projector::InvertedTransformation() const
-{
- return myInvTrsf;
-}
-
-//=======================================================================
-//function : FullTransformation
-//purpose :
-//=======================================================================
-inline const gp_Trsf& Select3D_Projector::FullTransformation() const
-{
- return myScaledTrsf;
-}
-
-//=======================================================================
-//function : Focus
-//purpose :
-//=======================================================================
-inline Standard_Real Select3D_Projector::Focus() const
-{
- Standard_ASSERT_RAISE (myPersp, "Not a simplified Perspective.");
- return myFocus;
-}
-
-//=======================================================================
-//function : Transform
-//purpose :
-//=======================================================================
-inline void Select3D_Projector::Transform (gp_Vec& theD) const
-{
- 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& thePnt) const
-{
- Transform (thePnt, myGTrsf);
-}
-
-//=======================================================================
-//function : Transform
-//purpose :
-//=======================================================================
-inline void Select3D_Projector::Transform (gp_Lin& theLin, const gp_GTrsf& theTrsf) const
-{
- 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();
- }
- 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);
-}
-
-//=======================================================================
-//function : Transform
-//purpose :
-//=======================================================================
-inline void Select3D_Projector::Transform (gp_Pnt& thePnt, const gp_GTrsf& theTrsf) const
-{
- gp_XYZ aXYZ = thePnt.XYZ();
- theTrsf.Transforms (aXYZ);
- thePnt = gp_Pnt (aXYZ);
-}