mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-07-07 17:57:18 +08:00
96 lines
3.6 KiB
Plaintext
Executable File
96 lines
3.6 KiB
Plaintext
Executable File
-- Created on: 1991-03-27
|
|
-- Created by: Michel CHAUVAT
|
|
-- Copyright (c) 1991-1999 Matra Datavision
|
|
-- Copyright (c) 1999-2012 OPEN CASCADE SAS
|
|
--
|
|
-- The content of this file is subject to the Open CASCADE Technology Public
|
|
-- License Version 6.5 (the "License"). You may not use the content of this file
|
|
-- except in compliance with the License. Please obtain a copy of the License
|
|
-- at http://www.opencascade.org and read it completely before using this file.
|
|
--
|
|
-- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
|
|
-- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
|
|
--
|
|
-- The Original Code and all software distributed under the License is
|
|
-- distributed on an "AS IS" basis, without warranty of any kind, and the
|
|
-- Initial Developer hereby disclaims all such warranties, including without
|
|
-- limitation, any warranties of merchantability, fitness for a particular
|
|
-- purpose or non-infringement. Please see the License for the specific terms
|
|
-- and conditions governing the rights and limitations under the License.
|
|
|
|
|
|
|
|
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;
|
|
|
|
deferred generic class CurveTool;
|
|
---Purpose: The template class used in CLProps.
|
|
deferred generic class SurfaceTool;
|
|
---Purpose: The template class used in SLProps.
|
|
|
|
generic class CLProps;
|
|
---Purpose: Computation of local properties of a curve.
|
|
generic class SLProps;
|
|
---Purpose: Computation of local properties of a surface.
|
|
|
|
|
|
class CurAndInf;
|
|
---Purpose: Stores the parameters of a curve 2d or 3d corresponding
|
|
-- to the curvature's extremas and the inflection's points.
|
|
|
|
class AnalyticCurInf;
|
|
---Purpose: Computes the locals extremas of curvature of a gp curve.
|
|
|
|
private generic class FuncCurExt;
|
|
private generic class FuncCurNul;
|
|
generic class NumericCurInf, FCurExt, FCurNul;
|
|
---Purpose: Computes the locals extremas of curvature and the
|
|
-- inflections of a bounded curve in 2d.
|
|
|
|
private class SequenceOfCIType instantiates Sequence from TCollection
|
|
(CIType from LProp);
|
|
|
|
end LProp;
|