0031687: Draw Harness, ViewerTest - extend command vrenderparams with option updating...
[occt.git] / src / gce / gce_MakeLin.cxx
CommitLineData
b311480e 1// Created on: 1992-09-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
18#include <gce_MakeLin.hxx>
7fd59977 19#include <gp.hxx>
42cf5bc1 20#include <gp_Ax1.hxx>
21#include <gp_Dir.hxx>
22#include <gp_Lin.hxx>
23#include <gp_Pnt.hxx>
24#include <StdFail_NotDone.hxx>
7fd59977 25
26//=========================================================================
27// Creation d une ligne 3d de gp a partir d un Ax1 de gp. +
28//=========================================================================
7fd59977 29gce_MakeLin::gce_MakeLin(const gp_Ax1& A1)
30{
31 TheLin = gp_Lin(A1);
32 TheError = gce_Done;
33}
34
35//=========================================================================
36// Creation d une ligne 3d de gp a partir de son origine P (Pnt de gp) +
37// et d une direction V (Dir de gp). +
38//=========================================================================
39
40gce_MakeLin::gce_MakeLin(const gp_Pnt& P,
41 const gp_Dir& V)
42{
43 TheLin = gp_Lin(P,V);
44 TheError = gce_Done;
45}
46
47//=========================================================================
48// Creation d une ligne 3d de gp passant par les deux points <P1> et +
49// <P2>. +
50//=========================================================================
51
52gce_MakeLin::gce_MakeLin(const gp_Pnt& P1 ,
53 const gp_Pnt& P2 )
54{
55 if (P1.Distance(P2) >= gp::Resolution()) {
56 TheLin = gp_Lin(P1,gp_Dir(P2.XYZ()-P1.XYZ()));
57 TheError = gce_Done;
58 }
59 else { TheError = gce_ConfusedPoints; }
60}
61
62//=========================================================================
63// Creation d une ligne 3d de gp parallele a une autre <Lin> et passant +
64// par le point <P>. +
65//=========================================================================
66
67gce_MakeLin::gce_MakeLin(const gp_Lin& Lin ,
68 const gp_Pnt& P )
69{
70 TheLin = gp_Lin(P,Lin.Direction());
71 TheError = gce_Done;
72}
73
74const gp_Lin& gce_MakeLin::Value() const
75{
2d2b3d53 76 StdFail_NotDone_Raise_if (TheError != gce_Done,
77 "gce_MakeLin::Value() - no result");
7fd59977 78 return TheLin;
79}
80
81const gp_Lin& gce_MakeLin::Operator() const
82{
83 return Value();
84}
85
86gce_MakeLin::operator gp_Lin() const
87{
88 return Value();
89}
90