mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-08 18:40:55 +03:00
Range of changing of some analytic curves is computed by other methods. It allows computing face's boundaries with more precise. Tolerance was increased to provide successful work of some algorithms. Functions BRepOffsetAPI_MiddlePath::Build() and ApproxWithPCurves(...) (file IntTools_FaceFace.cxx) were changed according to new result of algorithm's work. It is possibly for "outboundaried faces" (see bug#23675) to compute incorrect UV-Bounds, when first parameter is more than last. To avoid it, extended control of computed bounds was added. Function for fail sameparameter fixing was added to HLRAppli_ReflectLines to avoid creation bad shapes after algorithm's work. In file ShapeFix_ComposeShell.cxx only text formatting was changed. Some test cases are changed according to their new behavior. Added test case bugs/moddata_3/bug23511
123 lines
5.6 KiB
Plaintext
123 lines
5.6 KiB
Plaintext
-- Created on: 1993-07-09
|
|
-- Created by: Isabelle GRIGNON
|
|
-- Copyright (c) 1993-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 Add2dCurve from BndLib
|
|
---Purpose: Computes the bounding box for a curve in 2d .
|
|
-- Functions to add a 2D curve to a bounding box.
|
|
-- The 2D curve is defined from a Geom2d curve.
|
|
|
|
uses Box2d from Bnd,
|
|
Curve2d from Adaptor2d,
|
|
Curve from Geom2d
|
|
|
|
|
|
is
|
|
|
|
Add(myclass; C : Curve2d from Adaptor2d;
|
|
Tol : Real from Standard;
|
|
B : in out Box2d from Bnd);
|
|
---Purpose: Adds to the bounding box B the curve C
|
|
-- B is then enlarged by the tolerance value Tol.
|
|
-- Note: depending on the type of curve, one of the following
|
|
-- representations of the curve C is used to include it in the bounding box B:
|
|
-- - an exact representation if C is built from a line, a circle or a conic curve,
|
|
-- - the poles of the curve if C is built from a Bezier curve or a BSpline curve,
|
|
-- - if not, the points of an approximation of the curve C.
|
|
-- Warning
|
|
-- C is an adapted curve, that is, an object which is an interface between:
|
|
-- - the services provided by a 2D curve from the package Geom2d
|
|
-- - and those required of the curve by the computation algorithm.
|
|
-- The adapted curve is created in the following way:
|
|
-- Handle(Geom2d_Curve) mycurve = ...
|
|
-- ;
|
|
-- Geom2dAdaptor_Curve C(mycurve);
|
|
-- The bounding box B is then enlarged by adding it:
|
|
-- Bnd_Box2d B;
|
|
-- // ...
|
|
-- Standard_Real Tol = ... ;
|
|
-- Add2dCurve::Add ( C, Tol, B );
|
|
-- Exceptions
|
|
-- Standard_Failure if the curve is built from:
|
|
-- - a Geom_Line, or
|
|
-- - a Geom_Parabola, or
|
|
-- - a Geom_Hyperbola,
|
|
-- and P1 and P2 are either two negative infinite real
|
|
-- numbers, or two positive infinite real numbers.
|
|
|
|
Add(myclass; C : Curve2d from Adaptor2d;
|
|
U1,U2 : Real from Standard;
|
|
Tol : Real from Standard;
|
|
B : in out Box2d from Bnd);
|
|
---Purpose: Adds to the bounding box Bthe arc of the curve C limited by the two parameter
|
|
-- values P1 and P2.
|
|
-- B is then enlarged by the tolerance value Tol.
|
|
-- Note: depending on the type of curve, one of the following
|
|
-- representations of the curve C is used to include it in the bounding box B:
|
|
-- - an exact representation if C is built from a line, a circle or a conic curve,
|
|
-- - the poles of the curve if C is built from a Bezier curve or a BSpline curve,
|
|
-- - if not, the points of an approximation of the curve C.
|
|
-- Warning
|
|
-- C is an adapted curve, that is, an object which is an interface between:
|
|
-- - the services provided by a 2D curve from the package Geom2d
|
|
-- - and those required of the curve by the computation algorithm.
|
|
-- The adapted curve is created in the following way:
|
|
-- Handle(Geom2d_Curve) mycurve = ...
|
|
-- ;
|
|
-- Geom2dAdaptor_Curve C(mycurve);
|
|
-- The bounding box B is then enlarged by adding it:
|
|
-- Bnd_Box2d B;
|
|
-- // ...
|
|
-- Standard_Real Tol = ... ;
|
|
-- Add2dCurve::Add ( C, Tol, B );
|
|
-- Exceptions
|
|
-- Standard_Failure if the curve is built from:
|
|
-- - a Geom_Line, or
|
|
-- - a Geom_Parabola, or
|
|
-- - a Geom_Hyperbola,
|
|
-- and P1 and P2 are either two negative infinite real
|
|
-- numbers, or two positive infinite real numbers.
|
|
|
|
Add(myclass;
|
|
C : Curve from Geom2d;
|
|
Tol: Real from Standard;
|
|
Box: out Box2d from Bnd);
|
|
|
|
---Purpose: Adds to the bounding box B the curve C
|
|
-- B is then enlarged by the tolerance value Tol.
|
|
-- Note: depending on the type of curve, one of the following
|
|
-- representations of the curve C is used to include it in the bounding box B:
|
|
-- - an exact representation if C is built from a line, a circle or a conic curve,
|
|
-- - the poles of the curve if C is built from a Bezier curve or a BSpline curve,
|
|
-- - if not, the points of an approximation of the curve C.
|
|
|
|
Add(myclass;
|
|
C : Curve from Geom2d;
|
|
U1 : Real from Standard;
|
|
U2 : Real from Standard;
|
|
Tol: Real from Standard;
|
|
B: out Box2d from Bnd);
|
|
|
|
---Purpose: Adds to the bounding box B the part of curve C
|
|
-- B is then enlarged by the tolerance value Tol.
|
|
-- U1, U2 - the parametric range to comute the bounding box;
|
|
-- Note: depending on the type of curve, one of the following
|
|
-- representations of the curve C is used to include it in the bounding box B:
|
|
-- - an exact representation if C is built from a line, a circle or a conic curve,
|
|
-- - the poles of the curve if C is built from a Bezier curve or a BSpline curve,
|
|
-- - if not, the points of an approximation of the curve C.
|
|
|
|
end Add2dCurve;
|