0024816: Tool for upgrading OCCT and dependent code
[occt.git] / src / GC / GC_MakeMirror.cxx
CommitLineData
b311480e 1// Created on: 1992-10-02
2// Created by: Remi GILET
3// Copyright (c) 1992-1999 Matra Datavision
973c2be1 4// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5//
973c2be1 6// This file is part of Open CASCADE Technology software library.
b311480e 7//
d5f74e42 8// This library is free software; you can redistribute it and/or modify it under
9// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10// by the Free Software Foundation, with special exception defined in the file
11// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12// distribution for complete text of the license and disclaimer of any warranty.
b311480e 13//
973c2be1 14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
7fd59977 16
42cf5bc1 17
7fd59977 18#include <GC_MakeMirror.hxx>
42cf5bc1 19#include <Geom_Transformation.hxx>
20#include <gp_Ax1.hxx>
21#include <gp_Ax2.hxx>
7fd59977 22#include <gp_Ax3.hxx>
42cf5bc1 23#include <gp_Dir.hxx>
24#include <gp_Lin.hxx>
25#include <gp_Pln.hxx>
26#include <gp_Pnt.hxx>
7fd59977 27#include <StdFail_NotDone.hxx>
28
29//=========================================================================
30// Creation d une symetrie de Geom par rapport a un point. +
31//=========================================================================
7fd59977 32GC_MakeMirror::GC_MakeMirror(const gp_Pnt& Point ) {
33 TheMirror = new Geom_Transformation();
34 TheMirror->SetMirror(Point);
35}
36
37//=========================================================================
38// Creation d une symetrie de Geom par rapport a une droite. +
39//=========================================================================
40
41GC_MakeMirror::GC_MakeMirror(const gp_Ax1& Axis ) {
42 TheMirror = new Geom_Transformation();
43 TheMirror->SetMirror(Axis);
44}
45
46//=========================================================================
47// Creation d une symetrie de Geom par rapport a une droite. +
48//=========================================================================
49
50GC_MakeMirror::GC_MakeMirror(const gp_Lin& Line ) {
51 TheMirror = new Geom_Transformation();
52 TheMirror->SetMirror(gp_Ax1(Line.Location(),Line.Direction()));
53}
54
55//=========================================================================
56// Creation d une symetrie 3d de Geom par rapport a une droite definie +
57// par un point et une direction. +
58//=========================================================================
59
60GC_MakeMirror::GC_MakeMirror(const gp_Pnt& Point ,
61 const gp_Dir& Direc ) {
62 TheMirror = new Geom_Transformation();
63 TheMirror->SetMirror(gp_Ax1(Point,Direc));
64}
65
66//=========================================================================
67// Creation d une symetrie 3d de Geom par rapport a un plan defini par +
68// un Ax2 (Normale au plan et axe x du plan). +
69//=========================================================================
70
71GC_MakeMirror::GC_MakeMirror(const gp_Ax2& Plane ) {
72 TheMirror = new Geom_Transformation();
73 TheMirror->SetMirror(Plane);
74}
75
76//=========================================================================
77// Creation d une symetrie 3d de gp par rapport a un plan Plane. +
78//=========================================================================
79
80GC_MakeMirror::GC_MakeMirror(const gp_Pln& Plane ) {
81 TheMirror = new Geom_Transformation();
82 TheMirror->SetMirror(Plane.Position().Ax2());
83}
84
85const Handle(Geom_Transformation)& GC_MakeMirror::Value() const
86{
87 return TheMirror;
88}