0024677: Control of license statements and non-ascii characters in integrated code
[occt.git] / src / ShapeExtend / ShapeExtend_ComplexCurve.hxx
CommitLineData
42cf5bc1 1// Created on: 1999-06-22
2// Created by: Roman LYGIN
3// Copyright (c) 1999 Matra Datavision
4// Copyright (c) 1999-2014 OPEN CASCADE SAS
5//
6// This file is part of Open CASCADE Technology software library.
7//
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
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.
13//
14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
16
17#ifndef _ShapeExtend_ComplexCurve_HeaderFile
18#define _ShapeExtend_ComplexCurve_HeaderFile
19
20#include <Standard.hxx>
21#include <Standard_Type.hxx>
22
23#include <Standard_Boolean.hxx>
24#include <Geom_Curve.hxx>
25#include <Standard_Integer.hxx>
26#include <Standard_Real.hxx>
27#include <GeomAbs_Shape.hxx>
28class Geom_Curve;
29class gp_Trsf;
30class gp_Pnt;
31class gp_Vec;
32
33
34class ShapeExtend_ComplexCurve;
35DEFINE_STANDARD_HANDLE(ShapeExtend_ComplexCurve, Geom_Curve)
36
37//! Defines a curve which consists of several segments.
38//! Implements basic interface to it.
39class ShapeExtend_ComplexCurve : public Geom_Curve
40{
41
42public:
43
44
45 //! Returns number of curves
46 Standard_EXPORT virtual Standard_Integer NbCurves() const = 0;
47
48 //! Returns curve given by its index
49 Standard_EXPORT virtual const Handle(Geom_Curve)& Curve (const Standard_Integer index) const = 0;
50
51 //! Returns number of the curve for the given parameter U
52 //! and local paramete r UOut for the found curve
53 Standard_EXPORT virtual Standard_Integer LocateParameter (const Standard_Real U, Standard_Real& UOut) const = 0;
54
55 //! Returns global parameter for the whole curve according
56 //! to the segment and local parameter on it
57 Standard_EXPORT virtual Standard_Real LocalToGlobal (const Standard_Integer index, const Standard_Real Ulocal) const = 0;
58
59 //! Applies transformation to each curve
60 Standard_EXPORT virtual void Transform (const gp_Trsf& T) Standard_OVERRIDE;
61
62 //! Returns 1 - U
63 virtual Standard_Real ReversedParameter (const Standard_Real U) const Standard_OVERRIDE;
64
65 //! Returns 0
66 virtual Standard_Real FirstParameter() const Standard_OVERRIDE;
67
68 //! Returns 1
69 virtual Standard_Real LastParameter() const Standard_OVERRIDE;
70
71 //! Returns True if the curve is closed
72 virtual Standard_Boolean IsClosed() const Standard_OVERRIDE;
73
74 //! Returns False
75 virtual Standard_Boolean IsPeriodic() const Standard_OVERRIDE;
76
77 //! Returns GeomAbs_C0
78 virtual GeomAbs_Shape Continuity() const Standard_OVERRIDE;
79
80 //! Returns False if N > 0
81 virtual Standard_Boolean IsCN (const Standard_Integer N) const Standard_OVERRIDE;
82
83 //! Returns point at parameter U.
84 //! Finds appropriate curve and local parameter on it.
85 Standard_EXPORT virtual void D0 (const Standard_Real U, gp_Pnt& P) const Standard_OVERRIDE;
86
87 Standard_EXPORT virtual void D1 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1) const Standard_OVERRIDE;
88
89 Standard_EXPORT virtual void D2 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) const Standard_OVERRIDE;
90
91 Standard_EXPORT virtual void D3 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3) const Standard_OVERRIDE;
92
93 Standard_EXPORT virtual gp_Vec DN (const Standard_Real U, const Standard_Integer N) const Standard_OVERRIDE;
94
95 //! Returns scale factor for recomputing of deviatives.
96 Standard_EXPORT virtual Standard_Real GetScaleFactor (const Standard_Integer ind) const = 0;
97
98 //! Checks geometrical connectivity of the curves, including
99 //! closure (sets fields myClosed)
100 Standard_EXPORT Standard_Boolean CheckConnectivity (const Standard_Real Preci);
101
102
103
104
92efcf78 105 DEFINE_STANDARD_RTTIEXT(ShapeExtend_ComplexCurve,Geom_Curve)
42cf5bc1 106
107protected:
108
109
110 Standard_EXPORT ShapeExtend_ComplexCurve();
111
112 //! Transform the derivative according to its order
113 Standard_EXPORT void TransformDN (gp_Vec& V, const Standard_Integer ind, const Standard_Integer N) const;
114
115 Standard_Boolean myClosed;
116
117
118private:
119
120
121
122
123};
124
125
126#include <ShapeExtend_ComplexCurve.lxx>
127
128
129
130
131
132#endif // _ShapeExtend_ComplexCurve_HeaderFile