mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-24 13:50:49 +03:00
0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl": - WOK-generated header files from inc and sources from drv are moved to src - CDL files removed - All packages are converted to nocdlpack
This commit is contained in:
@@ -1 +1,11 @@
|
||||
LProp_AnalyticCurInf.cxx
|
||||
LProp_AnalyticCurInf.hxx
|
||||
LProp_BadContinuity.hxx
|
||||
LProp_CIType.hxx
|
||||
LProp_CLProps.gxx
|
||||
LProp_CurAndInf.cxx
|
||||
LProp_CurAndInf.hxx
|
||||
LProp_NotDefined.hxx
|
||||
LProp_SequenceOfCIType.hxx
|
||||
LProp_SLProps.gxx
|
||||
LProp_Status.hxx
|
||||
|
@@ -1,72 +0,0 @@
|
||||
-- Created on: 1991-03-27
|
||||
-- Created by: Michel CHAUVAT
|
||||
-- Copyright (c) 1991-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.
|
||||
|
||||
package LProp
|
||||
|
||||
---Purpose: Handles local properties of curves and surfaces.
|
||||
-- Given a curve and a parameter value the following computations
|
||||
-- are available :
|
||||
-- - point,
|
||||
-- - derivatives,
|
||||
-- - tangent,
|
||||
-- - normal,
|
||||
-- - curvature,
|
||||
-- - centre of curvature,
|
||||
-- - Locals curvature's extremas,
|
||||
-- - Points of inflection,
|
||||
-- Given a surface and 2 parameters the following computations
|
||||
-- are available :
|
||||
-- - for each parameter:
|
||||
-- - derivatives,
|
||||
-- - tangent line,
|
||||
-- - centre of curvature,
|
||||
-- - point,
|
||||
-- - normal line,
|
||||
-- - maximum and minimum curvatures,
|
||||
-- - principal directions of curvature,
|
||||
-- - mean curvature,
|
||||
-- - Gaussian curvature.
|
||||
|
||||
|
||||
---Level : Public.
|
||||
-- All methods of all classes will be public.
|
||||
|
||||
uses Standard, gp, math, TCollection, TColStd, GeomAbs
|
||||
|
||||
is
|
||||
|
||||
enumeration Status is Undecided , Undefined, Defined, Computed;
|
||||
enumeration CIType is Inflection, MinCur , MaxCur;
|
||||
---Purpose:
|
||||
-- Identifies the type of a particular point on a curve:
|
||||
-- - LProp_Inflection: a point of inflection
|
||||
-- - LProp_MinCur: a minimum of curvature
|
||||
-- - LProp_MaxCur: a maximum of curvature.
|
||||
|
||||
exception BadContinuity inherits Failure;
|
||||
exception NotDefined inherits Failure;
|
||||
|
||||
generic class CLProps;
|
||||
|
||||
generic class SLProps;
|
||||
|
||||
class CurAndInf;
|
||||
|
||||
class AnalyticCurInf;
|
||||
|
||||
imported SequenceOfCIType;
|
||||
|
||||
end LProp;
|
@@ -1,35 +0,0 @@
|
||||
-- Created on: 1994-09-02
|
||||
-- Created by: Yves FRICAUD
|
||||
-- Copyright (c) 1994-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.
|
||||
|
||||
class AnalyticCurInf from LProp
|
||||
|
||||
---Purpose: Computes the locals extremas of curvature of a gp curve
|
||||
-- Remark : a gp curve has not inflection.
|
||||
|
||||
uses
|
||||
CurveType from GeomAbs,
|
||||
CurAndInf from LProp
|
||||
is
|
||||
Create;
|
||||
|
||||
Perform (me : in out;
|
||||
T : CurveType from GeomAbs ;
|
||||
UFirst : Real from Standard ;
|
||||
ULast : Real from Standard ;
|
||||
Result : in out CurAndInf from LProp)
|
||||
is static;
|
||||
|
||||
end AnalyticCurInf;
|
@@ -14,14 +14,15 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <LProp_AnalyticCurInf.ixx>
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <LProp_AnalyticCurInf.hxx>
|
||||
#include <LProp_CurAndInf.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : LProp_AnalyticCurInf
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
LProp_AnalyticCurInf::LProp_AnalyticCurInf()
|
||||
{
|
||||
}
|
||||
|
65
src/LProp/LProp_AnalyticCurInf.hxx
Normal file
65
src/LProp/LProp_AnalyticCurInf.hxx
Normal file
@@ -0,0 +1,65 @@
|
||||
// Created on: 1994-09-02
|
||||
// Created by: Yves FRICAUD
|
||||
// Copyright (c) 1994-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.
|
||||
|
||||
#ifndef _LProp_AnalyticCurInf_HeaderFile
|
||||
#define _LProp_AnalyticCurInf_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class LProp_CurAndInf;
|
||||
|
||||
|
||||
//! Computes the locals extremas of curvature of a gp curve
|
||||
//! Remark : a gp curve has not inflection.
|
||||
class LProp_AnalyticCurInf
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT LProp_AnalyticCurInf();
|
||||
|
||||
Standard_EXPORT void Perform (const GeomAbs_CurveType T, const Standard_Real UFirst, const Standard_Real ULast, LProp_CurAndInf& Result);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _LProp_AnalyticCurInf_HeaderFile
|
37
src/LProp/LProp_BadContinuity.hxx
Normal file
37
src/LProp/LProp_BadContinuity.hxx
Normal file
@@ -0,0 +1,37 @@
|
||||
// Created on: 1991-03-27
|
||||
// Created by: Michel CHAUVAT
|
||||
// Copyright (c) 1991-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.
|
||||
|
||||
#ifndef _LProp_BadContinuity_HeaderFile
|
||||
#define _LProp_BadContinuity_HeaderFile
|
||||
|
||||
#include <Standard_Type.hxx>
|
||||
#include <Standard_DefineException.hxx>
|
||||
#include <Standard_SStream.hxx>
|
||||
#include <Standard_Failure.hxx>
|
||||
|
||||
class LProp_BadContinuity;
|
||||
DEFINE_STANDARD_HANDLE(LProp_BadContinuity, Standard_Failure)
|
||||
|
||||
#if !defined No_Exception && !defined No_LProp_BadContinuity
|
||||
#define LProp_BadContinuity_Raise_if(CONDITION, MESSAGE) \
|
||||
if (CONDITION) LProp_BadContinuity::Raise(MESSAGE);
|
||||
#else
|
||||
#define LProp_BadContinuity_Raise_if(CONDITION, MESSAGE)
|
||||
#endif
|
||||
|
||||
DEFINE_STANDARD_EXCEPTION(LProp_BadContinuity, Standard_Failure)
|
||||
|
||||
#endif // _LProp_BadContinuity_HeaderFile
|
32
src/LProp/LProp_CIType.hxx
Normal file
32
src/LProp/LProp_CIType.hxx
Normal file
@@ -0,0 +1,32 @@
|
||||
// Created on: 1991-03-27
|
||||
// Created by: Michel CHAUVAT
|
||||
// Copyright (c) 1991-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.
|
||||
|
||||
#ifndef _LProp_CIType_HeaderFile
|
||||
#define _LProp_CIType_HeaderFile
|
||||
|
||||
|
||||
//! Identifies the type of a particular point on a curve:
|
||||
//! - LProp_Inflection: a point of inflection
|
||||
//! - LProp_MinCur: a minimum of curvature
|
||||
//! - LProp_MaxCur: a maximum of curvature.
|
||||
enum LProp_CIType
|
||||
{
|
||||
LProp_Inflection,
|
||||
LProp_MinCur,
|
||||
LProp_MaxCur
|
||||
};
|
||||
|
||||
#endif // _LProp_CIType_HeaderFile
|
@@ -1,157 +0,0 @@
|
||||
-- Created on: 1991-03-25
|
||||
-- Created by: Michel CHAUVAT
|
||||
-- Copyright (c) 1991-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.
|
||||
|
||||
generic class CLProps from LProp
|
||||
(Curve as any;
|
||||
Vec as any; -- as Vec or Vec2d
|
||||
Pnt as any; -- as Pnt or Pnt2d
|
||||
Dir as any; -- as Dir or Dir2d
|
||||
Tool as any) -- as ToolCurve(Curve, Pnt, Vec)
|
||||
|
||||
---Purpose: Computation of Curve Local Properties:
|
||||
-- - point,
|
||||
-- - derivatives,
|
||||
-- - tangent,
|
||||
-- - normal plane,
|
||||
-- - curvature,
|
||||
-- - normal,
|
||||
-- - centre of curvature,
|
||||
|
||||
uses Status from LProp
|
||||
|
||||
raises BadContinuity from LProp,
|
||||
DomainError from Standard,
|
||||
OutOfRange from Standard,
|
||||
NotDefined from LProp
|
||||
is
|
||||
|
||||
|
||||
Create(C: Curve; N: Integer; Resolution: Real)
|
||||
---Purpose: Initializes the local properties of the curve <C>
|
||||
-- The current point and the derivatives are
|
||||
-- computed at the same time, which allows an
|
||||
-- optimization of the computation time.
|
||||
-- <N> indicates the maximum number of derivations to
|
||||
-- be done (0, 1, 2 or 3). For example, to compute
|
||||
-- only the tangent, N should be equal to 1.
|
||||
-- <Resolution> is the linear tolerance (it is used to test
|
||||
-- if a vector is null).
|
||||
returns CLProps
|
||||
raises OutOfRange;
|
||||
-- if N < 0 or N > 3.
|
||||
|
||||
Create(C: Curve; U : Real; N: Integer; Resolution: Real)
|
||||
--- Purpose : Same as previous constructor but here the parameter is
|
||||
-- set to the value <U>.
|
||||
-- All the computations done will be related to <C> and <U>.
|
||||
returns CLProps
|
||||
raises OutOfRange;
|
||||
-- if N < 0 or N > 3.
|
||||
|
||||
Create(N : Integer;Resolution:Real)
|
||||
--- Purpose : Same as previous constructor but here the parameter is
|
||||
-- set to the value <U> and the curve is set
|
||||
-- with SetCurve.
|
||||
-- the curve can have a empty constructor
|
||||
-- All the computations done will be related to <C> and <U>
|
||||
-- when the functions "set" will be done.
|
||||
|
||||
returns CLProps
|
||||
raises OutOfRange;
|
||||
|
||||
SetParameter(me: in out; U : Real)
|
||||
---Purpose: Initializes the local properties of the curve
|
||||
-- for the parameter value <U>.
|
||||
is static;
|
||||
|
||||
SetCurve(me: in out; C : Curve)
|
||||
---Purpose: Initializes the local properties of the curve
|
||||
-- for the new curve.
|
||||
is static;
|
||||
|
||||
Value(me) returns Pnt is static;
|
||||
---Purpose: Returns the Point.
|
||||
---C++: return const &
|
||||
|
||||
D1(me: in out) returns Vec is static;
|
||||
---Purpose: Returns the first derivative.
|
||||
-- The derivative is computed if it has not been yet.
|
||||
---C++: return const &
|
||||
|
||||
D2(me: in out) returns Vec is static;
|
||||
---Purpose: Returns the second derivative.
|
||||
-- The derivative is computed if it has not been yet.
|
||||
---C++: return const &
|
||||
|
||||
D3(me: in out) returns Vec is static;
|
||||
---Purpose: Returns the third derivative.
|
||||
-- The derivative is computed if it has not been yet.
|
||||
---C++: return const &
|
||||
|
||||
IsTangentDefined(me: in out) returns Boolean is static;
|
||||
---Purpose: Returns True if the tangent is defined.
|
||||
-- For example, the tangent is not defined if the
|
||||
-- three first derivatives are all null.
|
||||
|
||||
Tangent(me: in out; D : out Dir)
|
||||
---Purpose: output the tangent direction <D>
|
||||
raises NotDefined
|
||||
-- if IsTangentDefined(me)=False.
|
||||
is static;
|
||||
|
||||
Curvature(me: in out)
|
||||
---Purpose: Returns the curvature.
|
||||
returns Real
|
||||
raises NotDefined
|
||||
-- if IsTangentDefined(me) == False.
|
||||
is static;
|
||||
|
||||
Normal(me: in out; N : out Dir)
|
||||
---Purpose: Returns the normal direction <N>.
|
||||
raises NotDefined
|
||||
-- if Curvature(me) < Resolution
|
||||
is static;
|
||||
|
||||
CentreOfCurvature(me: in out; P : out Pnt)
|
||||
---Purpose: Returns the centre of curvature <P>.
|
||||
raises NotDefined
|
||||
-- if Curvature(me) < Resolution
|
||||
is static;
|
||||
|
||||
fields
|
||||
|
||||
myCurve : Curve; -- the Curve on which thw calculus are done
|
||||
myU : Real; -- the current value of the parameter
|
||||
myDerOrder : Integer; -- the order of derivation
|
||||
myCN : Real; -- the order of continuity of the Curve
|
||||
myLinTol : Real; -- the tolerance for null Vector
|
||||
|
||||
myPnt : Pnt; -- the current point value
|
||||
myDerivArr : Vec[3]; -- the current first, second and third derivative
|
||||
-- value
|
||||
myTangent : Dir; -- the tangent value
|
||||
myCurvature : Real; -- the curvature value
|
||||
|
||||
myTangentStatus : Status from LProp;
|
||||
-- the status of the tangent direction
|
||||
mySignificantFirstDerivativeOrder : Integer;
|
||||
-- the order of the first non null derivative
|
||||
--
|
||||
end CLProps;
|
||||
|
||||
|
||||
|
||||
|
@@ -1,76 +0,0 @@
|
||||
-- Created on: 1994-09-02
|
||||
-- Created by: Yves FRICAUD
|
||||
-- Copyright (c) 1994-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.
|
||||
|
||||
class CurAndInf from LProp
|
||||
|
||||
---Purpose: Stores the parameters of a curve 2d or 3d corresponding
|
||||
-- to the curvature's extremas and the Inflection's Points.
|
||||
|
||||
uses
|
||||
CIType from LProp,
|
||||
SequenceOfReal from TColStd,
|
||||
SequenceOfCIType from LProp
|
||||
|
||||
raises
|
||||
OutOfRange from Standard
|
||||
|
||||
is
|
||||
Create;
|
||||
|
||||
AddInflection (me : in out; Param : Real)
|
||||
is static;
|
||||
|
||||
AddExtCur (me : in out; Param : Real; IsMin : Boolean)
|
||||
is static;
|
||||
|
||||
Clear (me : in out)
|
||||
is static;
|
||||
|
||||
IsEmpty (me) returns Boolean
|
||||
is static;
|
||||
|
||||
NbPoints (me) returns Integer
|
||||
---Purpose: Returns the number of points.
|
||||
-- The Points are stored to increasing parameter.
|
||||
is static;
|
||||
|
||||
Parameter (me; N : Integer) returns Real
|
||||
---Purpose: Returns the parameter of the Nth point.
|
||||
raises
|
||||
OutOfRange from Standard
|
||||
---Purpose: raises if N not in the range [1,NbPoints()]
|
||||
is static;
|
||||
|
||||
Type (me; N : Integer) returns CIType
|
||||
---Purpose: Returns
|
||||
-- - MinCur if the Nth parameter corresponds to
|
||||
-- a minimum of the radius of curvature.
|
||||
-- - MaxCur if the Nth parameter corresponds to
|
||||
-- a maximum of the radius of curvature.
|
||||
-- - Inflection if the parameter corresponds to
|
||||
-- a point of inflection.
|
||||
raises
|
||||
OutOfRange from Standard
|
||||
---Purpose: raises if N not in the range [1,NbPoints()]
|
||||
is static;
|
||||
|
||||
fields
|
||||
theParams : SequenceOfReal from TColStd;
|
||||
theTypes : SequenceOfCIType from LProp;
|
||||
|
||||
end CurAndInf;
|
||||
|
||||
|
@@ -14,15 +14,15 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <LProp_CurAndInf.ixx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <LProp_CurAndInf.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : LProp_CurAndInf
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
|
||||
LProp_CurAndInf::LProp_CurAndInf()
|
||||
{
|
||||
}
|
||||
|
95
src/LProp/LProp_CurAndInf.hxx
Normal file
95
src/LProp/LProp_CurAndInf.hxx
Normal file
@@ -0,0 +1,95 @@
|
||||
// Created on: 1994-09-02
|
||||
// Created by: Yves FRICAUD
|
||||
// Copyright (c) 1994-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.
|
||||
|
||||
#ifndef _LProp_CurAndInf_HeaderFile
|
||||
#define _LProp_CurAndInf_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
#include <LProp_SequenceOfCIType.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <LProp_CIType.hxx>
|
||||
class Standard_OutOfRange;
|
||||
|
||||
|
||||
//! Stores the parameters of a curve 2d or 3d corresponding
|
||||
//! to the curvature's extremas and the Inflection's Points.
|
||||
class LProp_CurAndInf
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT LProp_CurAndInf();
|
||||
|
||||
Standard_EXPORT void AddInflection (const Standard_Real Param);
|
||||
|
||||
Standard_EXPORT void AddExtCur (const Standard_Real Param, const Standard_Boolean IsMin);
|
||||
|
||||
Standard_EXPORT void Clear();
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsEmpty() const;
|
||||
|
||||
//! Returns the number of points.
|
||||
//! The Points are stored to increasing parameter.
|
||||
Standard_EXPORT Standard_Integer NbPoints() const;
|
||||
|
||||
//! Returns the parameter of the Nth point.
|
||||
//! raises if N not in the range [1,NbPoints()]
|
||||
Standard_EXPORT Standard_Real Parameter (const Standard_Integer N) const;
|
||||
|
||||
//! Returns
|
||||
//! - MinCur if the Nth parameter corresponds to
|
||||
//! a minimum of the radius of curvature.
|
||||
//! - MaxCur if the Nth parameter corresponds to
|
||||
//! a maximum of the radius of curvature.
|
||||
//! - Inflection if the parameter corresponds to
|
||||
//! a point of inflection.
|
||||
//! raises if N not in the range [1,NbPoints()]
|
||||
Standard_EXPORT LProp_CIType Type (const Standard_Integer N) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
TColStd_SequenceOfReal theParams;
|
||||
LProp_SequenceOfCIType theTypes;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _LProp_CurAndInf_HeaderFile
|
37
src/LProp/LProp_NotDefined.hxx
Normal file
37
src/LProp/LProp_NotDefined.hxx
Normal file
@@ -0,0 +1,37 @@
|
||||
// Created on: 1991-03-27
|
||||
// Created by: Michel CHAUVAT
|
||||
// Copyright (c) 1991-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.
|
||||
|
||||
#ifndef _LProp_NotDefined_HeaderFile
|
||||
#define _LProp_NotDefined_HeaderFile
|
||||
|
||||
#include <Standard_Type.hxx>
|
||||
#include <Standard_DefineException.hxx>
|
||||
#include <Standard_SStream.hxx>
|
||||
#include <Standard_Failure.hxx>
|
||||
|
||||
class LProp_NotDefined;
|
||||
DEFINE_STANDARD_HANDLE(LProp_NotDefined, Standard_Failure)
|
||||
|
||||
#if !defined No_Exception && !defined No_LProp_NotDefined
|
||||
#define LProp_NotDefined_Raise_if(CONDITION, MESSAGE) \
|
||||
if (CONDITION) LProp_NotDefined::Raise(MESSAGE);
|
||||
#else
|
||||
#define LProp_NotDefined_Raise_if(CONDITION, MESSAGE)
|
||||
#endif
|
||||
|
||||
DEFINE_STANDARD_EXCEPTION(LProp_NotDefined, Standard_Failure)
|
||||
|
||||
#endif // _LProp_NotDefined_HeaderFile
|
@@ -1,224 +0,0 @@
|
||||
-- Created on: 1991-03-26
|
||||
-- Created by: Michel CHAUVAT
|
||||
-- Copyright (c) 1991-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.
|
||||
|
||||
generic class SLProps from LProp (Surface as any;
|
||||
Tool as any) -- as ToolSurface(Surface)
|
||||
---Purpose: Computation of Surface Local Properties:
|
||||
-- - point,
|
||||
-- - derivatives,
|
||||
-- - tangents,
|
||||
-- - normal,
|
||||
-- - tangent plane,
|
||||
-- - principal curvatures and their associated direction,
|
||||
-- - mean curvature,
|
||||
-- - Gaussian curvature.
|
||||
|
||||
uses Dir from gp,
|
||||
Pnt from gp,
|
||||
Vec from gp,
|
||||
Status from LProp
|
||||
|
||||
raises BadContinuity, DomainError, OutOfRange, NotDefined
|
||||
|
||||
is
|
||||
Create(S: Surface; U, V: Real; N: Integer; Resolution: Real)
|
||||
---Purpose: Initializes the local properties of the surface <S>
|
||||
-- for the parameter values (<U>, <V>).
|
||||
-- The current point and the derivatives are
|
||||
-- computed at the same time, which allows an
|
||||
-- optimization of the computation time.
|
||||
-- <N> indicates the maximum number of derivations to
|
||||
-- be done (0, 1, or 2). For example, to compute
|
||||
-- only the tangent, N should be equal to 1.
|
||||
-- <Resolution> is the linear tolerance (it is used to test
|
||||
-- if a vector is null).
|
||||
returns SLProps
|
||||
raises OutOfRange;
|
||||
-- if N < 0 or N > 2.
|
||||
|
||||
Create(S: Surface; N: Integer; Resolution: Real)
|
||||
---Purpose: idem as previous constructor but without setting the value
|
||||
-- of parameters <U> and <V>.
|
||||
returns SLProps
|
||||
raises OutOfRange;
|
||||
-- if N < 0 or N > 2.
|
||||
|
||||
Create( N: Integer; Resolution: Real)
|
||||
---Purpose: idem as previous constructor but without setting the value
|
||||
-- of parameters <U> and <V> and the surface.
|
||||
-- the surface can have an empty constructor.
|
||||
|
||||
returns SLProps
|
||||
raises OutOfRange;
|
||||
-- if N < 0 or N > 2.
|
||||
|
||||
SetSurface(me : in out;S : Surface)
|
||||
---Purpose: Initializes the local properties of the surface S
|
||||
-- for the new surface.
|
||||
is static;
|
||||
|
||||
SetParameters(me: in out; U, V : Real)
|
||||
---Purpose: Initializes the local properties of the surface S
|
||||
-- for the new parameter values (<U>, <V>).
|
||||
is static;
|
||||
|
||||
Value(me) returns Pnt
|
||||
---Purpose: Returns the point.
|
||||
---C++: return const &
|
||||
is static;
|
||||
|
||||
D1U(me: in out) returns Vec is static;
|
||||
---Purpose: Returns the first U derivative.
|
||||
-- The derivative is computed if it has not been yet.
|
||||
---C++: return const &
|
||||
|
||||
D1V(me: in out) returns Vec is static;
|
||||
---Purpose: Returns the first V derivative.
|
||||
-- The derivative is computed if it has not been yet.
|
||||
---C++: return const &
|
||||
|
||||
D2U(me: in out) returns Vec is static;
|
||||
---Purpose: Returns the second U derivatives
|
||||
-- The derivative is computed if it has not been yet.
|
||||
---C++: return const &
|
||||
|
||||
D2V(me: in out) returns Vec is static;
|
||||
---Purpose: Returns the second V derivative.
|
||||
-- The derivative is computed if it has not been yet.
|
||||
---C++: return const &
|
||||
|
||||
DUV(me: in out) returns Vec is static;
|
||||
---Purpose: Returns the second UV cross-derivative.
|
||||
-- The derivative is computed if it has not been yet.
|
||||
---C++: return const &
|
||||
|
||||
IsTangentUDefined(me: in out) returns Boolean is static;
|
||||
---Purpose: returns True if the U tangent is defined.
|
||||
-- For example, the tangent is not defined if the
|
||||
-- two first U derivatives are null.
|
||||
|
||||
TangentU(me: in out; D : out Dir)
|
||||
---Purpose: Returns the tangent direction <D> on the iso-V.
|
||||
raises NotDefined
|
||||
-- if IsTangentUDefined() == False.
|
||||
is static;
|
||||
|
||||
IsTangentVDefined(me: in out) returns Boolean is static;
|
||||
---Purpose: returns if the V tangent is defined.
|
||||
-- For example, the tangent is not defined if the
|
||||
-- two first V derivatives are null.
|
||||
|
||||
TangentV(me: in out; D : out Dir)
|
||||
---Purpose: Returns the tangent direction <D> on the iso-V.
|
||||
raises NotDefined
|
||||
-- if IsTangentVDefined() == False.
|
||||
is static;
|
||||
|
||||
IsNormalDefined(me: in out) returns Boolean is static;
|
||||
---Purpose: Tells if the normal is defined.
|
||||
|
||||
Normal(me: in out) returns Dir
|
||||
---Purpose: Returns the normal direction.
|
||||
---C++: return const &
|
||||
raises NotDefined
|
||||
-- if IsNormalDefined() == False
|
||||
is static;
|
||||
|
||||
IsCurvatureDefined(me: in out)
|
||||
---Purpose: returns True if the curvature is defined.
|
||||
returns Boolean
|
||||
raises BadContinuity
|
||||
-- if the surface is not C2.
|
||||
is static;
|
||||
|
||||
IsUmbilic(me: in out)
|
||||
---Purpose: returns True if the point is umbilic (i.e. if the
|
||||
-- curvature is constant).
|
||||
returns Boolean
|
||||
raises NotDefined
|
||||
-- if IsCurvatureDefined() == False
|
||||
is static;
|
||||
|
||||
MaxCurvature(me : in out)
|
||||
---Purpose: Returns the maximum curvature
|
||||
returns Real
|
||||
raises NotDefined
|
||||
-- if IsCurvatureDefined() == False.
|
||||
is static;
|
||||
|
||||
MinCurvature(me : in out)
|
||||
---Purpose: Returns the minimum curvature
|
||||
returns Real
|
||||
raises NotDefined
|
||||
-- if IsCurvatureDefined() == False.
|
||||
is static;
|
||||
|
||||
CurvatureDirections(me: in out; MaxD, MinD : out Dir)
|
||||
---Purpose: Returns the direction of the maximum and minimum curvature
|
||||
-- <MaxD> and <MinD>
|
||||
raises NotDefined
|
||||
-- if IsCurvatureDefined() == False
|
||||
-- or IsUmbilic() == True.
|
||||
is static;
|
||||
|
||||
MeanCurvature(me: in out)
|
||||
---Purpose: Returns the mean curvature.
|
||||
returns Real
|
||||
raises NotDefined
|
||||
-- if IsCurvatureDefined() == False.
|
||||
is static;
|
||||
|
||||
GaussianCurvature(me: in out)
|
||||
---Purpose: Returns the Gaussian curvature
|
||||
returns Real
|
||||
raises NotDefined
|
||||
-- if IsCurvatureDefined() == False.
|
||||
is static;
|
||||
|
||||
fields
|
||||
|
||||
mySurf : Surface;
|
||||
myU : Real;
|
||||
myV : Real;
|
||||
myDerOrder : Integer;
|
||||
myCN : Integer;
|
||||
myLinTol : Real;
|
||||
|
||||
myPnt : Pnt from gp;
|
||||
myD1u : Vec from gp;
|
||||
myD1v : Vec from gp;
|
||||
myD2u : Vec from gp;
|
||||
myD2v : Vec from gp;
|
||||
myDuv : Vec from gp;
|
||||
|
||||
myNormal : Dir from gp;
|
||||
myMinCurv : Real;
|
||||
myMaxCurv : Real;
|
||||
myDirMinCurv : Dir from gp;
|
||||
myDirMaxCurv : Dir from gp;
|
||||
myMeanCurv : Real;
|
||||
myGausCurv : Real;
|
||||
|
||||
mySignificantFirstDerivativeOrderU : Integer;
|
||||
mySignificantFirstDerivativeOrderV : Integer;
|
||||
|
||||
myUTangentStatus : Status from LProp;
|
||||
myVTangentStatus : Status from LProp;
|
||||
myNormalStatus : Status from LProp;
|
||||
myCurvatureStatus : Status from LProp;
|
||||
|
||||
end SLProps;
|
||||
|
29
src/LProp/LProp_Status.hxx
Normal file
29
src/LProp/LProp_Status.hxx
Normal file
@@ -0,0 +1,29 @@
|
||||
// Created on: 1991-03-27
|
||||
// Created by: Michel CHAUVAT
|
||||
// Copyright (c) 1991-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.
|
||||
|
||||
#ifndef _LProp_Status_HeaderFile
|
||||
#define _LProp_Status_HeaderFile
|
||||
|
||||
|
||||
enum LProp_Status
|
||||
{
|
||||
LProp_Undecided,
|
||||
LProp_Undefined,
|
||||
LProp_Defined,
|
||||
LProp_Computed
|
||||
};
|
||||
|
||||
#endif // _LProp_Status_HeaderFile
|
Reference in New Issue
Block a user