1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40: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:
abv
2015-07-12 07:42:38 +03:00
parent 543a996496
commit 42cf5bc1ca
15354 changed files with 623957 additions and 509844 deletions

View File

@@ -1,2 +1,45 @@
IntCurveSurface_HCurveTool.gxx
IntCurveSurface_HCurveTool.lxx
IntCurveSurface_HInter.hxx
IntCurveSurface_HInter_0.cxx
IntCurveSurface_Inter.gxx
IntCurveSurface_Intersection.cxx
IntCurveSurface_Intersection.hxx
IntCurveSurface_IntersectionPoint.cxx
IntCurveSurface_IntersectionPoint.hxx
IntCurveSurface_IntersectionPoint.lxx
IntCurveSurface_IntersectionSegment.cxx
IntCurveSurface_IntersectionSegment.hxx
IntCurveSurface_Polygon.gxx
IntCurveSurface_Polygon.lxx
IntCurveSurface_PolygonTool.gxx
IntCurveSurface_PolygonTool.lxx
IntCurveSurface_Polyhedron.gxx
IntCurveSurface_Polyhedron.lxx
IntCurveSurface_PolyhedronTool.gxx
IntCurveSurface_PolyhedronTool.lxx
IntCurveSurface_QuadricCurveExactInter.gxx
IntCurveSurface_QuadricCurveFunc.gxx
IntCurveSurface_SequenceOfPnt.hxx
IntCurveSurface_SequenceOfSeg.hxx
IntCurveSurface_TheCSFunctionOfHInter.hxx
IntCurveSurface_TheCSFunctionOfHInter_0.cxx
IntCurveSurface_TheExactHInter.hxx
IntCurveSurface_TheExactHInter_0.cxx
IntCurveSurface_TheHCurveTool.hxx
IntCurveSurface_TheHCurveTool_0.cxx
IntCurveSurface_TheInterferenceOfHInter.hxx
IntCurveSurface_TheInterferenceOfHInter_0.cxx
IntCurveSurface_ThePolygonOfHInter.hxx
IntCurveSurface_ThePolygonOfHInter_0.cxx
IntCurveSurface_ThePolygonToolOfHInter.hxx
IntCurveSurface_ThePolygonToolOfHInter_0.cxx
IntCurveSurface_ThePolyhedronOfHInter.hxx
IntCurveSurface_ThePolyhedronOfHInter_0.cxx
IntCurveSurface_ThePolyhedronToolOfHInter.hxx
IntCurveSurface_ThePolyhedronToolOfHInter_0.cxx
IntCurveSurface_TheQuadCurvExactHInter.hxx
IntCurveSurface_TheQuadCurvExactHInter_0.cxx
IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx
IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter_0.cxx
IntCurveSurface_TransitionOnCurve.hxx

View File

@@ -1,127 +0,0 @@
-- Created on: 1993-04-07
-- Created by: Laurent BUCHARD
-- 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.
package IntCurveSurface
---Purpose: This package provides algorithmes to intersect a Curve
-- and a Surface.
-- Level: Internal
--
-- All the methods of the classes of this package are Internal.
-- except the methods of the classes <Intersection,
-- IntersectionPoint,
-- IntersectionSegment>
--
uses Standard, TCollection, TColStd, TColgp, gp,
Bnd, Intf, IntAna,
IntImp, IntSurf,
GeomAbs, StdFail ,
Adaptor3d, Geom,
math
is
--------------------------------------------------
enumeration TransitionOnCurve is
Tangent,In,Out;
---Purpose:
--
--
--
-- \ Uo ^ \ U1 ^
-- \ | n \ | n
-- Surf ====\======|=== ====\======|===
-- \ . \ .
-- \ . \ .
-- U1 \ . Uo \ .
--
--
-- ( In ) ( Out )
--
--
--
-- \ /
-- \ /
-- \ /
-- \ /
-- Surf =====-----=====
--
-- ( Tangent )
-- Crb and Surf are C1
--------------------------------------------------
deferred class Intersection;
--------------------------------------------------
class IntersectionPoint;
--------------------------------------------------
class IntersectionSegment;
--------------------------------------------------
imported SequenceOfPnt;
--------------------------------------------------
imported SequenceOfSeg;
--------------------------------------------------
generic class HCurveTool;
--------------------------------------------------
generic class Polygon;
--------------------------------------------------
generic class Polyhedron;
--------------------------------------------------
generic class PolygonTool;
--------------------------------------------------
generic class PolyhedronTool;
--------------------------------------------------
generic class QuadricCurveFunc;
--------------------------------------------------
generic class QuadricCurveExactInter,
TheQuadCurvFunc;
--------------------------------------------------
generic class Inter,
ThePolygon,
ThePolygonTool,
ThePolyhedron,
ThePolyhedronTool,
TheInterference,
TheCSFunction,
TheExactInter,
TheQuadCurvExactInter;
-------------------------------------------------
--class HCurveTool instantiates
-- CurveTool from IntCurveSurface
-- (HCurve from Adaptor3d);
--class HInter instantiates
-- Inter from IntCurveSurface (
-- HCurve from Adaptor3d,
-- HCurveTool from IntCurveSurface,
-- HSurface from Adaptor3d,
-- HSurfaceTool from IntCurveSurface);
class TheHCurveTool instantiates
HCurveTool from IntCurveSurface (
HCurve from Adaptor3d);
class HInter instantiates
Inter from IntCurveSurface (
HCurve from Adaptor3d,
TheHCurveTool from IntCurveSurface,
HSurface from Adaptor3d,
HSurfaceTool from Adaptor3d);
end IntCurveSurface;

View File

@@ -1,236 +0,0 @@
-- Created on: 1995-07-17
-- Created by: Modelistation
-- Copyright (c) 1995-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 HCurveTool from IntCurveSurface (CurveGen as any)
uses
Array1OfReal from TColStd,
HArray1OfReal from TColStd,
Shape from GeomAbs,
CurveType from GeomAbs,
Vec from gp,
Pnt from gp,
Circ from gp,
Elips from gp,
Hypr from gp,
Parab from gp,
Lin from gp,
BezierCurve from Geom,
BSplineCurve from Geom
raises
OutOfRange from Standard,
NoSuchObject from Standard,
DomainError from Standard
is
--
-- Global methods - Apply to the whole curve.
--
FirstParameter(myclass; C: CurveGen) returns Real
---C++: inline
;
LastParameter(myclass; C: CurveGen) returns Real
---C++: inline
;
--
-- Services to break the curves to the expected continuity
--
-- If for example you need the curve to be C2 and the method
-- Continuity returns you something lower than C2 (say C1 for
-- example).
--
-- First compute the number of intervals with the requested
-- continuity with the method NbIntervals(). Note that if the
-- continuity is higher than the one you need NbIntervals will
-- return 1.
--
-- Then you get the parameters bounding the intervals with the
-- method Intervals, using an array of length at least
-- NbIntervals()+1.
--
-- If you need to create a curve with a restricted span you can
-- use the method Trim().
Continuity(myclass; C: CurveGen) returns Shape from GeomAbs
---Purpose:
---C++: inline
;
NbIntervals(myclass; C: CurveGen; S : Shape from GeomAbs) returns Integer
---Purpose: Returns the number of intervals for continuity
-- <S>. May be one if Continuity(myclass) >= <S>
---C++: inline
;
Intervals(myclass; C: CurveGen; T : in out Array1OfReal from TColStd;
S : Shape from GeomAbs)
---Purpose: Stores in <T> the parameters bounding the intervals
-- of continuity <S>.
--
-- The array must provide enough room to accomodate
-- for the parameters. i.e. T.Length() > NbIntervals()
raises
OutOfRange from Standard
---C++: inline
;
IsClosed(myclass; C: CurveGen) returns Boolean
---C++: inline
;
IsPeriodic(myclass; C: CurveGen) returns Boolean
---C++: inline
;
Period(myclass; C: CurveGen) returns Real
raises
DomainError from Standard -- if the curve is not periodic
---C++: inline
;
Value(myclass; C: CurveGen; U : Real) returns Pnt from gp
--- Purpose : Computes the point of parameter U on the curve.
---C++: inline
;
D0 (myclass; C: CurveGen; U : Real; P : out Pnt from gp)
--- Purpose : Computes the point of parameter U on the curve.
---C++: inline
;
D1 (myclass; C: CurveGen; U : Real; P : out Pnt from gp ; V : out Vec from gp)
--- Purpose : Computes the point of parameter U on the curve with its
-- first derivative.
raises
DomainError from Standard
--- Purpose : Raised if the continuity of the current interval
-- is not C1.
---C++: inline
;
D2 (myclass; C: CurveGen; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp)
--- Purpose :
-- Returns the point P of parameter U, the first and second
-- derivatives V1 and V2.
raises
DomainError from Standard
--- Purpose : Raised if the continuity of the current interval
-- is not C2.
---C++: inline
;
D3 (myclass; C: CurveGen; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp)
--- Purpose :
-- Returns the point P of parameter U, the first, the second
-- and the third derivative.
raises
DomainError from Standard
--- Purpose : Raised if the continuity of the current interval
-- is not C3.
---C++: inline
;
DN (myclass; C: CurveGen; U : Real; N : Integer) returns Vec from gp
--- Purpose :
-- The returned vector gives the value of the derivative for the
-- order of derivation N.
raises
DomainError from Standard,
--- Purpose : Raised if the continuity of the current interval
-- is not CN.
OutOfRange from Standard
--- Purpose : Raised if N < 1.
---C++: inline
;
Resolution(myclass; C: CurveGen; R3d : Real) returns Real
---Purpose : Returns the parametric resolution corresponding
-- to the real space resolution <R3d>.
---C++: inline
;
GetType(myclass; C: CurveGen) returns CurveType from GeomAbs
---Purpose: Returns the type of the curve in the current
-- interval : Line, Circle, Ellipse, Hyperbola,
-- Parabola, BezierCurve, BSplineCurve, OtherCurve.
---C++: inline
;
--
-- The following methods must be called when GetType returned
-- the corresponding type.
--
Line(myclass; C: CurveGen) returns Lin from gp
raises
NoSuchObject from Standard
---C++: inline
;
Circle(myclass; C: CurveGen) returns Circ from gp
raises
NoSuchObject from Standard
---C++: inline
;
Ellipse(myclass; C: CurveGen) returns Elips from gp
raises
NoSuchObject from Standard
---C++: inline
;
Hyperbola(myclass; C: CurveGen) returns Hypr from gp
raises
NoSuchObject from Standard
---C++: inline
;
Parabola(myclass; C: CurveGen) returns Parab from gp
raises
NoSuchObject from Standard
---C++: inline
;
Bezier(myclass; C: CurveGen) returns BezierCurve from Geom
raises
NoSuchObject from Standard
---C++: inline
;
BSpline(myclass; C: CurveGen) returns BSplineCurve from Geom
raises
NoSuchObject from Standard
---C++: inline
;
NbSamples(myclass; C: CurveGen; U0,U1: Real from Standard)
returns Integer from Standard;
SamplePars(myclass; C: CurveGen; U0,U1: Real from Standard;
Defl: Real from Standard; NbMin: Integer from Standard;
Pars: in out HArray1OfReal from TColStd);
end HCurveTool;

View File

@@ -0,0 +1,124 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_HInter_HeaderFile
#define _IntCurveSurface_HInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <IntCurveSurface_Intersection.hxx>
#include <Standard_Real.hxx>
#include <TColgp_Array2OfPnt.hxx>
#include <TColStd_Array1OfReal.hxx>
class Adaptor3d_HCurve;
class IntCurveSurface_TheHCurveTool;
class Adaptor3d_HSurface;
class Adaptor3d_HSurfaceTool;
class IntCurveSurface_ThePolygonOfHInter;
class IntCurveSurface_ThePolygonToolOfHInter;
class IntCurveSurface_ThePolyhedronOfHInter;
class IntCurveSurface_ThePolyhedronToolOfHInter;
class IntCurveSurface_TheInterferenceOfHInter;
class IntCurveSurface_TheCSFunctionOfHInter;
class IntCurveSurface_TheExactHInter;
class IntCurveSurface_TheQuadCurvExactHInter;
class IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter;
class Bnd_BoundSortBox;
class gp_Lin;
class gp_Circ;
class gp_Elips;
class gp_Parab;
class gp_Hypr;
class IntAna_IntConicQuad;
class Bnd_Box;
class IntCurveSurface_HInter : public IntCurveSurface_Intersection
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntCurveSurface_HInter();
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface);
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_HSurface)& Surface);
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& ThePolygon, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron);
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& ThePolygon, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron, Bnd_BoundSortBox& BndBSB);
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron);
protected:
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U0, const Standard_Real V0, const Standard_Real U1, const Standard_Real V1);
Standard_EXPORT void InternalPerformCurveQuadric (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface);
Standard_EXPORT void InternalPerform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
Standard_EXPORT void InternalPerform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, Bnd_BoundSortBox& BSB);
Standard_EXPORT void InternalPerform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
Standard_EXPORT void PerformConicSurf (const gp_Lin& Line, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
Standard_EXPORT void PerformConicSurf (const gp_Circ& Circle, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
Standard_EXPORT void PerformConicSurf (const gp_Elips& Ellipse, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
Standard_EXPORT void PerformConicSurf (const gp_Parab& Parab, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
Standard_EXPORT void PerformConicSurf (const gp_Hypr& Hyper, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
Standard_EXPORT void AppendIntAna (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const IntAna_IntConicQuad& InterAna);
Standard_EXPORT void AppendPoint (const Handle(Adaptor3d_HCurve)& Curve, const Standard_Real w, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real u, const Standard_Real v);
Standard_EXPORT void AppendSegment (const Handle(Adaptor3d_HCurve)& Curve, const Standard_Real u0, const Standard_Real u1, const Handle(Adaptor3d_HSurface)& Surface);
private:
Standard_EXPORT void DoSurface (const Handle(Adaptor3d_HSurface)& surface, const Standard_Real u0, const Standard_Real u1, const Standard_Real v0, const Standard_Real v1, TColgp_Array2OfPnt& pntsOnSurface, Bnd_Box& boxSurface, Standard_Real& gap);
Standard_EXPORT void DoNewBounds (const Handle(Adaptor3d_HSurface)& surface, const Standard_Real u0, const Standard_Real u1, const Standard_Real v0, const Standard_Real v1, const TColgp_Array2OfPnt& pntsOnSurface, const TColStd_Array1OfReal& X, const TColStd_Array1OfReal& Y, const TColStd_Array1OfReal& Z, TColStd_Array1OfReal& Bounds);
};
#endif // _IntCurveSurface_HInter_HeaderFile

View File

@@ -0,0 +1,73 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_HInter.hxx>
#include <Adaptor3d_HCurve.hxx>
#include <IntCurveSurface_TheHCurveTool.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HSurfaceTool.hxx>
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
#include <IntCurveSurface_ThePolygonToolOfHInter.hxx>
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
#include <IntCurveSurface_TheInterferenceOfHInter.hxx>
#include <IntCurveSurface_TheCSFunctionOfHInter.hxx>
#include <IntCurveSurface_TheExactHInter.hxx>
#include <IntCurveSurface_TheQuadCurvExactHInter.hxx>
#include <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
#include <Bnd_BoundSortBox.hxx>
#include <gp_Lin.hxx>
#include <gp_Circ.hxx>
#include <gp_Elips.hxx>
#include <gp_Parab.hxx>
#include <gp_Hypr.hxx>
#include <IntAna_IntConicQuad.hxx>
#include <Bnd_Box.hxx>
#define TheCurve Handle(Adaptor3d_HCurve)
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
#define TheCurveTool IntCurveSurface_TheHCurveTool
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#define TheSurface Handle(Adaptor3d_HSurface)
#define TheSurface_hxx <Adaptor3d_HSurface.hxx>
#define TheSurfaceTool Adaptor3d_HSurfaceTool
#define TheSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define IntCurveSurface_ThePolygon IntCurveSurface_ThePolygonOfHInter
#define IntCurveSurface_ThePolygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
#define IntCurveSurface_ThePolygonTool IntCurveSurface_ThePolygonToolOfHInter
#define IntCurveSurface_ThePolygonTool_hxx <IntCurveSurface_ThePolygonToolOfHInter.hxx>
#define IntCurveSurface_ThePolyhedron IntCurveSurface_ThePolyhedronOfHInter
#define IntCurveSurface_ThePolyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#define IntCurveSurface_ThePolyhedronTool IntCurveSurface_ThePolyhedronToolOfHInter
#define IntCurveSurface_ThePolyhedronTool_hxx <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
#define IntCurveSurface_TheInterference IntCurveSurface_TheInterferenceOfHInter
#define IntCurveSurface_TheInterference_hxx <IntCurveSurface_TheInterferenceOfHInter.hxx>
#define IntCurveSurface_TheCSFunction IntCurveSurface_TheCSFunctionOfHInter
#define IntCurveSurface_TheCSFunction_hxx <IntCurveSurface_TheCSFunctionOfHInter.hxx>
#define IntCurveSurface_TheExactInter IntCurveSurface_TheExactHInter
#define IntCurveSurface_TheExactInter_hxx <IntCurveSurface_TheExactHInter.hxx>
#define IntCurveSurface_TheQuadCurvExactInter IntCurveSurface_TheQuadCurvExactHInter
#define IntCurveSurface_TheQuadCurvExactInter_hxx <IntCurveSurface_TheQuadCurvExactHInter.hxx>
#define IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactInter IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter
#define IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactInter_hxx <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
#define IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactInter IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter
#define IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactInter_hxx <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
#define IntCurveSurface_Inter IntCurveSurface_HInter
#define IntCurveSurface_Inter_hxx <IntCurveSurface_HInter.hxx>
#include <IntCurveSurface_Inter.gxx>

View File

@@ -1,290 +0,0 @@
-- Created on: 1993-04-07
-- Created by: Laurent BUCHARD
-- 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.
generic class Inter from IntCurveSurface (
TheCurve as any;
TheCurveTool as any;
TheSurface as any;
TheSurfaceTool as any)
inherits Intersection from IntCurveSurface
---Purpose: This class provides the intersections between a
-- surface S(u,v) and a curve C(w) on their natural
-- domains (S: (uo,vo)->(u1,v1)) and (C: wo->w1).
--
-- The class <Intersection from IntCurveSurface>
-- describes the methods which are used to read
-- the results.
uses
Box from Bnd,
Lin from gp,
Elips from gp,
Circ from gp,
Parab from gp,
Hypr from gp,
IntConicQuad from IntAna,
IntersectionPoint from IntCurveSurface,
IntersectionSegment from IntCurveSurface,
SurfaceType from GeomAbs,
--modified by NIZHNY-MKK Tue Jul 26 14:31:08 2005
Array2OfPnt from TColgp,
Array1OfReal from TColStd,
BoundSortBox from Bnd
------------------------------------------------------------
class ThePolygon instantiates
Polygon from IntCurveSurface (
TheCurve,
TheCurveTool);
------------------------------------------------------------
class ThePolygonTool instantiates
PolygonTool from IntCurveSurface (
Pnt from gp,
ThePolygon,
Box from Bnd);
------------------------------------------------------------
class ThePolyhedron instantiates
Polyhedron from IntCurveSurface (
TheSurface,
TheSurfaceTool);
------------------------------------------------------------
class ThePolyhedronTool instantiates
PolyhedronTool from IntCurveSurface (
ThePolyhedron);
------------------------------------------------------------
class TheInterference instantiates
InterferencePolygonPolyhedron from Intf (
ThePolygon,
ThePolygonTool,
ThePolyhedron,
ThePolyhedronTool);
------------------------------------------------------------
-- find a root (u,v,w) from a starting point (u0,v0,w0) of the problem :
-- XS(u,v) = XC(w)
-- YS(u,v) = YC(w)
-- ZS(u,v) = ZC(w)
-- where (XS,YS,ZS) is the point of parameters (u,v) on the
-- biparametric surface and (XC,YC,ZC) the point of parameter w on
-- the parametric curve.
--
class TheCSFunction instantiates
ZerCSParFunc from IntImp (
TheSurface,
TheSurfaceTool,
TheCurve,
TheCurveTool);
class TheExactInter instantiates
IntCS from IntImp (
TheSurface,
TheSurfaceTool,
TheCurve,
TheCurveTool,
TheCSFunction);
------------------------------------------------------------
-- find a root (u,v,w) from a starting point (w0) of the problem :
-- Q(X(w),Y(w),Z(w)) = 0
--
-- where Q(X,Y,Z) = 0 is the implicit expression of a quadric
-- and (X(w),Y(w),Z(w)) the point of parameter w on a parametric
-- curve.
--
class TheQuadCurvExactInter instantiates
QuadricCurveExactInter from IntCurveSurface(
TheSurface,
TheSurfaceTool,
TheCurve,
TheCurveTool);
--------------------------------------------------------------
is
Create
---Purpose: Empty Constructor
returns Inter from IntCurveSurface;
Perform(me : in out;
Curve : TheCurve;
Surface : TheSurface)
---Purpose: Compute the Intersection between the curve and the
-- surface
is static;
Perform(me : in out;
Curve : TheCurve;
Polygon : ThePolygon;
Surface : TheSurface)
---Purpose: Compute the Intersection between the curve and
-- the surface. The Curve is already sampled and
-- its polygon : <Polygon> is given.
is static;
Perform(me : in out;
Curve : TheCurve;
ThePolygon: ThePolygon;
Surface : TheSurface;
Polyhedron: ThePolyhedron)
---Purpose: Compute the Intersection between the curve and
-- the surface. The Curve is already sampled and
-- its polygon : <Polygon> is given. The Surface is
-- also sampled and <Polyhedron> is given.
is static;
Perform(me : in out;
Curve : TheCurve;
ThePolygon: ThePolygon;
Surface : TheSurface;
Polyhedron: ThePolyhedron;
BndBSB : in out BoundSortBox from Bnd)
---Purpose: Compute the Intersection between the curve and
-- the surface. The Curve is already sampled and
-- its polygon : <Polygon> is given. The Surface is
-- also sampled and <Polyhedron> is given.
is static;
Perform(me : in out;
Curve : TheCurve;
Surface : TheSurface;
Polyhedron: ThePolyhedron)
---Purpose: Compute the Intersection between the curve and
-- the surface. The Surface is already sampled and
-- its polyhedron : <Polyhedron> is given.
is static;
------------------------------------------------------------
------ Implementation functions :
------------------------------------------------------------
Perform(me : in out;
Curve : TheCurve;
Surface : TheSurface;
U0,V0,U1,V1: Real from Standard)
---Purpose: Compute the Intersection between the curve and the
-- surface
is static protected;
InternalPerformCurveQuadric(me : in out;
Curve : TheCurve;
Surface : TheSurface)
is static protected;
InternalPerform(me : in out;
Curve : TheCurve;
Polygon : ThePolygon;
Surface : TheSurface;
Polyhedron : ThePolyhedron;
U1,V1,U2,V2 : Real from Standard)
is static protected;
InternalPerform(me : in out;
Curve : TheCurve;
Polygon : ThePolygon;
Surface : TheSurface;
Polyhedron : ThePolyhedron;
U1,V1,U2,V2 : Real from Standard;
BSB : in out BoundSortBox from Bnd)
is static protected;
InternalPerform(me : in out;
Curve : TheCurve;
Polygon : ThePolygon;
Surface : TheSurface;
U1,V1,U2,V2 : Real from Standard)
is static protected;
PerformConicSurf(me : in out;
Line : Lin from gp;
Curve : TheCurve;
Surface : TheSurface;
U1,V1,U2,V2 : Real from Standard)
is static protected;
PerformConicSurf(me : in out;
Circle : Circ from gp;
Curve : TheCurve;
Surface : TheSurface;
U1,V1,U2,V2 : Real from Standard)
is static protected;
PerformConicSurf(me : in out;
Ellipse : Elips from gp;
Curve : TheCurve;
Surface : TheSurface;
U1,V1,U2,V2 : Real from Standard)
is static protected;
PerformConicSurf(me : in out;
Parab : Parab from gp;
Curve : TheCurve;
Surface : TheSurface;
U1,V1,U2,V2 : Real from Standard)
is static protected;
PerformConicSurf(me : in out;
Hyper : Hypr from gp;
Curve : TheCurve;
Surface : TheSurface;
U1,V1,U2,V2 : Real from Standard)
is static protected;
AppendIntAna(me : in out;
Curve : TheCurve;
Surface : TheSurface;
InterAna : IntConicQuad from IntAna)
is static protected;
AppendPoint(me : in out;
Curve : TheCurve;
w : Real from Standard;
Surface : TheSurface;
u,v : Real from Standard)
is static protected;
AppendSegment(me : in out;
Curve : TheCurve;
u0,u1 : Real from Standard;
Surface : TheSurface)
is static protected;
--modified by NIZHNY-MKK Tue Jul 26 14:31:11 2005.BEGIN
DoSurface(me : in out;
surface : TheSurface;
u0,u1,v0,v1 : Real from Standard;
pntsOnSurface: in out Array2OfPnt from TColgp;
boxSurface : in out Box from Bnd;
gap : in out Real from Standard)
is private;
DoNewBounds(me : in out;
surface : TheSurface;
u0,u1,v0,v1 : Real from Standard;
pntsOnSurface: Array2OfPnt from TColgp;
X,Y,Z : Array1OfReal from TColStd;
Bounds : in out Array1OfReal from TColStd)
is private;
--modified by NIZHNY-MKK Tue Jul 26 14:40:22 2005.END
end Inter;

View File

@@ -1,120 +0,0 @@
-- Created on: 1993-04-07
-- Created by: Laurent BUCHARD
-- 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.
deferred class Intersection from IntCurveSurface
---Level: Public
uses
IntersectionPoint from IntCurveSurface,
IntersectionSegment from IntCurveSurface,
SequenceOfPnt from IntCurveSurface,
SequenceOfSeg from IntCurveSurface
raises NotDone from StdFail,
OutOfRange from Standard
is
Initialize
---Purpose: Empty Constructor;
is protected;
IsDone(me)
---Purpose: returns the <done> field.
returns Boolean from Standard is static;
NbPoints(me)
---Purpose: returns the number of IntersectionPoint
-- if IsDone returns True.
-- else NotDone is raised.
returns Integer from Standard
raises NotDone from StdFail
is static;
Point(me; Index: Integer from Standard)
---Purpose: returns the IntersectionPoint of range <Index>
-- raises NotDone if the computation has failed or if
-- the computation has not been done
-- raises OutOfRange if Index is not in the range <1..NbPoints>
---C++: return const &
returns IntersectionPoint from IntCurveSurface
raises NotDone from StdFail,
OutOfRange from Standard
is static;
NbSegments(me)
---Purpose: returns the number of IntersectionSegment
-- if IsDone returns True.
-- else NotDone is raised.
returns Integer from Standard
raises NotDone from StdFail
is static;
Segment(me; Index: Integer from Standard)
---Purpose: returns the IntersectionSegment of range <Index>
-- raises NotDone if the computation has failed or if
-- the computation has not been done
-- raises OutOfRange if Index is not in the range <1..NbSegment>
---C++: return const &
returns IntersectionSegment from IntCurveSurface
raises NotDone from StdFail,
OutOfRange from Standard
is static;
SetValues(me:in out; Inter: Intersection from IntCurveSurface)
---Purpose: Internal method
-- copy the <Inter> fields to <me>
is static protected;
Append(me:in out; Inter: Intersection from IntCurveSurface;
FirstParamOnCurve: Real from Standard;
LastParamOnCurve : Real from Standard)
---Purpose: Internal method
-- Append the IntersectionPoints and
-- IntersectionSegments of <Inter> to <me>.
is static protected;
Append(me:in out; Pt: IntersectionPoint from IntCurveSurface)
---Purpose: Internal method
-- Append the IntersectionPoints of <Inter> to <me>
is static protected;
Append(me:in out; Seg: IntersectionSegment from IntCurveSurface)
---Purpose: Internal method
-- Append the IntersectionPoints of <Inter> to <me>
is static protected;
ResetFields(me:in out)
---Purpose: Internal method
-- Reset all the fields of <me>
-- Clear the sequences of IntersectionPoints and Segments
-- Set the field <done> to Standard_False.
is static protected;
Dump(me)
---Purpose: Dump all the fields.
is static;
fields
done : Boolean from Standard is protected;
lpnt : SequenceOfPnt from IntCurveSurface;
lseg : SequenceOfSeg from IntCurveSurface;
end Intersection;

View File

@@ -14,11 +14,13 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntCurveSurface_Intersection.ixx>
#include <IntCurveSurface_Intersection.hxx>
#include <IntCurveSurface_IntersectionPoint.hxx>
#include <IntCurveSurface_IntersectionSegment.hxx>
#include <IntCurveSurface_TransitionOnCurve.hxx>
#include <Standard_OutOfRange.hxx>
#include <StdFail_NotDone.hxx>
#define PARAMEQUAL(a,b) (Abs((a)-(b))< (1e-8))

View File

@@ -0,0 +1,123 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_Intersection_HeaderFile
#define _IntCurveSurface_Intersection_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntCurveSurface_SequenceOfPnt.hxx>
#include <IntCurveSurface_SequenceOfSeg.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Real.hxx>
class StdFail_NotDone;
class Standard_OutOfRange;
class IntCurveSurface_IntersectionPoint;
class IntCurveSurface_IntersectionSegment;
class IntCurveSurface_Intersection
{
public:
DEFINE_STANDARD_ALLOC
//! returns the <done> field.
Standard_EXPORT Standard_Boolean IsDone() const;
//! returns the number of IntersectionPoint
//! if IsDone returns True.
//! else NotDone is raised.
Standard_EXPORT Standard_Integer NbPoints() const;
//! returns the IntersectionPoint of range <Index>
//! raises NotDone if the computation has failed or if
//! the computation has not been done
//! raises OutOfRange if Index is not in the range <1..NbPoints>
Standard_EXPORT const IntCurveSurface_IntersectionPoint& Point (const Standard_Integer Index) const;
//! returns the number of IntersectionSegment
//! if IsDone returns True.
//! else NotDone is raised.
Standard_EXPORT Standard_Integer NbSegments() const;
//! returns the IntersectionSegment of range <Index>
//! raises NotDone if the computation has failed or if
//! the computation has not been done
//! raises OutOfRange if Index is not in the range <1..NbSegment>
Standard_EXPORT const IntCurveSurface_IntersectionSegment& Segment (const Standard_Integer Index) const;
//! Dump all the fields.
Standard_EXPORT void Dump() const;
protected:
//! Empty Constructor;
Standard_EXPORT IntCurveSurface_Intersection();
//! Internal method
//! copy the <Inter> fields to <me>
Standard_EXPORT void SetValues (const IntCurveSurface_Intersection& Inter);
//! Internal method
//! Append the IntersectionPoints and
//! IntersectionSegments of <Inter> to <me>.
Standard_EXPORT void Append (const IntCurveSurface_Intersection& Inter, const Standard_Real FirstParamOnCurve, const Standard_Real LastParamOnCurve);
//! Internal method
//! Append the IntersectionPoints of <Inter> to <me>
Standard_EXPORT void Append (const IntCurveSurface_IntersectionPoint& Pt);
//! Internal method
//! Append the IntersectionPoints of <Inter> to <me>
Standard_EXPORT void Append (const IntCurveSurface_IntersectionSegment& Seg);
//! Internal method
//! Reset all the fields of <me>
//! Clear the sequences of IntersectionPoints and Segments
//! Set the field <done> to Standard_False.
Standard_EXPORT void ResetFields();
Standard_Boolean done;
private:
IntCurveSurface_SequenceOfPnt lpnt;
IntCurveSurface_SequenceOfSeg lseg;
};
#endif // _IntCurveSurface_Intersection_HeaderFile

View File

@@ -1,106 +0,0 @@
-- Created on: 1993-04-07
-- Created by: Laurent BUCHARD
-- 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 IntersectionPoint from IntCurveSurface
---Purpose: Definition of an interserction point between a
-- curve and a surface.
---Level: Public
uses
Pnt from gp,
TransitionOnCurve from IntCurveSurface
is
Create
---Purpose: Empty Constructor.
returns IntersectionPoint from IntCurveSurface;
Create(P : Pnt from gp;
USurf : Real from Standard;
VSurf : Real from Standard;
UCurv : Real from Standard;
TrCurv: TransitionOnCurve from IntCurveSurface)
---Purpose: Create an IntersectionPoint.
returns IntersectionPoint from IntCurveSurface;
SetValues(me: in out;
P : Pnt from gp;
USurf : Real from Standard;
VSurf : Real from Standard;
UCurv : Real from Standard;
TrCurv: TransitionOnCurve from IntCurveSurface)
---Purpose: Set the fields of the current IntersectionPoint.
is static;
Values(me;
P : out Pnt from gp;
USurf : out Real from Standard;
VSurf : out Real from Standard;
UCurv : out Real from Standard;
TrCurv: out TransitionOnCurve from IntCurveSurface)
---Purpose: Get the fields of the current IntersectionPoint.
is static;
Pnt(me)
---Purpose: returns the geometric point.
---C++: return const &
---C++: inline
returns Pnt from gp
is static;
U(me)
---Purpose: returns the U parameter on the surface.
---C++: inline
returns Real from Standard
is static;
V(me)
---Purpose: returns the V parameter on the surface.
---C++: inline
returns Real from Standard
is static;
W(me)
---Purpose: returns the parameter on the curve.
---C++: inline
returns Real from Standard
is static;
Transition(me)
---Purpose: returns the Transition of the point.
---C++: inline
returns TransitionOnCurve from IntCurveSurface
is static;
Dump(me)
---Purpose: Dump all the fields.
is static;
fields
myP : Pnt from gp;
myUSurf : Real from Standard;
myVSurf : Real from Standard;
myUCurv : Real from Standard;
myTrOnCurv: TransitionOnCurve from IntCurveSurface;
end IntersectionPoint;

View File

@@ -14,8 +14,9 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntCurveSurface_IntersectionPoint.ixx>
#include <gp_Pnt.hxx>
#include <IntCurveSurface_IntersectionPoint.hxx>
//================================================================================
IntCurveSurface_IntersectionPoint::IntCurveSurface_IntersectionPoint() { }

View File

@@ -0,0 +1,98 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_IntersectionPoint_HeaderFile
#define _IntCurveSurface_IntersectionPoint_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <gp_Pnt.hxx>
#include <Standard_Real.hxx>
#include <IntCurveSurface_TransitionOnCurve.hxx>
class gp_Pnt;
//! Definition of an interserction point between a
//! curve and a surface.
class IntCurveSurface_IntersectionPoint
{
public:
DEFINE_STANDARD_ALLOC
//! Empty Constructor.
Standard_EXPORT IntCurveSurface_IntersectionPoint();
//! Create an IntersectionPoint.
Standard_EXPORT IntCurveSurface_IntersectionPoint(const gp_Pnt& P, const Standard_Real USurf, const Standard_Real VSurf, const Standard_Real UCurv, const IntCurveSurface_TransitionOnCurve TrCurv);
//! Set the fields of the current IntersectionPoint.
Standard_EXPORT void SetValues (const gp_Pnt& P, const Standard_Real USurf, const Standard_Real VSurf, const Standard_Real UCurv, const IntCurveSurface_TransitionOnCurve TrCurv);
//! Get the fields of the current IntersectionPoint.
Standard_EXPORT void Values (gp_Pnt& P, Standard_Real& USurf, Standard_Real& VSurf, Standard_Real& UCurv, IntCurveSurface_TransitionOnCurve& TrCurv) const;
//! returns the geometric point.
const gp_Pnt& Pnt() const;
//! returns the U parameter on the surface.
Standard_Real U() const;
//! returns the V parameter on the surface.
Standard_Real V() const;
//! returns the parameter on the curve.
Standard_Real W() const;
//! returns the Transition of the point.
IntCurveSurface_TransitionOnCurve Transition() const;
//! Dump all the fields.
Standard_EXPORT void Dump() const;
protected:
private:
gp_Pnt myP;
Standard_Real myUSurf;
Standard_Real myVSurf;
Standard_Real myUCurv;
IntCurveSurface_TransitionOnCurve myTrOnCurv;
};
#include <IntCurveSurface_IntersectionPoint.lxx>
#endif // _IntCurveSurface_IntersectionPoint_HeaderFile

View File

@@ -1,77 +0,0 @@
-- Created on: 1993-04-07
-- Created by: Laurent BUCHARD
-- 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 IntersectionSegment from IntCurveSurface
---Purpose: A IntersectionSegment describes a segment of curve
-- (w1,w2) where distance(C(w),Surface) is less than a
-- given tolerances.
---Level: Public
uses
IntersectionPoint from IntCurveSurface
is
Create
returns IntersectionSegment from IntCurveSurface;
Create(P1: IntersectionPoint from IntCurveSurface;
P2: IntersectionPoint from IntCurveSurface)
returns IntersectionSegment from IntCurveSurface;
SetValues(me: in out;
P1: IntersectionPoint from IntCurveSurface;
P2: IntersectionPoint from IntCurveSurface)
is static;
Values(me;
P1: out IntersectionPoint from IntCurveSurface;
P2: out IntersectionPoint from IntCurveSurface)
is static;
FirstPoint(me;
P1: out IntersectionPoint from IntCurveSurface)
is static;
SecondPoint(me;
P2: out IntersectionPoint from IntCurveSurface)
is static;
FirstPoint(me)
returns IntersectionPoint from IntCurveSurface
---C++: return const &
is static;
SecondPoint(me)
returns IntersectionPoint from IntCurveSurface
---C++: return const &
is static;
Dump(me)
is static;
fields
myP1 : IntersectionPoint from IntCurveSurface;
myP2 : IntersectionPoint from IntCurveSurface;
end IntersectionSegment;

View File

@@ -14,8 +14,9 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntCurveSurface_IntersectionSegment.ixx>
#include <IntCurveSurface_IntersectionPoint.hxx>
#include <IntCurveSurface_IntersectionSegment.hxx>
IntCurveSurface_IntersectionSegment::IntCurveSurface_IntersectionSegment()
{ }

View File

@@ -0,0 +1,81 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_IntersectionSegment_HeaderFile
#define _IntCurveSurface_IntersectionSegment_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <IntCurveSurface_IntersectionPoint.hxx>
class IntCurveSurface_IntersectionPoint;
//! A IntersectionSegment describes a segment of curve
//! (w1,w2) where distance(C(w),Surface) is less than a
//! given tolerances.
class IntCurveSurface_IntersectionSegment
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntCurveSurface_IntersectionSegment();
Standard_EXPORT IntCurveSurface_IntersectionSegment(const IntCurveSurface_IntersectionPoint& P1, const IntCurveSurface_IntersectionPoint& P2);
Standard_EXPORT void SetValues (const IntCurveSurface_IntersectionPoint& P1, const IntCurveSurface_IntersectionPoint& P2);
Standard_EXPORT void Values (IntCurveSurface_IntersectionPoint& P1, IntCurveSurface_IntersectionPoint& P2) const;
Standard_EXPORT void FirstPoint (IntCurveSurface_IntersectionPoint& P1) const;
Standard_EXPORT void SecondPoint (IntCurveSurface_IntersectionPoint& P2) const;
Standard_EXPORT const IntCurveSurface_IntersectionPoint& FirstPoint() const;
Standard_EXPORT const IntCurveSurface_IntersectionPoint& SecondPoint() const;
Standard_EXPORT void Dump() const;
protected:
private:
IntCurveSurface_IntersectionPoint myP1;
IntCurveSurface_IntersectionPoint myP2;
};
#endif // _IntCurveSurface_IntersectionSegment_HeaderFile

View File

@@ -1,174 +0,0 @@
-- Created on: 1992-10-19
-- Created by: Laurent BUCHARD
-- Copyright (c) 1992-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 Polygon from IntCurveSurface (
TheCurve as any;
TheCurveTool as any)
---Purpose: Describe a polyline as a topology to compute the
-- interference beetween two polylines 2 dimension.
uses Pnt from gp,
Box from Bnd,
Array1OfPnt from TColgp,
Array1OfReal from TColStd,
HArray1OfReal from TColStd
raises OutOfRange from Standard
is
Create (Curve : TheCurve;
NbPnt : Integer from Standard)
returns Polygon from IntCurveSurface;
Create (Curve : TheCurve;
U1,U2 : Real from Standard;
NbPnt : Integer from Standard)
returns Polygon from IntCurveSurface;
Create (Curve : TheCurve;
Upars : Array1OfReal from TColStd)
returns Polygon from IntCurveSurface;
Init (me:in out;
Curve : TheCurve)
is static protected;
Init (me:in out;
Curve : TheCurve;
Upars : Array1OfReal from TColStd)
is static protected;
Bounding (me)
returns Box from Bnd
---C++: return const &
---C++: inline
is static;
---Purpose: Give the bounding box of the polygon.
DeflectionOverEstimation(me)
returns Real from Standard
---C++: inline
is static;
SetDeflectionOverEstimation(me: in out; x:Real from Standard)
---C++: inline
is static;
Closed (me : in out; clos : Boolean from Standard)
---C++: inline
is static;
Closed (me)
returns Boolean from Standard
---C++: inline
is static;
NbSegments (me)
returns Integer
---C++: inline
is static;
---Purpose: Give the number of Segments in the polyline.
BeginOfSeg (me;
Index : in Integer)
returns Pnt from gp
raises OutOfRange from Standard
---C++: return const &
---C++: inline
is static;
---Purpose: Give the point of range Index in the Polygon.
EndOfSeg (me;
Index : in Integer)
returns Pnt from gp
raises OutOfRange from Standard
---C++: return const &
---C++: inline
is static;
---Purpose: Give the point of range Index in the Polygon.
-- Implementation :
InfParameter(me)
---Purpose: Returns the parameter (On the curve)
-- of the first point of the Polygon
returns Real from Standard
---C++: inline
is static;
SupParameter(me)
---Purpose: Returns the parameter (On the curve)
-- of the last point of the Polygon
returns Real from Standard
---C++: inline
is static;
ApproxParamOnCurve(me;
Index : in Integer from Standard;
ParamOnLine : in Real from Standard)
returns Real from Standard
raises OutOfRange from Standard
is static;
---Purpose: Give an approximation of the parameter on the curve
-- according to the discretization of the Curve.
-- Test needings :
Dump (me)
is static;
fields TheBnd : Box from Bnd;
TheDeflection : Real from Standard;
NbPntIn : Integer from Standard;
ThePnts : Array1OfPnt from TColgp;
ClosedPolygon : Boolean from Standard;
--- To compute an approximate parameter on the Curve
--
Binf : Real from Standard;
Bsup : Real from Standard;
myParams : HArray1OfReal from TColStd;
end Polygon;

View File

@@ -1,76 +0,0 @@
-- Created on: 1991-08-02
-- Created by: Laurent BUCHARD
-- 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 PolygonTool from IntCurveSurface(
ThePoint as any;
ThePolygon as any;
TheBoundingBox as any)
---Purpose:
raises OutOfRange from Standard
is
Bounding (myclass; thePolygon : ThePolygon)
returns TheBoundingBox;
---Purpose: Give the bounding box of the polygon.
---C++: inline
---C++: return const &
DeflectionOverEstimation
(myclass; thePolygon : ThePolygon)
---C++: inline
returns Real from Standard;
Closed (myclass; thePolygon : ThePolygon)
---C++: inline
returns Boolean from Standard;
NbSegments (myclass; thePolygon : ThePolygon)
---C++: inline
returns Integer from Standard;
BeginOfSeg (myclass; thePolygon : ThePolygon;
Index : in Integer)
---C++: inline
returns ThePoint
raises OutOfRange from Standard;
---C++: return const &
---Purpose: Give the point of range Index in the Polygon.
EndOfSeg (myclass; thePolygon : ThePolygon;
Index : in Integer)
---C++: inline
returns ThePoint
raises OutOfRange from Standard;
---C++: return const &
---Purpose: Give the point of range Index in the Polygon.
Dump (myclass; thePolygon : ThePolygon);
end PolygonTool;

View File

@@ -1,286 +0,0 @@
-- Created on: 1993-02-03
-- Created by: Laurent BUCHARD
-- 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.
generic class Polyhedron from IntCurveSurface (
ThePSurface as any;
ThePSurfaceTool as any)
---Purpose: This class provides a linear approximation of the PSurface.
--
uses XYZ from gp,
Pnt from gp,
Array2OfPnt from TColgp,
Array2OfReal from TColStd,
Box from Bnd,
HArray1OfBox from Bnd,
Array1OfReal from TColStd
raises OutOfRange from Standard
is
Create(Surface : ThePSurface;
nbdU,nbdV : Integer from Standard;
U1,V1,U2,V2 : Real from Standard)
-- Create a polyhedron on a sub-domain.
-- the numbre of samples on each parametric direction is given.
returns Polyhedron from IntCurveSurface;
Create(Surface : ThePSurface;
Upars, Vpars : Array1OfReal from TColStd)
-- Create a polyhedron on a sub-domain.
-- the numbre of samples on each parametric direction is given.
returns Polyhedron from IntCurveSurface;
Destroy(me: in out);
---C++: alias ~
DeflectionOverEstimation
(me : in out; flec : Real from Standard)
is static;
DeflectionOnTriangle(me; Surface : ThePSurface;
Index : Integer from Standard)
returns Real from Standard
is static;
UMinSingularity(me : in out; Sing : Boolean from Standard)
is static;
UMaxSingularity(me : in out; Sing : Boolean from Standard)
is static;
VMinSingularity(me : in out; Sing : Boolean from Standard)
is static;
VMaxSingularity(me : in out; Sing : Boolean from Standard)
is static;
Size(me;nbdu, nbdv : in out Integer)
---Purpose: get the size of the discretization.
is static;
Init(me:in out;
Surface : ThePSurface;
U1,V1,U2,V2 : Real from Standard)
-- Implementation function.
is static protected;
Init(me:in out;
Surface : ThePSurface;
Upars, Vpars : Array1OfReal from TColStd)
-- Implementation function.
is static protected;
NbTriangles (me)
---Purpose: Give the number of triangles in this double array of
---triangles (nbdu*nbdv*2).
returns Integer
is static;
Triangle(me; Index : in Integer;
P1,P2,P3 : out Integer)
---Purpose: Give the 3 points of the triangle of addresse Index in
-- the double array of triangles.
raises OutOfRange from Standard
is static;
TriConnex (me;
Triang : in Integer;
Pivot,Pedge : in Integer;
TriCon : out Integer;
OtherP : out Integer)
---Purpose: Give the addresse Tricon of the triangle connexe to the
-- triangle of address Triang by the edge Pivot Pedge and
-- the third point of this connexe triangle. When we are
-- on a free edge TriCon==0 but the function return the
-- value of the triangle in the other side of Pivot on
-- the free edge. Used to turn around a vertex.
returns Integer from Standard
raises OutOfRange from Standard
is static;
NbPoints (me)
---Purpose: Give the number of point in the double array of
-- triangles ((nbdu+1)*(nbdv+1)).
returns Integer from Standard
is static;
Point (me : in out ;
thePnt : in Pnt from gp;
lig, col : in Integer;
U,V : in Real from Standard)
---Purpose: Set the value of a field of the double array of
-- points.
raises OutOfRange from Standard
is static;
Point (me;
Index : in Integer;
U,V : out Real from Standard)
---Purpose: Give the point of index i in the MaTriangle.
---C++: return const &
returns Pnt from gp
raises OutOfRange from Standard
is static;
Point (me;
Index : in Integer)
---Purpose: Give the point of index i in the MaTriangle.
---C++: return const &
returns Pnt from gp
raises OutOfRange from Standard
is static;
Point (me;
Index : in Integer;
P : out Pnt from gp)
---Purpose: Give the point of index i in the MaTriangle.
raises OutOfRange from Standard
is static;
Bounding (me)
---Purpose: Give the bounding box of the MaTriangle.
---C++: return const &
returns Box from Bnd
is static;
FillBounding (me : in out)
---Purpose: Compute the array of boxes. The box <n> corresponding
-- to the triangle <n>.
is static;
ComponentsBounding
(me)
returns HArray1OfBox from Bnd
is static;
---Purpose: Give the array of boxes. The box <n> corresponding
-- to the triangle <n>.
---C++: return const &
DeflectionOverEstimation
(me)
returns Real from Standard
is static;
HasUMinSingularity
(me)
returns Boolean from Standard
is static;
HasUMaxSingularity
(me)
returns Boolean from Standard
is static;
HasVMinSingularity
(me)
returns Boolean from Standard
is static;
HasVMaxSingularity
(me)
returns Boolean from Standard
is static;
PlaneEquation (me;
Triang : in Integer from Standard;
NormalVector : out XYZ from gp;
PolarDistance : out Real from Standard)
raises OutOfRange from Standard
is static;
---Purpose: Give the plane equation of the triangle of addresse Triang.
Contain (me;
Triang : in Integer from Standard;
ThePnt : in Pnt from gp)
returns Boolean
raises OutOfRange from Standard
is static;
---Purpose: Give the plane equation of the triangle of addresse Triang.
Parameters(me; Index : Integer from Standard;
U,V : out Real from Standard)
raises OutOfRange from Standard;
-- Modified by Sergey KHROMOV - Fri Dec 7 10:04:01 2001 Begin
IsOnBound(me; Index1: Integer from Standard;
Index2: Integer from Standard)
---Purpose: This method returns true if the edge based on points with
-- indices Index1 and Index2 represents a boundary edge. It is
-- necessary to take into account the boundary deflection for
-- this edge.
returns Boolean from Standard;
GetBorderDeflection(me)
---Purpose: This method returns a border deflection.
---C++: inline
returns Real from Standard;
ComputeBorderDeflection(me; Surface : ThePSurface;
Parameter: Real from Standard;
PMin : Real from Standard;
PMax : Real from Standard;
isUIso : Boolean from Standard)
---Purpose: This method computes and returns a deflection of isoline
-- of given parameter on Surface.
returns Real from Standard
is private;
-- Modified by Sergey KHROMOV - Fri Dec 7 10:04:08 2001 End
-- Test needings :
Dump (me)
is static;
fields
nbdeltaU : Integer from Standard;
nbdeltaV : Integer from Standard;
TheBnd : Box from Bnd;
TheComponentsBnd : HArray1OfBox from Bnd;
TheDeflection : Real from Standard;
C_MyPnts : Address from Standard;
C_MyU : Address from Standard;
C_MyV : Address from Standard;
UMinSingular : Boolean from Standard;
UMaxSingular : Boolean from Standard;
VMinSingular : Boolean from Standard;
VMaxSingular : Boolean from Standard;
-- Modified by Sergey KHROMOV - Fri Dec 7 12:00:42 2001 Begin
TheBorderDeflection: Real from Standard;
C_MyIsOnBounds : Address from Standard;
-- Modified by Sergey KHROMOV - Fri Dec 7 12:00:43 2001 End
end Polyhedron;

View File

@@ -1,133 +0,0 @@
-- Created on: 1993-03-12
-- Created by: Laurent BUCHARD
-- 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.
generic class PolyhedronTool from IntCurveSurface
(ThePolyhedron as any) -- as Polyhedron from IntCurveSurface
---Purpose: Describe the signature of a polyhedral surface with
-- only triangular facets and the necessary informations
-- to compute the interferences.
uses XYZ from gp,
Pnt from gp,
Box from Bnd,
HArray1OfBox from Bnd
raises OutOfRange from Standard
is
Bounding (myclass; thePolyh : ThePolyhedron)
---Purpose: Give the bounding box of the PolyhedronTool.
---C++: return const &
---C++: inline
returns Box from Bnd;
ComponentsBounding
(myclass; thePolyh : ThePolyhedron)
---Purpose: Give the array of boxes. The box <n> corresponding
-- to the triangle <n>.
---C++: return const &
---C++: inline
returns HArray1OfBox from Bnd;
DeflectionOverEstimation
(myclass; thePolyh : ThePolyhedron)
---Purpose: Give the tolerance of the polygon.
---C++: inline
returns Real from Standard;
-- Structure needings :
NbTriangles (myclass; thePolyh : ThePolyhedron)
returns Integer from Standard;
---Purpose: Give the number of triangles in this polyedral surface.
---C++: inline
Triangle (myclass; thePolyh : ThePolyhedron;
Index : in Integer from Standard;
P1,P2,P3 : out Integer from Standard)
raises OutOfRange from Standard;
---Purpose: Give the indices of the 3 points of the triangle of
-- address Index in the PolyhedronTool.
---C++: inline
Point (myclass; thePolyh : ThePolyhedron;
Index : in Integer)
returns Pnt from gp
raises OutOfRange from Standard;
---Purpose: Give the point of index i in the polyedral surface.
---C++: return const &
---C++: inline
TriConnex (myclass; thePolyh : ThePolyhedron;
Triang : in Integer;
Pivot,Pedge : in Integer;
TriCon : out Integer;
OtherP : out Integer)
returns Integer
raises OutOfRange from Standard;
---Purpose: Give the addresse Tricon of the triangle connexe to
-- the triangle of address Triang by the edge Pivot Pedge
-- and the third point of this connexe triangle. When we
-- are on a free edge TriCon==0 but the function return
-- the value of the triangle in the other side of Pivot
-- on the free edge. Used to turn around a vertex.
---C++: inline
-- Modified by Sergey KHROMOV - Fri Dec 7 13:25:47 2001 Begin
IsOnBound(myclass; thePolyh: ThePolyhedron;
Index1 : Integer from Standard;
Index2 : Integer from Standard)
---Purpose: This method returns true if the edge based on points with
-- indices Index1 and Index2 represents a boundary edge. It is
-- necessary to take into account the boundary deflection for
-- this edge.
---C++: inline
returns Boolean from Standard;
GetBorderDeflection(myclass; thePolyh : ThePolyhedron)
---Purpose: This method returns a border deflection of the polyhedron.
---C++: inline
returns Real from Standard;
-- Modified by Sergey KHROMOV - Fri Dec 7 13:25:53 2001 End
Dump (myclass; thePolyh: ThePolyhedron);
end PolyhedronTool;

View File

@@ -1,95 +0,0 @@
-- Created on: 1993-08-18
-- Created by: Laurent BUCHARD
-- 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.
generic class QuadricCurveExactInter from IntCurveSurface (
TheSurface as any;
TheSurfaceTool as any;
TheCurve as any;
TheCurveTool as any)
---Purpose: ---------------------------------------------------------
-- --
-- find a root (u,v,w) from a starting point (w0) of the problem :--
-- Q(X(w),Y(w),Z(w)) = 0 --
-- --
-- where Q(X,Y,Z) = 0 is the implicit expression of a quadric --
-- and (X(w),Y(w),Z(w)) the point of parameter w on a parametric --
-- curve. --
----------------------------------------------------------------------
uses
Quadric from IntSurf,
SequenceOfReal from TColStd
------------------------------------------------------------
class TheQuadCurvFunc instantiates QuadricCurveFunc from IntCurveSurface (
Quadric from IntSurf,
TheCurve,
TheCurveTool);
---Purpose: Provides the signed distance function : Q(w)
-- and its first derivative dQ(w)/dw
------------------------------------------------------------
is
Create(S: TheSurface; C: TheCurve)
---Purpose:
returns QuadricCurveExactInter from IntCurveSurface;
IsDone(me)
---Purpose:
returns Boolean from Standard
is static;
NbRoots(me)
---Purpose:
returns Integer from Standard
is static;
Root(me; Index: Integer from Standard)
---Purpose:
returns Real from Standard
is static;
NbIntervals(me)
---Purpose:
returns Integer from Standard
is static;
Intervals(me; Index: Integer from Standard;
U1,U2: out Real from Standard)
---Purpose: U1 and U2 are the parameters of
-- a segment on the curve.
is static;
fields
nbpnts : Integer from Standard;
pnts : SequenceOfReal from TColStd;
nbintv : Integer from Standard;
intv : SequenceOfReal from TColStd;
end QuadricCurveExactInter;

View File

@@ -1,84 +0,0 @@
-- Created on: 1993-08-19
-- Created by: Laurent BUCHARD
-- 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.
generic class QuadricCurveFunc from IntCurveSurface (
TheQuadric as any; -- as Quadric from IntCurveSurface
TheCurve as any;
TheCurveTool as any)
inherits FunctionWithDerivative from math
---Purpose: Implements the function Q(w) and its first
-- derivative used by FunctionAllRoots to find the
-- areas where the distance between the quadric and
-- the parametric curves is less than a given
-- tolerance.
--
-- where Q(X,Y,Z) = 0 is the implicit expression of a
-- quadric and (X(w),Y(w),Z(w)) the point of parameter w on
-- a parametric curve.
--
is
Create(Q: TheQuadric; C:TheCurve)
---Purpose: Create the function.
--
returns QuadricCurveFunc from IntCurveSurface;
Value(me: in out; Param: Real from Standard; F: out Real from Standard)
---Purpose: Computes the value of the signed distance between
-- the implicit surface and the point at parameter
-- Param on the parametrised curve.
-- Value always returns True.
returns Boolean from Standard
is redefined static;
Derivative(me: in out; Param: Real from Standard;
D: out Real from Standard)
---Purpose: Computes the derivative of the previous function at
-- parameter Param.
-- Derivative always returns True.
returns Boolean from Standard
is redefined static;
Values(me: in out; Param: Real from Standard; F,D: out Real from Standard)
---Purpose: Computes the value and the derivative of the function.
-- returns True.
returns Boolean from Standard
is redefined static;
fields
myQuadric : TheQuadric;
myCurve : TheCurve;
end QuadricCurveFunc;

View File

@@ -0,0 +1,93 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_TheCSFunctionOfHInter_HeaderFile
#define _IntCurveSurface_TheCSFunctionOfHInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <gp_Pnt.hxx>
#include <Standard_Real.hxx>
#include <math_FunctionSetWithDerivatives.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Boolean.hxx>
#include <math_Vector.hxx>
class Adaptor3d_HSurface;
class Adaptor3d_HCurve;
class Adaptor3d_HSurfaceTool;
class IntCurveSurface_TheHCurveTool;
class math_Matrix;
class gp_Pnt;
class IntCurveSurface_TheCSFunctionOfHInter : public math_FunctionSetWithDerivatives
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntCurveSurface_TheCSFunctionOfHInter(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C);
Standard_EXPORT Standard_Integer NbVariables() const;
Standard_EXPORT Standard_Integer NbEquations() const;
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
Standard_EXPORT const gp_Pnt& Point() const;
Standard_EXPORT Standard_Real Root() const;
Standard_EXPORT const Handle(Adaptor3d_HSurface)& AuxillarSurface() const;
Standard_EXPORT const Handle(Adaptor3d_HCurve)& AuxillarCurve() const;
protected:
private:
Handle(Adaptor3d_HSurface) surface;
Handle(Adaptor3d_HCurve) curve;
gp_Pnt p;
Standard_Real f;
};
#endif // _IntCurveSurface_TheCSFunctionOfHInter_HeaderFile

View File

@@ -0,0 +1,38 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_TheCSFunctionOfHInter.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HCurve.hxx>
#include <Adaptor3d_HSurfaceTool.hxx>
#include <IntCurveSurface_TheHCurveTool.hxx>
#include <math_Matrix.hxx>
#include <gp_Pnt.hxx>
#define ThePSurface Handle(Adaptor3d_HSurface)
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define TheCurve Handle(Adaptor3d_HCurve)
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
#define TheCurveTool IntCurveSurface_TheHCurveTool
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#define IntImp_ZerCSParFunc IntCurveSurface_TheCSFunctionOfHInter
#define IntImp_ZerCSParFunc_hxx <IntCurveSurface_TheCSFunctionOfHInter.hxx>
#include <IntImp_ZerCSParFunc.gxx>

View File

@@ -0,0 +1,94 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_TheExactHInter_HeaderFile
#define _IntCurveSurface_TheExactHInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntCurveSurface_TheCSFunctionOfHInter.hxx>
#include <Standard_Real.hxx>
class StdFail_NotDone;
class Standard_DomainError;
class Adaptor3d_HSurface;
class Adaptor3d_HSurfaceTool;
class Adaptor3d_HCurve;
class IntCurveSurface_TheHCurveTool;
class IntCurveSurface_TheCSFunctionOfHInter;
class math_FunctionSetRoot;
class gp_Pnt;
class IntCurveSurface_TheExactHInter
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntCurveSurface_TheExactHInter(const Standard_Real U, const Standard_Real V, const Standard_Real W, const IntCurveSurface_TheCSFunctionOfHInter& F, const Standard_Real TolTangency, const Standard_Real MarginCoef = 0.0);
Standard_EXPORT IntCurveSurface_TheExactHInter(const IntCurveSurface_TheCSFunctionOfHInter& F, const Standard_Real TolTangency);
Standard_EXPORT void Perform (const Standard_Real U, const Standard_Real V, const Standard_Real W, math_FunctionSetRoot& Rsnld, const Standard_Real u0, const Standard_Real v0, const Standard_Real u1, const Standard_Real v1, const Standard_Real w0, const Standard_Real w1);
Standard_EXPORT Standard_Boolean IsDone() const;
Standard_EXPORT Standard_Boolean IsEmpty() const;
Standard_EXPORT const gp_Pnt& Point() const;
Standard_EXPORT Standard_Real ParameterOnCurve() const;
Standard_EXPORT void ParameterOnSurface (Standard_Real& U, Standard_Real& V) const;
Standard_EXPORT IntCurveSurface_TheCSFunctionOfHInter& Function();
protected:
private:
Standard_Boolean done;
Standard_Boolean empty;
IntCurveSurface_TheCSFunctionOfHInter myFunction;
Standard_Real w;
Standard_Real u;
Standard_Real v;
Standard_Real tol;
};
#endif // _IntCurveSurface_TheExactHInter_HeaderFile

View File

@@ -0,0 +1,43 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_TheExactHInter.hxx>
#include <StdFail_NotDone.hxx>
#include <Standard_DomainError.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HSurfaceTool.hxx>
#include <Adaptor3d_HCurve.hxx>
#include <IntCurveSurface_TheHCurveTool.hxx>
#include <IntCurveSurface_TheCSFunctionOfHInter.hxx>
#include <math_FunctionSetRoot.hxx>
#include <gp_Pnt.hxx>
#define ThePSurface Handle(Adaptor3d_HSurface)
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define TheCurve Handle(Adaptor3d_HCurve)
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
#define TheCurveTool IntCurveSurface_TheHCurveTool
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#define TheFunction IntCurveSurface_TheCSFunctionOfHInter
#define TheFunction_hxx <IntCurveSurface_TheCSFunctionOfHInter.hxx>
#define IntImp_IntCS IntCurveSurface_TheExactHInter
#define IntImp_IntCS_hxx <IntCurveSurface_TheExactHInter.hxx>
#include <IntImp_IntCS.gxx>

View File

@@ -0,0 +1,138 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_TheHCurveTool_HeaderFile
#define _IntCurveSurface_TheHCurveTool_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Real.hxx>
#include <GeomAbs_Shape.hxx>
#include <Standard_Integer.hxx>
#include <TColStd_Array1OfReal.hxx>
#include <Standard_Boolean.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <GeomAbs_CurveType.hxx>
#include <gp_Lin.hxx>
#include <gp_Circ.hxx>
#include <gp_Elips.hxx>
#include <gp_Hypr.hxx>
#include <gp_Parab.hxx>
#include <TColStd_HArray1OfReal.hxx>
class Standard_OutOfRange;
class Standard_NoSuchObject;
class Standard_DomainError;
class Adaptor3d_HCurve;
class gp_Pnt;
class gp_Vec;
class Geom_BezierCurve;
class Geom_BSplineCurve;
class IntCurveSurface_TheHCurveTool
{
public:
DEFINE_STANDARD_ALLOC
static Standard_Real FirstParameter (const Handle(Adaptor3d_HCurve)& C);
static Standard_Real LastParameter (const Handle(Adaptor3d_HCurve)& C);
static GeomAbs_Shape Continuity (const Handle(Adaptor3d_HCurve)& C);
static Standard_Integer NbIntervals (const Handle(Adaptor3d_HCurve)& C, const GeomAbs_Shape S);
static void Intervals (const Handle(Adaptor3d_HCurve)& C, TColStd_Array1OfReal& T, const GeomAbs_Shape S);
static Standard_Boolean IsClosed (const Handle(Adaptor3d_HCurve)& C);
static Standard_Boolean IsPeriodic (const Handle(Adaptor3d_HCurve)& C);
static Standard_Real Period (const Handle(Adaptor3d_HCurve)& C);
static gp_Pnt Value (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U);
static void D0 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P);
static void D1 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V);
static void D2 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2);
static void D3 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3);
static gp_Vec DN (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, const Standard_Integer N);
static Standard_Real Resolution (const Handle(Adaptor3d_HCurve)& C, const Standard_Real R3d);
static GeomAbs_CurveType GetType (const Handle(Adaptor3d_HCurve)& C);
static gp_Lin Line (const Handle(Adaptor3d_HCurve)& C);
static gp_Circ Circle (const Handle(Adaptor3d_HCurve)& C);
static gp_Elips Ellipse (const Handle(Adaptor3d_HCurve)& C);
static gp_Hypr Hyperbola (const Handle(Adaptor3d_HCurve)& C);
static gp_Parab Parabola (const Handle(Adaptor3d_HCurve)& C);
static Handle(Geom_BezierCurve) Bezier (const Handle(Adaptor3d_HCurve)& C);
static Handle(Geom_BSplineCurve) BSpline (const Handle(Adaptor3d_HCurve)& C);
Standard_EXPORT static Standard_Integer NbSamples (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U0, const Standard_Real U1);
Standard_EXPORT static void SamplePars (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U0, const Standard_Real U1, const Standard_Real Defl, const Standard_Integer NbMin, Handle(TColStd_HArray1OfReal)& Pars);
protected:
private:
};
#define CurveGen Handle(Adaptor3d_HCurve)
#define CurveGen_hxx <Adaptor3d_HCurve.hxx>
#define IntCurveSurface_HCurveTool IntCurveSurface_TheHCurveTool
#define IntCurveSurface_HCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#include <IntCurveSurface_HCurveTool.lxx>
#undef CurveGen
#undef CurveGen_hxx
#undef IntCurveSurface_HCurveTool
#undef IntCurveSurface_HCurveTool_hxx
#endif // _IntCurveSurface_TheHCurveTool_HeaderFile

View File

@@ -0,0 +1,34 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_TheHCurveTool.hxx>
#include <Standard_OutOfRange.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_DomainError.hxx>
#include <Adaptor3d_HCurve.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <Geom_BezierCurve.hxx>
#include <Geom_BSplineCurve.hxx>
#define CurveGen Handle(Adaptor3d_HCurve)
#define CurveGen_hxx <Adaptor3d_HCurve.hxx>
#define IntCurveSurface_HCurveTool IntCurveSurface_TheHCurveTool
#define IntCurveSurface_HCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#include <IntCurveSurface_HCurveTool.gxx>

View File

@@ -0,0 +1,106 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_TheInterferenceOfHInter_HeaderFile
#define _IntCurveSurface_TheInterferenceOfHInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Intf_Interference.hxx>
#include <Intf_Array1OfLin.hxx>
#include <Standard_Real.hxx>
class IntCurveSurface_ThePolygonOfHInter;
class IntCurveSurface_ThePolygonToolOfHInter;
class IntCurveSurface_ThePolyhedronOfHInter;
class IntCurveSurface_ThePolyhedronToolOfHInter;
class gp_Lin;
class Bnd_BoundSortBox;
class gp_Pnt;
class gp_XYZ;
class IntCurveSurface_TheInterferenceOfHInter : public Intf_Interference
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter();
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const gp_Lin& theLin, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const Intf_Array1OfLin& theLins, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
Standard_EXPORT void Perform (const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
Standard_EXPORT void Perform (const gp_Lin& theLin, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
Standard_EXPORT void Perform (const Intf_Array1OfLin& theLins, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const gp_Lin& theLin, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const Intf_Array1OfLin& theLins, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
Standard_EXPORT void Perform (const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
Standard_EXPORT void Perform (const gp_Lin& theLin, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
Standard_EXPORT void Perform (const Intf_Array1OfLin& theLins, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
Standard_EXPORT void Interference (const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
Standard_EXPORT void Interference (const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
protected:
private:
Standard_EXPORT void Intersect (const gp_Pnt& BegO, const gp_Pnt& EndO, const Standard_Boolean Infinite, const Standard_Integer TTri, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
Standard_EXPORT void Intersect (const gp_Pnt& BegO, const gp_Pnt& EndO, const Standard_Boolean Infinite, const Standard_Integer TTri, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const gp_XYZ& TriNormal, const Standard_Real TriDp, const Standard_Real dBegTri, const Standard_Real dEndTri);
Standard_Boolean BeginOfClosedPolygon;
Standard_Integer iLin;
};
#endif // _IntCurveSurface_TheInterferenceOfHInter_HeaderFile

View File

@@ -0,0 +1,40 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_TheInterferenceOfHInter.hxx>
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
#include <IntCurveSurface_ThePolygonToolOfHInter.hxx>
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
#include <gp_Lin.hxx>
#include <Bnd_BoundSortBox.hxx>
#include <gp_Pnt.hxx>
#include <gp_XYZ.hxx>
#define Polygon3d IntCurveSurface_ThePolygonOfHInter
#define Polygon3d_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
#define ToolPolygon3d IntCurveSurface_ThePolygonToolOfHInter
#define ToolPolygon3d_hxx <IntCurveSurface_ThePolygonToolOfHInter.hxx>
#define Polyhedron IntCurveSurface_ThePolyhedronOfHInter
#define Polyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#define ToolPolyh IntCurveSurface_ThePolyhedronToolOfHInter
#define ToolPolyh_hxx <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
#define Intf_InterferencePolygonPolyhedron IntCurveSurface_TheInterferenceOfHInter
#define Intf_InterferencePolygonPolyhedron_hxx <IntCurveSurface_TheInterferenceOfHInter.hxx>
#include <Intf_InterferencePolygonPolyhedron.gxx>

View File

@@ -0,0 +1,124 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_ThePolygonOfHInter_HeaderFile
#define _IntCurveSurface_ThePolygonOfHInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Bnd_Box.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <TColgp_Array1OfPnt.hxx>
#include <Standard_Boolean.hxx>
#include <TColStd_HArray1OfReal.hxx>
#include <TColStd_Array1OfReal.hxx>
class Standard_OutOfRange;
class Adaptor3d_HCurve;
class IntCurveSurface_TheHCurveTool;
class Bnd_Box;
class gp_Pnt;
class IntCurveSurface_ThePolygonOfHInter
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntCurveSurface_ThePolygonOfHInter(const Handle(Adaptor3d_HCurve)& Curve, const Standard_Integer NbPnt);
Standard_EXPORT IntCurveSurface_ThePolygonOfHInter(const Handle(Adaptor3d_HCurve)& Curve, const Standard_Real U1, const Standard_Real U2, const Standard_Integer NbPnt);
Standard_EXPORT IntCurveSurface_ThePolygonOfHInter(const Handle(Adaptor3d_HCurve)& Curve, const TColStd_Array1OfReal& Upars);
const Bnd_Box& Bounding() const;
Standard_Real DeflectionOverEstimation() const;
void SetDeflectionOverEstimation (const Standard_Real x);
void Closed (const Standard_Boolean clos);
Standard_Boolean Closed() const;
Standard_Integer NbSegments() const;
const gp_Pnt& BeginOfSeg (const Standard_Integer Index) const;
const gp_Pnt& EndOfSeg (const Standard_Integer Index) const;
Standard_Real InfParameter() const;
Standard_Real SupParameter() const;
Standard_EXPORT Standard_Real ApproxParamOnCurve (const Standard_Integer Index, const Standard_Real ParamOnLine) const;
Standard_EXPORT void Dump() const;
protected:
Standard_EXPORT void Init (const Handle(Adaptor3d_HCurve)& Curve);
Standard_EXPORT void Init (const Handle(Adaptor3d_HCurve)& Curve, const TColStd_Array1OfReal& Upars);
private:
Bnd_Box TheBnd;
Standard_Real TheDeflection;
Standard_Integer NbPntIn;
TColgp_Array1OfPnt ThePnts;
Standard_Boolean ClosedPolygon;
Standard_Real Binf;
Standard_Real Bsup;
Handle(TColStd_HArray1OfReal) myParams;
};
#define TheCurve Handle(Adaptor3d_HCurve)
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
#define TheCurveTool IntCurveSurface_TheHCurveTool
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#define IntCurveSurface_Polygon IntCurveSurface_ThePolygonOfHInter
#define IntCurveSurface_Polygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
#include <IntCurveSurface_Polygon.lxx>
#undef TheCurve
#undef TheCurve_hxx
#undef TheCurveTool
#undef TheCurveTool_hxx
#undef IntCurveSurface_Polygon
#undef IntCurveSurface_Polygon_hxx
#endif // _IntCurveSurface_ThePolygonOfHInter_HeaderFile

View File

@@ -0,0 +1,33 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
#include <Standard_OutOfRange.hxx>
#include <Adaptor3d_HCurve.hxx>
#include <IntCurveSurface_TheHCurveTool.hxx>
#include <Bnd_Box.hxx>
#include <gp_Pnt.hxx>
#define TheCurve Handle(Adaptor3d_HCurve)
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
#define TheCurveTool IntCurveSurface_TheHCurveTool
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#define IntCurveSurface_Polygon IntCurveSurface_ThePolygonOfHInter
#define IntCurveSurface_Polygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
#include <IntCurveSurface_Polygon.gxx>

View File

@@ -0,0 +1,95 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_ThePolygonToolOfHInter_HeaderFile
#define _IntCurveSurface_ThePolygonToolOfHInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
class Standard_OutOfRange;
class gp_Pnt;
class IntCurveSurface_ThePolygonOfHInter;
class Bnd_Box;
class IntCurveSurface_ThePolygonToolOfHInter
{
public:
DEFINE_STANDARD_ALLOC
static const Bnd_Box& Bounding (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
static Standard_Real DeflectionOverEstimation (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
static Standard_Boolean Closed (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
static Standard_Integer NbSegments (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
static const gp_Pnt& BeginOfSeg (const IntCurveSurface_ThePolygonOfHInter& thePolygon, const Standard_Integer Index);
static const gp_Pnt& EndOfSeg (const IntCurveSurface_ThePolygonOfHInter& thePolygon, const Standard_Integer Index);
Standard_EXPORT static void Dump (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
protected:
private:
};
#define ThePoint gp_Pnt
#define ThePoint_hxx <gp_Pnt.hxx>
#define ThePolygon IntCurveSurface_ThePolygonOfHInter
#define ThePolygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
#define TheBoundingBox Bnd_Box
#define TheBoundingBox_hxx <Bnd_Box.hxx>
#define IntCurveSurface_PolygonTool IntCurveSurface_ThePolygonToolOfHInter
#define IntCurveSurface_PolygonTool_hxx <IntCurveSurface_ThePolygonToolOfHInter.hxx>
#include <IntCurveSurface_PolygonTool.lxx>
#undef ThePoint
#undef ThePoint_hxx
#undef ThePolygon
#undef ThePolygon_hxx
#undef TheBoundingBox
#undef TheBoundingBox_hxx
#undef IntCurveSurface_PolygonTool
#undef IntCurveSurface_PolygonTool_hxx
#endif // _IntCurveSurface_ThePolygonToolOfHInter_HeaderFile

View File

@@ -0,0 +1,34 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_ThePolygonToolOfHInter.hxx>
#include <Standard_OutOfRange.hxx>
#include <gp_Pnt.hxx>
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
#include <Bnd_Box.hxx>
#define ThePoint gp_Pnt
#define ThePoint_hxx <gp_Pnt.hxx>
#define ThePolygon IntCurveSurface_ThePolygonOfHInter
#define ThePolygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
#define TheBoundingBox Bnd_Box
#define TheBoundingBox_hxx <Bnd_Box.hxx>
#define IntCurveSurface_PolygonTool IntCurveSurface_ThePolygonToolOfHInter
#define IntCurveSurface_PolygonTool_hxx <IntCurveSurface_ThePolygonToolOfHInter.hxx>
#include <IntCurveSurface_PolygonTool.gxx>

View File

@@ -0,0 +1,171 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_ThePolyhedronOfHInter_HeaderFile
#define _IntCurveSurface_ThePolyhedronOfHInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
#include <Bnd_Box.hxx>
#include <Bnd_HArray1OfBox.hxx>
#include <Standard_Real.hxx>
#include <Standard_Address.hxx>
#include <Standard_Boolean.hxx>
#include <TColStd_Array1OfReal.hxx>
class Standard_OutOfRange;
class Adaptor3d_HSurface;
class Adaptor3d_HSurfaceTool;
class gp_Pnt;
class Bnd_Box;
class gp_XYZ;
class IntCurveSurface_ThePolyhedronOfHInter
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntCurveSurface_ThePolyhedronOfHInter(const Handle(Adaptor3d_HSurface)& Surface, const Standard_Integer nbdU, const Standard_Integer nbdV, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
Standard_EXPORT IntCurveSurface_ThePolyhedronOfHInter(const Handle(Adaptor3d_HSurface)& Surface, const TColStd_Array1OfReal& Upars, const TColStd_Array1OfReal& Vpars);
Standard_EXPORT void Destroy();
~IntCurveSurface_ThePolyhedronOfHInter()
{
Destroy();
}
Standard_EXPORT void DeflectionOverEstimation (const Standard_Real flec);
Standard_EXPORT Standard_Real DeflectionOnTriangle (const Handle(Adaptor3d_HSurface)& Surface, const Standard_Integer Index) const;
Standard_EXPORT void UMinSingularity (const Standard_Boolean Sing);
Standard_EXPORT void UMaxSingularity (const Standard_Boolean Sing);
Standard_EXPORT void VMinSingularity (const Standard_Boolean Sing);
Standard_EXPORT void VMaxSingularity (const Standard_Boolean Sing);
Standard_EXPORT void Size (Standard_Integer& nbdu, Standard_Integer& nbdv) const;
Standard_EXPORT Standard_Integer NbTriangles() const;
Standard_EXPORT void Triangle (const Standard_Integer Index, Standard_Integer& P1, Standard_Integer& P2, Standard_Integer& P3) const;
Standard_EXPORT Standard_Integer TriConnex (const Standard_Integer Triang, const Standard_Integer Pivot, const Standard_Integer Pedge, Standard_Integer& TriCon, Standard_Integer& OtherP) const;
Standard_EXPORT Standard_Integer NbPoints() const;
Standard_EXPORT void Point (const gp_Pnt& thePnt, const Standard_Integer lig, const Standard_Integer col, const Standard_Real U, const Standard_Real V);
Standard_EXPORT const gp_Pnt& Point (const Standard_Integer Index, Standard_Real& U, Standard_Real& V) const;
Standard_EXPORT const gp_Pnt& Point (const Standard_Integer Index) const;
Standard_EXPORT void Point (const Standard_Integer Index, gp_Pnt& P) const;
Standard_EXPORT const Bnd_Box& Bounding() const;
Standard_EXPORT void FillBounding();
Standard_EXPORT const Handle(Bnd_HArray1OfBox)& ComponentsBounding() const;
Standard_EXPORT Standard_Real DeflectionOverEstimation() const;
Standard_EXPORT Standard_Boolean HasUMinSingularity() const;
Standard_EXPORT Standard_Boolean HasUMaxSingularity() const;
Standard_EXPORT Standard_Boolean HasVMinSingularity() const;
Standard_EXPORT Standard_Boolean HasVMaxSingularity() const;
Standard_EXPORT void PlaneEquation (const Standard_Integer Triang, gp_XYZ& NormalVector, Standard_Real& PolarDistance) const;
Standard_EXPORT Standard_Boolean Contain (const Standard_Integer Triang, const gp_Pnt& ThePnt) const;
Standard_EXPORT void Parameters (const Standard_Integer Index, Standard_Real& U, Standard_Real& V) const;
Standard_EXPORT Standard_Boolean IsOnBound (const Standard_Integer Index1, const Standard_Integer Index2) const;
Standard_Real GetBorderDeflection() const;
Standard_EXPORT void Dump() const;
protected:
Standard_EXPORT void Init (const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
Standard_EXPORT void Init (const Handle(Adaptor3d_HSurface)& Surface, const TColStd_Array1OfReal& Upars, const TColStd_Array1OfReal& Vpars);
private:
Standard_EXPORT Standard_Real ComputeBorderDeflection (const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real Parameter, const Standard_Real PMin, const Standard_Real PMax, const Standard_Boolean isUIso) const;
Standard_Integer nbdeltaU;
Standard_Integer nbdeltaV;
Bnd_Box TheBnd;
Handle(Bnd_HArray1OfBox) TheComponentsBnd;
Standard_Real TheDeflection;
Standard_Address C_MyPnts;
Standard_Address C_MyU;
Standard_Address C_MyV;
Standard_Boolean UMinSingular;
Standard_Boolean UMaxSingular;
Standard_Boolean VMinSingular;
Standard_Boolean VMaxSingular;
Standard_Real TheBorderDeflection;
Standard_Address C_MyIsOnBounds;
};
#define ThePSurface Handle(Adaptor3d_HSurface)
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define IntCurveSurface_Polyhedron IntCurveSurface_ThePolyhedronOfHInter
#define IntCurveSurface_Polyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#include <IntCurveSurface_Polyhedron.lxx>
#undef ThePSurface
#undef ThePSurface_hxx
#undef ThePSurfaceTool
#undef ThePSurfaceTool_hxx
#undef IntCurveSurface_Polyhedron
#undef IntCurveSurface_Polyhedron_hxx
#endif // _IntCurveSurface_ThePolyhedronOfHInter_HeaderFile

View File

@@ -0,0 +1,34 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#include <Standard_OutOfRange.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HSurfaceTool.hxx>
#include <gp_Pnt.hxx>
#include <Bnd_Box.hxx>
#include <gp_XYZ.hxx>
#define ThePSurface Handle(Adaptor3d_HSurface)
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define IntCurveSurface_Polyhedron IntCurveSurface_ThePolyhedronOfHInter
#define IntCurveSurface_Polyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#include <IntCurveSurface_Polyhedron.gxx>

View File

@@ -0,0 +1,94 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_ThePolyhedronToolOfHInter_HeaderFile
#define _IntCurveSurface_ThePolyhedronToolOfHInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Bnd_HArray1OfBox.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Boolean.hxx>
class Standard_OutOfRange;
class IntCurveSurface_ThePolyhedronOfHInter;
class Bnd_Box;
class gp_Pnt;
class IntCurveSurface_ThePolyhedronToolOfHInter
{
public:
DEFINE_STANDARD_ALLOC
static const Bnd_Box& Bounding (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
static const Handle(Bnd_HArray1OfBox)& ComponentsBounding (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
static Standard_Real DeflectionOverEstimation (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
static Standard_Integer NbTriangles (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
static void Triangle (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const Standard_Integer Index, Standard_Integer& P1, Standard_Integer& P2, Standard_Integer& P3);
static const gp_Pnt& Point (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const Standard_Integer Index);
static Standard_Integer TriConnex (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const Standard_Integer Triang, const Standard_Integer Pivot, const Standard_Integer Pedge, Standard_Integer& TriCon, Standard_Integer& OtherP);
static Standard_Boolean IsOnBound (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const Standard_Integer Index1, const Standard_Integer Index2);
static Standard_Real GetBorderDeflection (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
Standard_EXPORT static void Dump (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
protected:
private:
};
#define ThePolyhedron IntCurveSurface_ThePolyhedronOfHInter
#define ThePolyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#define IntCurveSurface_PolyhedronTool IntCurveSurface_ThePolyhedronToolOfHInter
#define IntCurveSurface_PolyhedronTool_hxx <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
#include <IntCurveSurface_PolyhedronTool.lxx>
#undef ThePolyhedron
#undef ThePolyhedron_hxx
#undef IntCurveSurface_PolyhedronTool
#undef IntCurveSurface_PolyhedronTool_hxx
#endif // _IntCurveSurface_ThePolyhedronToolOfHInter_HeaderFile

View File

@@ -0,0 +1,30 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
#include <Standard_OutOfRange.hxx>
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#include <Bnd_Box.hxx>
#include <gp_Pnt.hxx>
#define ThePolyhedron IntCurveSurface_ThePolyhedronOfHInter
#define ThePolyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
#define IntCurveSurface_PolyhedronTool IntCurveSurface_ThePolyhedronToolOfHInter
#define IntCurveSurface_PolyhedronTool_hxx <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
#include <IntCurveSurface_PolyhedronTool.gxx>

View File

@@ -0,0 +1,82 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_TheQuadCurvExactHInter_HeaderFile
#define _IntCurveSurface_TheQuadCurvExactHInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
#include <TColStd_SequenceOfReal.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
class Adaptor3d_HSurface;
class Adaptor3d_HSurfaceTool;
class Adaptor3d_HCurve;
class IntCurveSurface_TheHCurveTool;
class IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter;
class IntCurveSurface_TheQuadCurvExactHInter
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntCurveSurface_TheQuadCurvExactHInter(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C);
Standard_EXPORT Standard_Boolean IsDone() const;
Standard_EXPORT Standard_Integer NbRoots() const;
Standard_EXPORT Standard_Real Root (const Standard_Integer Index) const;
Standard_EXPORT Standard_Integer NbIntervals() const;
Standard_EXPORT void Intervals (const Standard_Integer Index, Standard_Real& U1, Standard_Real& U2) const;
protected:
private:
Standard_Integer nbpnts;
TColStd_SequenceOfReal pnts;
Standard_Integer nbintv;
TColStd_SequenceOfReal intv;
};
#endif // _IntCurveSurface_TheQuadCurvExactHInter_HeaderFile

View File

@@ -0,0 +1,39 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_TheQuadCurvExactHInter.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HSurfaceTool.hxx>
#include <Adaptor3d_HCurve.hxx>
#include <IntCurveSurface_TheHCurveTool.hxx>
#include <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
#define TheSurface Handle(Adaptor3d_HSurface)
#define TheSurface_hxx <Adaptor3d_HSurface.hxx>
#define TheSurfaceTool Adaptor3d_HSurfaceTool
#define TheSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define TheCurve Handle(Adaptor3d_HCurve)
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
#define TheCurveTool IntCurveSurface_TheHCurveTool
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#define IntCurveSurface_TheQuadCurvFunc IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter
#define IntCurveSurface_TheQuadCurvFunc_hxx <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
#define IntCurveSurface_QuadricCurveExactInter IntCurveSurface_TheQuadCurvExactHInter
#define IntCurveSurface_QuadricCurveExactInter_hxx <IntCurveSurface_TheQuadCurvExactHInter.hxx>
#include <IntCurveSurface_QuadricCurveExactInter.gxx>

View File

@@ -0,0 +1,74 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter_HeaderFile
#define _IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <IntSurf_Quadric.hxx>
#include <math_FunctionWithDerivative.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
class Adaptor3d_HCurve;
class IntSurf_Quadric;
class IntCurveSurface_TheHCurveTool;
class IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter : public math_FunctionWithDerivative
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter(const IntSurf_Quadric& Q, const Handle(Adaptor3d_HCurve)& C);
Standard_EXPORT Standard_Boolean Value (const Standard_Real Param, Standard_Real& F) Standard_OVERRIDE;
Standard_EXPORT Standard_Boolean Derivative (const Standard_Real Param, Standard_Real& D) Standard_OVERRIDE;
Standard_EXPORT Standard_Boolean Values (const Standard_Real Param, Standard_Real& F, Standard_Real& D) Standard_OVERRIDE;
protected:
private:
IntSurf_Quadric myQuadric;
Handle(Adaptor3d_HCurve) myCurve;
};
#endif // _IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter_HeaderFile

View File

@@ -0,0 +1,33 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#include <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
#include <Adaptor3d_HCurve.hxx>
#include <IntSurf_Quadric.hxx>
#include <IntCurveSurface_TheHCurveTool.hxx>
#define TheQuadric IntSurf_Quadric
#define TheQuadric_hxx <IntSurf_Quadric.hxx>
#define TheCurve Handle(Adaptor3d_HCurve)
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
#define TheCurveTool IntCurveSurface_TheHCurveTool
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
#define IntCurveSurface_QuadricCurveFunc IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter
#define IntCurveSurface_QuadricCurveFunc_hxx <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
#include <IntCurveSurface_QuadricCurveFunc.gxx>

View File

@@ -0,0 +1,45 @@
// Created on: 1993-04-07
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntCurveSurface_TransitionOnCurve_HeaderFile
#define _IntCurveSurface_TransitionOnCurve_HeaderFile
//! \ Uo ^ \ U1 ^
//! \ | n \ | n
//! Surf ====\======|=== ====\======|===
//! \ . \ .
//! \ . \ .
//! U1 \ . Uo \ .
//!
//! ( In ) ( Out )
//!
//! \ /
//! \ /
//! \ /
//! \ /
//! Surf =====-----=====
//!
//! ( Tangent )
//! Crb and Surf are C1
enum IntCurveSurface_TransitionOnCurve
{
IntCurveSurface_Tangent,
IntCurveSurface_In,
IntCurveSurface_Out
};
#endif // _IntCurveSurface_TransitionOnCurve_HeaderFile