1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +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,3 +1,27 @@
IntPatch_ALine.cxx
IntPatch_ALine.hxx
IntPatch_ALine.lxx
IntPatch_ALineToWLine.cxx
IntPatch_ALineToWLine.hxx
IntPatch_ArcFunction.cxx
IntPatch_ArcFunction.hxx
IntPatch_ArcFunction.lxx
IntPatch_CSFunction.cxx
IntPatch_CSFunction.hxx
IntPatch_CurvIntSurf.hxx
IntPatch_CurvIntSurf_0.cxx
IntPatch_GLine.cxx
IntPatch_GLine.hxx
IntPatch_GLine.lxx
IntPatch_HCurve2dTool.cxx
IntPatch_HCurve2dTool.hxx
IntPatch_HCurve2dTool.lxx
IntPatch_HInterTool.cxx
IntPatch_HInterTool.hxx
IntPatch_HInterTool.lxx
IntPatch_ImpImpIntersection.cxx
IntPatch_ImpImpIntersection.hxx
IntPatch_ImpImpIntersection.lxx
IntPatch_ImpImpIntersection_0.gxx
IntPatch_ImpImpIntersection_1.gxx
IntPatch_ImpImpIntersection_2.gxx
@@ -5,5 +29,77 @@ IntPatch_ImpImpIntersection_3.gxx
IntPatch_ImpImpIntersection_4.gxx
IntPatch_ImpImpIntersection_5.gxx
IntPatch_ImpImpIntersection_6.gxx
IntPatch_SequenceOfPoint.hxx
IntPatch_ImpPrmIntersection.cxx
IntPatch_ImpPrmIntersection.hxx
IntPatch_ImpPrmIntersection.lxx
IntPatch_InterferencePolyhedron.cxx
IntPatch_InterferencePolyhedron.hxx
IntPatch_Intersection.cxx
IntPatch_Intersection.hxx
IntPatch_Intersection.lxx
IntPatch_IType.hxx
IntPatch_Line.cxx
IntPatch_Line.hxx
IntPatch_Line.lxx
IntPatch_LineConstructor.cxx
IntPatch_LineConstructor.hxx
IntPatch_Point.cxx
IntPatch_Point.hxx
IntPatch_Point.lxx
IntPatch_PointLine.cxx
IntPatch_PointLine.hxx
IntPatch_PolyArc.cxx
IntPatch_PolyArc.hxx
IntPatch_Polygo.cxx
IntPatch_Polygo.hxx
IntPatch_Polygo.lxx
IntPatch_Polyhedron.cxx
IntPatch_Polyhedron.hxx
IntPatch_PolyhedronTool.cxx
IntPatch_PolyhedronTool.hxx
IntPatch_PolyhedronTool.lxx
IntPatch_PolyLine.cxx
IntPatch_PolyLine.hxx
IntPatch_PrmPrmIntersection.cxx
IntPatch_PrmPrmIntersection.hxx
IntPatch_PrmPrmIntersection.lxx
IntPatch_PrmPrmIntersection_T3Bits.cxx
IntPatch_PrmPrmIntersection_T3Bits.hxx
IntPatch_PrmPrmIntersection_T3Bits.lxx
IntPatch_RLine.cxx
IntPatch_RLine.hxx
IntPatch_RLine.lxx
IntPatch_RstInt.cxx
IntPatch_RstInt.hxx
IntPatch_SearchPnt.hxx
IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx
IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking_0.cxx
IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx
IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds_0.cxx
IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx
IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds_0.cxx
IntPatch_SequenceOfIWLineOfTheIWalking.hxx
IntPatch_SequenceOfIWLineOfTheIWalking_0.cxx
IntPatch_SequenceOfLine.hxx
IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx
IntPatch_SequenceOfPathPointOfTheSOnBounds_0.cxx
IntPatch_SequenceOfPoint.hxx
IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx
IntPatch_SequenceOfSegmentOfTheSOnBounds_0.cxx
IntPatch_TheIWalking.hxx
IntPatch_TheIWalking_0.cxx
IntPatch_TheIWLineOfTheIWalking.hxx
IntPatch_TheIWLineOfTheIWalking_0.cxx
IntPatch_ThePathPointOfTheSOnBounds.hxx
IntPatch_ThePathPointOfTheSOnBounds_0.cxx
IntPatch_TheSearchInside.hxx
IntPatch_TheSearchInside_0.cxx
IntPatch_TheSegmentOfTheSOnBounds.hxx
IntPatch_TheSegmentOfTheSOnBounds_0.cxx
IntPatch_TheSOnBounds.hxx
IntPatch_TheSOnBounds_0.cxx
IntPatch_TheSurfFunction.hxx
IntPatch_TheSurfFunction_0.cxx
IntPatch_WLine.cxx
IntPatch_WLine.hxx
IntPatch_WLine.lxx

View File

@@ -1,155 +0,0 @@
-- Created on: 1992-05-06
-- Created by: Jacques GOUSSARD
-- 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.
package IntPatch
---Purpose: Intersection between two patches.
-- The class PatchIntersection implements the algorithmes
-- of intersection.
-- The classes IntPoint, PointOnDomain, Line, ILin, a.s.o...
-- describe the results of the algorithmes.
---Level: Internal
--
-- All the methods of the classes of this package are Internal.
--
uses Standard, MMgt, StdFail, GeomAbs, TopAbs, TCollection, TColStd, math,
gp, TColgp, IntAna,IntSurf, IntImp, IntStart, IntWalk, Bnd, Intf,
Adaptor2d,Adaptor3d, Geom2d, Geom, Precision
is
class ALineToWLine;
class Point;
deferred class Line;
class ALine; -- inherits Line from IntPatch
class GLine; -- inherits Line from IntPatch
deferred class PointLine; -- inherits Line from IntPatch
class RLine; -- inherits PointLine from IntPatch
class WLine; -- inherits PointLine from IntPatch
class ArcFunction;
class InterferencePolyhedron;
-- implicite/implicite
class ImpImpIntersection;
class CSFunction; -- inherits FunctionSetWithDerivatives
-- commun implicite/parametree et parametree/parametree
deferred class Polygo;
class PolyLine; -- inherits Polygo from IntPatch
class PolyArc; -- inherits Polygo from IntPatch
class RstInt;
-- implicite/parametre
class ImpPrmIntersection;
-- parametre/parametre
class Polyhedron;
class PolyhedronTool;
class PrmPrmIntersection_T3Bits;
class PrmPrmIntersection;
-- algorithme general
enumeration IType is
-- type of the line of intersection
Lin, -- pour conflit avec deferred class Line
Circle,
Ellipse,
Parabola,
Hyperbola,
Analytic,
Walking,
Restriction
end IType;
class HInterTool;
class HCurve2dTool;
class LineConstructor;
class Intersection;
imported SequenceOfPoint;
imported SequenceOfLine;
class TheSurfFunction instantiates ZerImpFunc from IntImp
(HSurface from Adaptor3d,
HSurfaceTool from Adaptor3d,
Quadric from IntSurf,
QuadricTool from IntSurf);
class TheIWalking instantiates IWalking from IntWalk
(PathPoint from IntSurf,
PathPointTool from IntSurf,
SequenceOfPathPoint from IntSurf,
InteriorPoint from IntSurf,
InteriorPointTool from IntSurf,
SequenceOfInteriorPoint from IntSurf,
HSurface from Adaptor3d,
HSurfaceTool from Adaptor3d,
TheSurfFunction from IntPatch);
class TheSearchInside instantiates SearchInside from IntStart
(HSurface from Adaptor3d,
HSurfaceTool from Adaptor3d,
TopolTool from Adaptor3d,
HInterTool from IntPatch,
TheSurfFunction from IntPatch);
class TheSOnBounds instantiates SearchOnBoundaries from IntStart(
HVertex from Adaptor3d,
HCurve2d from Adaptor2d,
HCurve2dTool from IntPatch,
HInterTool from IntPatch,
TopolTool from Adaptor3d,
ArcFunction from IntPatch);
alias SearchPnt is InterferencePolygon2d from Intf;
class CurvIntSurf instantiates IntCS from IntImp
(HSurface from Adaptor3d,
HSurfaceTool from Adaptor3d,
HCurve2d from Adaptor2d,
HCurve2dTool from IntPatch,
CSFunction from IntPatch);
end IntPatch;

View File

@@ -1,273 +0,0 @@
-- Created on: 1992-04-06
-- Created by: Jacques GOUSSARD
-- 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.
class ALine from IntPatch
inherits Line from IntPatch
---Purpose: Implementation of an intersection line described by a
-- parametrised curve.
uses
Point from IntPatch,
SequenceOfPoint from IntPatch,
TypeTrans from IntSurf,
Situation from IntSurf,
Pnt from gp,
Vec from gp,
Curve from IntAna
raises DomainError from Standard,
OutOfRange from Standard
is
Create(C: Curve from IntAna; Tang: Boolean from Standard;
Trans1,Trans2: TypeTrans from IntSurf)
---Purpose: Creates an analytic intersection line
-- when the transitions are In or Out.
returns ALine from IntPatch;
Create(C: Curve from IntAna; Tang: Boolean from Standard;
Situ1,Situ2: Situation from IntSurf)
---Purpose: Creates an analytic intersection line
-- when the transitions are Touch.
returns ALine from IntPatch;
Create(C: Curve from IntAna; Tang: Boolean from Standard)
---Purpose: Creates an analytic intersection line
-- when the transitions are Undecided.
returns ALine from IntPatch;
AddVertex(me: mutable; Pnt: Point from IntPatch)
---Purpose: To add a vertex in the list.
is static;
Replace(me: mutable; Index: Integer from Standard; Pnt: Point from IntPatch)
---Purpose: Replaces the element of range Index in the list
-- of points.
---C++: inline
raises OutOfRange from Standard
--- The exception OutOfRange is raised when Index <= 0
-- or Index > NbVertex.
is static;
SetFirstPoint(me: mutable; IndFirst: Integer from Standard) is static;
---C++: inline
SetLastPoint(me: mutable; IndLast: Integer from Standard) is static;
---C++: inline
FirstParameter(me; IsIncluded: in out Boolean from Standard)
---Purpose: Returns the first parameter on the intersection line.
-- If IsIncluded returns True, Value and D1 methods can
-- be call with a parameter equal to FirstParamater.
-- Otherwise, the parameter must be greater than
-- FirstParameter.
returns Real from Standard
---C++: inline
is static;
LastParameter(me; IsIncluded: in out Boolean from Standard)
---Purpose: Returns the last parameter on the intersection line.
-- If IsIncluded returns True, Value and D1 methods can
-- be call with a parameter equal to LastParamater.
-- Otherwise, the parameter must be less than LastParameter.
returns Real from Standard
---C++: inline
is static;
Value(me: mutable; U: Real from Standard)
---Purpose: Returns the point of parameter U on the analytic
-- intersection line.
returns Pnt from gp
---C++: inline
raises DomainError from Standard
-- The exception DomainError is raised when U is outside the bounds
-- FirstParameter,LastParameter.
is static;
D1(me: mutable; U: Real from Standard;
P: out Pnt from gp; Du: out Vec from gp)
---Purpose: Returns Standard_True when the derivative at parameter U
-- is defined on the analytic intersection line.
-- In that case, Du is the derivative.
-- Returns Standard_False when it is not possible to
-- evaluate the derivative.
-- In both cases, P is the point at parameter U on the
-- intersection.
returns Boolean from Standard
---C++: inline
raises DomainError from Standard
-- The exception DomainError is raised when U is outside the bounds
-- FirstParameter,LastParameter.
is static;
FindParameter(me; P: Pnt from gp; Para: out Real from Standard)
---Purpose: Tries to find the parameter of the point P on the curve.
-- If the method returns False, the "projection" is
-- impossible, and the value of Para is not significant.
-- If the method returns True, Para is the parameter of the
-- nearest intersection between the curve and the iso-theta
-- containing P.
returns Boolean from Standard
---C++: inline
is static;
HasFirstPoint(me)
---Purpose: Returns True if the line has a known First point.
-- This point is given by the method FirstPoint().
returns Boolean from Standard
---C++: inline
is static;
HasLastPoint(me)
---Purpose: Returns True if the line has a known Last point.
-- This point is given by the method LastPoint().
returns Boolean from Standard
---C++: inline
is static;
FirstPoint(me)
---Purpose: Returns the IntPoint corresponding to the FirstPoint.
-- An exception is raised when HasFirstPoint returns False.
returns Point from IntPatch
---C++: inline
---C++: return const&
raises DomainError from Standard
is static;
LastPoint(me)
---Purpose: Returns the IntPoint corresponding to the LastPoint.
-- An exception is raised when HasLastPoint returns False.
returns Point from IntPatch
---C++: inline
---C++: return const&
raises DomainError from Standard
is static;
NbVertex(me)
returns Integer from Standard
---C++: inline
is static;
Vertex(me; Index: Integer from Standard)
---Purpose: Returns the vertex of range Index on the line.
returns Point from IntPatch
---C++: inline
---C++: return const&
raises OutOfRange from Standard
--- The exception OutOfRange is raised if Index <= 0 or
-- Index > NbVertex.
is static;
ComputeVertexParameters(me: mutable; Tol: Real from Standard)
---Purpose: Set the parameters of all the vertex on the line.
-- if a vertex is already in the line,
-- its parameter is modified
-- else a new point in the line is inserted.
is static;
Curve(me)
returns Curve from IntAna
---C++: return const&
is static;
fields
curv : Curve from IntAna;
fipt : Boolean from Standard;
lapt : Boolean from Standard;
indf : Integer from Standard;
indl : Integer from Standard;
svtx : SequenceOfPoint from IntPatch;
end ALine;

View File

@@ -14,7 +14,15 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_ALine.ixx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <IntAna_Curve.hxx>
#include <IntPatch_ALine.hxx>
#include <IntPatch_Point.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <Standard_Type.hxx>
#define DEBUG 0

View File

@@ -0,0 +1,167 @@
// Created on: 1992-04-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_ALine_HeaderFile
#define _IntPatch_ALine_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <IntAna_Curve.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <IntPatch_SequenceOfPoint.hxx>
#include <IntPatch_Line.hxx>
#include <IntSurf_TypeTrans.hxx>
#include <IntSurf_Situation.hxx>
#include <Standard_Real.hxx>
#include <gp_Pnt.hxx>
class Standard_DomainError;
class Standard_OutOfRange;
class IntAna_Curve;
class IntPatch_Point;
class gp_Pnt;
class gp_Vec;
class IntPatch_ALine;
DEFINE_STANDARD_HANDLE(IntPatch_ALine, IntPatch_Line)
//! Implementation of an intersection line described by a
//! parametrised curve.
class IntPatch_ALine : public IntPatch_Line
{
public:
//! Creates an analytic intersection line
//! when the transitions are In or Out.
Standard_EXPORT IntPatch_ALine(const IntAna_Curve& C, const Standard_Boolean Tang, const IntSurf_TypeTrans Trans1, const IntSurf_TypeTrans Trans2);
//! Creates an analytic intersection line
//! when the transitions are Touch.
Standard_EXPORT IntPatch_ALine(const IntAna_Curve& C, const Standard_Boolean Tang, const IntSurf_Situation Situ1, const IntSurf_Situation Situ2);
//! Creates an analytic intersection line
//! when the transitions are Undecided.
Standard_EXPORT IntPatch_ALine(const IntAna_Curve& C, const Standard_Boolean Tang);
//! To add a vertex in the list.
Standard_EXPORT void AddVertex (const IntPatch_Point& Pnt);
//! Replaces the element of range Index in the list
//! of points.
void Replace (const Standard_Integer Index, const IntPatch_Point& Pnt);
void SetFirstPoint (const Standard_Integer IndFirst);
void SetLastPoint (const Standard_Integer IndLast);
//! Returns the first parameter on the intersection line.
//! If IsIncluded returns True, Value and D1 methods can
//! be call with a parameter equal to FirstParamater.
//! Otherwise, the parameter must be greater than
//! FirstParameter.
Standard_Real FirstParameter (Standard_Boolean& IsIncluded) const;
//! Returns the last parameter on the intersection line.
//! If IsIncluded returns True, Value and D1 methods can
//! be call with a parameter equal to LastParamater.
//! Otherwise, the parameter must be less than LastParameter.
Standard_Real LastParameter (Standard_Boolean& IsIncluded) const;
//! Returns the point of parameter U on the analytic
//! intersection line.
gp_Pnt Value (const Standard_Real U);
//! Returns Standard_True when the derivative at parameter U
//! is defined on the analytic intersection line.
//! In that case, Du is the derivative.
//! Returns Standard_False when it is not possible to
//! evaluate the derivative.
//! In both cases, P is the point at parameter U on the
//! intersection.
Standard_Boolean D1 (const Standard_Real U, gp_Pnt& P, gp_Vec& Du);
//! Tries to find the parameter of the point P on the curve.
//! If the method returns False, the "projection" is
//! impossible, and the value of Para is not significant.
//! If the method returns True, Para is the parameter of the
//! nearest intersection between the curve and the iso-theta
//! containing P.
Standard_Boolean FindParameter (const gp_Pnt& P, Standard_Real& Para) const;
//! Returns True if the line has a known First point.
//! This point is given by the method FirstPoint().
Standard_Boolean HasFirstPoint() const;
//! Returns True if the line has a known Last point.
//! This point is given by the method LastPoint().
Standard_Boolean HasLastPoint() const;
//! Returns the IntPoint corresponding to the FirstPoint.
//! An exception is raised when HasFirstPoint returns False.
const IntPatch_Point& FirstPoint() const;
//! Returns the IntPoint corresponding to the LastPoint.
//! An exception is raised when HasLastPoint returns False.
const IntPatch_Point& LastPoint() const;
Standard_Integer NbVertex() const;
//! Returns the vertex of range Index on the line.
const IntPatch_Point& Vertex (const Standard_Integer Index) const;
//! Set the parameters of all the vertex on the line.
//! if a vertex is already in the line,
//! its parameter is modified
//! else a new point in the line is inserted.
Standard_EXPORT void ComputeVertexParameters (const Standard_Real Tol);
Standard_EXPORT const IntAna_Curve& Curve() const;
DEFINE_STANDARD_RTTI(IntPatch_ALine,IntPatch_Line)
protected:
private:
IntAna_Curve curv;
Standard_Boolean fipt;
Standard_Boolean lapt;
Standard_Integer indf;
Standard_Integer indl;
IntPatch_SequenceOfPoint svtx;
};
#include <IntPatch_ALine.lxx>
#endif // _IntPatch_ALine_HeaderFile

View File

@@ -1,90 +0,0 @@
-- Created on: 1993-11-26
-- Created by: Modelistation
-- 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 ALineToWLine from IntPatch
uses
WLine from IntPatch,
ALine from IntPatch,
Quadric from IntSurf
is
Create(Quad1 : Quadric from IntSurf;
Quad2 : Quadric from IntSurf)
returns ALineToWLine from IntPatch;
Create(Quad1 : Quadric from IntSurf;
Quad2 : Quadric from IntSurf;
Deflection : Real from Standard;
PasMaxUV : Real from Standard;
NbMaxPoints : Integer from Standard)
returns ALineToWLine from IntPatch;
SetTolParam(me:out;
aT:Real from Standard);
TolParam(me)
returns Real from Standard;
SetTolOpenDomain(me:out;
aT:Real from Standard);
TolOpenDomain(me)
returns Real from Standard;
SetTolTransition(me:out;
aT:Real from Standard);
TolTransition(me)
returns Real from Standard;
SetTol3D(me:out;
aT:Real from Standard);
Tol3D(me)
returns Real from Standard;
SetConstantParameter(me);
SetUniformAbscissa(me);
SetUniformDeflection(me);
MakeWLine(me; aline: ALine from IntPatch)
returns WLine from IntPatch;
MakeWLine(me; aline: ALine from IntPatch; paraminf,paramsup: Real from Standard)
returns WLine from IntPatch;
fields
quad1 : Quadric from IntSurf;
quad2 : Quadric from IntSurf;
deflectionmax : Real from Standard;
nbpointsmax : Integer from Standard;
type : Integer from Standard; -- 0: Constant Parameter
-- 1: Uniform Abscissa
-- 2: Uniform Deflection
myTolParam : Real from Standard;
myTolOpenDomain : Real from Standard;
myTolTransition : Real from Standard;
myTol3D : Real from Standard;
end;

View File

@@ -14,30 +14,28 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_ALineToWLine.ixx>
#include <IntSurf_LineOn2S.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <IntSurf_TypeTrans.hxx>
#include <IntSurf_Situation.hxx>
#include <TColStd_Array1OfReal.hxx>
#include <TColStd_Array1OfInteger.hxx>
#include <Precision.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <GeomAbs_SurfaceType.hxx>
#include <gp_Cone.hxx>
#include <gp_Lin2d.hxx>
#include <gp_Pnt.hxx>
#include <gp_Pnt2d.hxx>
#include <gp_Vec.hxx>
#include <gp_Vec2d.hxx>
#include <IntAna2d_AnaIntersection.hxx>
#include <gp_Lin2d.hxx>
#include <IntAna2d_IntPoint.hxx>
#include <gp_Cone.hxx>
#include <IntPatch_ALine.hxx>
#include <IntPatch_ALineToWLine.hxx>
#include <IntPatch_WLine.hxx>
#include <IntSurf_LineOn2S.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <IntSurf_Quadric.hxx>
#include <IntSurf_Situation.hxx>
#include <IntSurf_TypeTrans.hxx>
#include <Precision.hxx>
#include <TColStd_Array1OfInteger.hxx>
#include <TColStd_Array1OfReal.hxx>
static
gp_Pnt DefineDU(const Handle(IntPatch_ALine)& aline,

View File

@@ -0,0 +1,102 @@
// Created on: 1993-11-26
// Created by: Modelistation
// 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 _IntPatch_ALineToWLine_HeaderFile
#define _IntPatch_ALineToWLine_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <IntSurf_Quadric.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
class IntSurf_Quadric;
class IntPatch_WLine;
class IntPatch_ALine;
class IntPatch_ALineToWLine
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_ALineToWLine(const IntSurf_Quadric& Quad1, const IntSurf_Quadric& Quad2);
Standard_EXPORT IntPatch_ALineToWLine(const IntSurf_Quadric& Quad1, const IntSurf_Quadric& Quad2, const Standard_Real Deflection, const Standard_Real PasMaxUV, const Standard_Integer NbMaxPoints);
Standard_EXPORT void SetTolParam (const Standard_Real aT);
Standard_EXPORT Standard_Real TolParam() const;
Standard_EXPORT void SetTolOpenDomain (const Standard_Real aT);
Standard_EXPORT Standard_Real TolOpenDomain() const;
Standard_EXPORT void SetTolTransition (const Standard_Real aT);
Standard_EXPORT Standard_Real TolTransition() const;
Standard_EXPORT void SetTol3D (const Standard_Real aT);
Standard_EXPORT Standard_Real Tol3D() const;
Standard_EXPORT void SetConstantParameter() const;
Standard_EXPORT void SetUniformAbscissa() const;
Standard_EXPORT void SetUniformDeflection() const;
Standard_EXPORT Handle(IntPatch_WLine) MakeWLine (const Handle(IntPatch_ALine)& aline) const;
Standard_EXPORT Handle(IntPatch_WLine) MakeWLine (const Handle(IntPatch_ALine)& aline, const Standard_Real paraminf, const Standard_Real paramsup) const;
protected:
private:
IntSurf_Quadric quad1;
IntSurf_Quadric quad2;
Standard_Real deflectionmax;
Standard_Integer nbpointsmax;
Standard_Integer type;
Standard_Real myTolParam;
Standard_Real myTolOpenDomain;
Standard_Real myTolTransition;
Standard_Real myTol3D;
};
#endif // _IntPatch_ALineToWLine_HeaderFile

View File

@@ -1,113 +0,0 @@
-- Created on: 1993-06-07
-- Created by: Jacques GOUSSARD
-- 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 ArcFunction from IntPatch
inherits FunctionWithDerivative from math
uses
HCurve2d from Adaptor2d,
HSurface from Adaptor3d,
Pnt from gp,
SequenceOfPnt from TColgp,
Quadric from IntSurf
is
Create
returns ArcFunction from IntPatch;
SetQuadric(me: in out; Q: Quadric from IntSurf)
---C++: inline
is static;
Set(me: in out; A: HCurve2d from Adaptor2d)
---C++: inline
is static;
Set(me: in out; S: HSurface from Adaptor3d)
---C++: inline
is static;
Value(me: in out; X: Real from Standard; F: out Real from Standard)
returns Boolean from Standard;
Derivative(me: in out; X: Real from Standard; D: out Real from Standard)
returns Boolean from Standard;
Values(me: in out; X: Real from Standard; F,D: out Real from Standard)
returns Boolean from Standard;
NbSamples(me)
returns Integer from Standard
is static;
GetStateNumber(me: in out)
returns Integer from Standard
is redefined;
Valpoint(me; Index: Integer from Standard)
returns Pnt from gp
---C++: return const&
---C++: inline
is static;
Quadric(me)
returns Quadric from IntSurf
---C++: return const&
---C++: inline
is static;
Arc(me)
returns HCurve2d from Adaptor2d
---C++: return const&
---C++: inline
is static;
Surface(me)
returns HSurface from Adaptor3d
---C++: return const&
---C++: inline
is static;
fields
myArc : HCurve2d from Adaptor2d;
mySurf : HSurface from Adaptor3d;
myQuad : Quadric from IntSurf;
ptsol : Pnt from gp;
seqpt : SequenceOfPnt from TColgp;
end ArcFunction;

View File

@@ -14,10 +14,13 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_ArcFunction.ixx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <gp_Pnt.hxx>
#include <IntPatch_ArcFunction.hxx>
#include <IntPatch_HInterTool.hxx>
#include <IntSurf_Quadric.hxx>
IntPatch_ArcFunction::IntPatch_ArcFunction ()
{}

View File

@@ -0,0 +1,100 @@
// Created on: 1993-06-07
// Created by: Jacques GOUSSARD
// 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 _IntPatch_ArcFunction_HeaderFile
#define _IntPatch_ArcFunction_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <IntSurf_Quadric.hxx>
#include <gp_Pnt.hxx>
#include <TColgp_SequenceOfPnt.hxx>
#include <math_FunctionWithDerivative.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
class Adaptor2d_HCurve2d;
class Adaptor3d_HSurface;
class IntSurf_Quadric;
class gp_Pnt;
class IntPatch_ArcFunction : public math_FunctionWithDerivative
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_ArcFunction();
void SetQuadric (const IntSurf_Quadric& Q);
void Set (const Handle(Adaptor2d_HCurve2d)& A);
void Set (const Handle(Adaptor3d_HSurface)& S);
Standard_EXPORT Standard_Boolean Value (const Standard_Real X, Standard_Real& F);
Standard_EXPORT Standard_Boolean Derivative (const Standard_Real X, Standard_Real& D);
Standard_EXPORT Standard_Boolean Values (const Standard_Real X, Standard_Real& F, Standard_Real& D);
Standard_EXPORT Standard_Integer NbSamples() const;
Standard_EXPORT virtual Standard_Integer GetStateNumber() Standard_OVERRIDE;
const gp_Pnt& Valpoint (const Standard_Integer Index) const;
const IntSurf_Quadric& Quadric() const;
const Handle(Adaptor2d_HCurve2d)& Arc() const;
const Handle(Adaptor3d_HSurface)& Surface() const;
protected:
private:
Handle(Adaptor2d_HCurve2d) myArc;
Handle(Adaptor3d_HSurface) mySurf;
IntSurf_Quadric myQuad;
gp_Pnt ptsol;
TColgp_SequenceOfPnt seqpt;
};
#include <IntPatch_ArcFunction.lxx>
#endif // _IntPatch_ArcFunction_HeaderFile

View File

@@ -1,89 +0,0 @@
-- Created on: 1994-02-14
-- Created by: Jacques GOUSSARD
-- Copyright (c) 1994-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class CSFunction from IntPatch inherits FunctionSetWithDerivatives from math
---Purpose: this function is associated to the intersection between
-- a curve on surface and a surface .
uses Vector from math,
Matrix from math,
Pnt from gp,
HSurface from Adaptor3d,
HSurfaceTool from Adaptor3d,
HCurve2d from Adaptor2d,
HCurve2dTool from IntPatch
is
Create( S1 : HSurface from Adaptor3d;
C : HCurve2d from Adaptor2d;
S2 : HSurface from Adaptor3d )
---Purpose: S1 is the surface on which the intersection is searched.
-- C is a curve on the surface S2.
returns CSFunction from IntPatch;
NbVariables(me) returns Integer from Standard
is static;
NbEquations(me) returns Integer from Standard
is static;
Value(me : in out; X : in Vector from math;
F : out Vector from math)
returns Boolean from Standard
is static;
Derivatives(me : in out;X : in Vector from math;
D : out Matrix from math)
returns Boolean from Standard
is static;
Values(me : in out;
X : in Vector from math;
F : out Vector from math; D: out Matrix from math)
returns Boolean from Standard
is static;
Point(me)
---C++: return const&
returns Pnt from gp
is static;
Root(me) returns Real from Standard
is static;
AuxillarSurface(me)
---C++: return const&
returns HSurface from Adaptor3d
is static;
AuxillarCurve(me)
---C++: return const&
returns HCurve2d from Adaptor2d
is static;
fields
curve : Address from Standard; --- HCurve2d from Adaptor2d;
surface1 : Address from Standard; --- HSurface from Adaptor3d;
surface2 : Address from Standard; --- HSurface from Adaptor3d;
p : Pnt from gp;
f : Real from Standard;
end CSFunction;

View File

@@ -12,17 +12,17 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_CSFunction.ixx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HSurfaceTool.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <IntPatch_HCurve2dTool.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <gp_Pnt2d.hxx>
#include <gp_Vec.hxx>
#include <gp_Vec2d.hxx>
#include <IntPatch_CSFunction.hxx>
#include <IntPatch_HCurve2dTool.hxx>
#include <math_Matrix.hxx>
#ifndef OCCT_DEBUG
#define No_Standard_RangeError

View File

@@ -0,0 +1,96 @@
// Created on: 1994-02-14
// Created by: Jacques GOUSSARD
// Copyright (c) 1994-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _IntPatch_CSFunction_HeaderFile
#define _IntPatch_CSFunction_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Address.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 Adaptor2d_HCurve2d;
class math_Matrix;
class gp_Pnt;
//! this function is associated to the intersection between
//! a curve on surface and a surface .
class IntPatch_CSFunction : public math_FunctionSetWithDerivatives
{
public:
DEFINE_STANDARD_ALLOC
//! S1 is the surface on which the intersection is searched.
//! C is a curve on the surface S2.
Standard_EXPORT IntPatch_CSFunction(const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor2d_HCurve2d)& C, const Handle(Adaptor3d_HSurface)& S2);
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(Adaptor2d_HCurve2d)& AuxillarCurve() const;
protected:
private:
Standard_Address curve;
Standard_Address surface1;
Standard_Address surface2;
gp_Pnt p;
Standard_Real f;
};
#endif // _IntPatch_CSFunction_HeaderFile

View File

@@ -0,0 +1,94 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_CurvIntSurf_HeaderFile
#define _IntPatch_CurvIntSurf_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntPatch_CSFunction.hxx>
#include <Standard_Real.hxx>
class StdFail_NotDone;
class Standard_DomainError;
class Adaptor3d_HSurface;
class Adaptor3d_HSurfaceTool;
class Adaptor2d_HCurve2d;
class IntPatch_HCurve2dTool;
class IntPatch_CSFunction;
class math_FunctionSetRoot;
class gp_Pnt;
class IntPatch_CurvIntSurf
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_CurvIntSurf(const Standard_Real U, const Standard_Real V, const Standard_Real W, const IntPatch_CSFunction& F, const Standard_Real TolTangency, const Standard_Real MarginCoef = 0.0);
Standard_EXPORT IntPatch_CurvIntSurf(const IntPatch_CSFunction& 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 IntPatch_CSFunction& Function();
protected:
private:
Standard_Boolean done;
Standard_Boolean empty;
IntPatch_CSFunction myFunction;
Standard_Real w;
Standard_Real u;
Standard_Real v;
Standard_Real tol;
};
#endif // _IntPatch_CurvIntSurf_HeaderFile

View File

@@ -0,0 +1,43 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_CurvIntSurf.hxx>
#include <StdFail_NotDone.hxx>
#include <Standard_DomainError.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HSurfaceTool.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <IntPatch_HCurve2dTool.hxx>
#include <IntPatch_CSFunction.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(Adaptor2d_HCurve2d)
#define TheCurve_hxx <Adaptor2d_HCurve2d.hxx>
#define TheCurveTool IntPatch_HCurve2dTool
#define TheCurveTool_hxx <IntPatch_HCurve2dTool.hxx>
#define TheFunction IntPatch_CSFunction
#define TheFunction_hxx <IntPatch_CSFunction.hxx>
#define IntImp_IntCS IntPatch_CurvIntSurf
#define IntImp_IntCS_hxx <IntPatch_CurvIntSurf.hxx>
#include <IntImp_IntCS.gxx>

View File

@@ -1,369 +0,0 @@
-- Created on: 1992-04-06
-- Created by: Jacques GOUSSARD
-- 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.
class GLine from IntPatch
inherits Line from IntPatch
---Purpose: Implementation of an intersection line represented
-- by a conic.
uses
Point from IntPatch,
SequenceOfPoint from IntPatch,
Lin from gp,
Circ from gp,
Elips from gp,
Parab from gp,
Hypr from gp,
Ax2 from gp,
TypeTrans from IntSurf,
Situation from IntSurf
raises DomainError from Standard,
OutOfRange from Standard
is
Create(L: Lin from gp; Tang: Boolean from Standard;
Trans1,Trans2: TypeTrans from IntSurf)
---Purpose: Creates a Line as intersection line
-- when the transitions are In or Out.
returns GLine from IntPatch;
Create(L: Lin from gp; Tang: Boolean from Standard;
Situ1,Situ2: Situation from IntSurf)
---Purpose: Creates a Line as intersection line
-- when the transitions are Touch.
returns GLine from IntPatch;
Create(L: Lin from gp; Tang: Boolean from Standard)
---Purpose: Creates a Line as intersection line
-- when the transitions are Undecided.
returns GLine from IntPatch;
Create(C: Circ from gp; Tang: Boolean from Standard;
Trans1,Trans2: TypeTrans from IntSurf)
---Purpose: Creates a circle as intersection line
-- when the transitions are In or Out.
returns GLine from IntPatch;
Create(C: Circ from gp; Tang: Boolean from Standard;
Situ1,Situ2: Situation from IntSurf)
---Purpose: Creates a circle as intersection line
-- when the transitions are Touch.
returns GLine from IntPatch;
Create(C: Circ from gp; Tang: Boolean from Standard)
---Purpose: Creates a circle as intersection line
-- when the transitions are Undecided.
returns GLine from IntPatch;
Create(E: Elips from gp; Tang: Boolean from Standard;
Trans1,Trans2: TypeTrans from IntSurf)
---Purpose: Creates an ellipse as intersection line
-- when the transitions are In or Out.
returns GLine from IntPatch;
Create(E: Elips from gp; Tang: Boolean from Standard;
Situ1,Situ2: Situation from IntSurf)
---Purpose: Creates an ellispe as intersection line
-- when the transitions are Touch.
returns GLine from IntPatch;
Create(E: Elips from gp; Tang: Boolean from Standard)
---Purpose: Creates an ellipse as intersection line
-- when the transitions are Undecided.
returns GLine from IntPatch;
Create(P: Parab from gp; Tang: Boolean from Standard;
Trans1,Trans2: TypeTrans from IntSurf)
---Purpose: Creates a parabola as intersection line
-- when the transitions are In or Out.
returns GLine from IntPatch;
Create(P: Parab from gp; Tang: Boolean from Standard;
Situ1,Situ2: Situation from IntSurf)
---Purpose: Creates a parabola as intersection line
-- when the transitions are Touch.
returns GLine from IntPatch;
Create(P: Parab from gp; Tang: Boolean from Standard)
---Purpose: Creates a parabola as intersection line
-- when the transitions are Undecided.
returns GLine from IntPatch;
Create(H: Hypr from gp; Tang: Boolean from Standard;
Trans1,Trans2: TypeTrans from IntSurf)
---Purpose: Creates an hyperbola as intersection line
-- when the transitions are In or Out.
returns GLine from IntPatch;
Create(H: Hypr from gp; Tang: Boolean from Standard;
Situ1,Situ2: Situation from IntSurf)
---Purpose: Creates an hyperbola as intersection line
-- when the transitions are Touch.
returns GLine from IntPatch;
Create(H: Hypr from gp; Tang: Boolean from Standard)
---Purpose: Creates an hyperbola as intersection line
-- when the transitions are Undecided.
returns GLine from IntPatch;
AddVertex(me: mutable; Pnt: Point from IntPatch)
---Purpose: To add a vertex in the list.
is static;
Replace(me: mutable; Index: Integer from Standard; Pnt: Point from IntPatch)
---Purpose: To replace the element of range Index in the list
-- of points.
raises OutOfRange from Standard
--- The exception OutOfRange is raised when Index <= 0
-- or Index > NbVertex.
is static;
SetFirstPoint(me: mutable; IndFirst: Integer from Standard) is static;
---C++: inline
SetLastPoint(me: mutable; IndLast: Integer from Standard) is static;
---C++: inline
Line(me)
---Purpose: Returns the Lin from gp corresponding to the intersection
-- when ArcType returns IntPatch_Line.
returns Lin from gp
---C++: inline
raises DomainError from Standard
--- The exception DomainError is raised when ArcType does not return
-- IntPatch_Line.
is static;
Circle(me)
---Purpose: Returns the Circ from gp corrsponding to the intersection
-- when ArcType returns IntPatch_Circle.
returns Circ from gp
---C++: inline
raises DomainError from Standard
--- The exception DomainError is raised when ArcType does not return
-- IntPatch_Circle.
is static;
Ellipse(me)
---Purpose: Returns the Elips from gp corrsponding to the intersection
-- when ArcType returns IntPatch_Ellipse.
returns Elips from gp
---C++: inline
raises DomainError from Standard
--- The exception DomainError is raised when ArcType does not return
-- IntPatch_Ellipse.
is static;
Parabola(me)
---Purpose: Returns the Parab from gp corrsponding to the intersection
-- when ArcType returns IntPatch_Parabola.
returns Parab from gp
---C++: inline
raises DomainError from Standard
--- The exception DomainError is raised when ArcType does not return
-- IntPatch_Parabola.
is static;
Hyperbola(me)
---Purpose: Returns the Hypr from gp corrsponding to the intersection
-- when ArcType returns IntPatch_Hyperbola.
returns Hypr from gp
---C++: inline
raises DomainError from Standard
--- The exception DomainError is raised when ArcType does not return
-- IntPatch_Hyperbola.
is static;
HasFirstPoint(me)
---Purpose: Returns True if the line has a known First point.
-- This point is given by the method FirstPoint().
returns Boolean from Standard
---C++: inline
is static;
HasLastPoint(me)
---Purpose: Returns True if the line has a known Last point.
-- This point is given by the method LastPoint().
returns Boolean from Standard
---C++: inline
is static;
FirstPoint(me)
---Purpose: Returns the IntPoint corresponding to the FirstPoint.
-- An exception is raised when HasFirstPoint returns False.
returns Point from IntPatch
---C++: inline
---C++: return const&
raises DomainError from Standard
is static;
LastPoint(me)
---Purpose: Returns the IntPoint corresponding to the LastPoint.
-- An exception is raised when HasLastPoint returns False.
returns Point from IntPatch
---C++: inline
---C++: return const&
raises DomainError from Standard
is static;
NbVertex(me)
returns Integer from Standard
---C++: inline
is static;
Vertex(me; Index: Integer from Standard)
---Purpose: Returns the vertex of range Index on the line.
returns Point from IntPatch
---C++: inline
---C++: return const&
raises OutOfRange from Standard
--- The exception OutOfRange is raised if Index <= 0 or
-- Index > NbVertex.
is static;
ComputeVertexParameters(me: mutable; Tol: Real from Standard)
---Purpose: Set the parameters of all the vertex on the line.
-- if a vertex is already in the line,
-- its parameter is modified
-- else a new point in the line is inserted.
is static;
fields
pos : Ax2 from gp;
par1 : Real from Standard;
par2 : Real from Standard;
fipt : Boolean from Standard;
lapt : Boolean from Standard;
indf : Integer from Standard;
indl : Integer from Standard;
svtx : SequenceOfPoint from IntPatch;
end GLine;

View File

@@ -14,7 +14,17 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_GLine.ixx>
#include <gp_Circ.hxx>
#include <gp_Elips.hxx>
#include <gp_Hypr.hxx>
#include <gp_Lin.hxx>
#include <gp_Parab.hxx>
#include <IntPatch_GLine.hxx>
#include <IntPatch_Point.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <Standard_Type.hxx>
#define DEBUG 0

View File

@@ -0,0 +1,207 @@
// Created on: 1992-04-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_GLine_HeaderFile
#define _IntPatch_GLine_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <gp_Ax2.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <IntPatch_SequenceOfPoint.hxx>
#include <IntPatch_Line.hxx>
#include <IntSurf_TypeTrans.hxx>
#include <IntSurf_Situation.hxx>
#include <gp_Lin.hxx>
#include <gp_Circ.hxx>
#include <gp_Elips.hxx>
#include <gp_Parab.hxx>
#include <gp_Hypr.hxx>
class Standard_DomainError;
class Standard_OutOfRange;
class gp_Lin;
class gp_Circ;
class gp_Elips;
class gp_Parab;
class gp_Hypr;
class IntPatch_Point;
class IntPatch_GLine;
DEFINE_STANDARD_HANDLE(IntPatch_GLine, IntPatch_Line)
//! Implementation of an intersection line represented
//! by a conic.
class IntPatch_GLine : public IntPatch_Line
{
public:
//! Creates a Line as intersection line
//! when the transitions are In or Out.
Standard_EXPORT IntPatch_GLine(const gp_Lin& L, const Standard_Boolean Tang, const IntSurf_TypeTrans Trans1, const IntSurf_TypeTrans Trans2);
//! Creates a Line as intersection line
//! when the transitions are Touch.
Standard_EXPORT IntPatch_GLine(const gp_Lin& L, const Standard_Boolean Tang, const IntSurf_Situation Situ1, const IntSurf_Situation Situ2);
//! Creates a Line as intersection line
//! when the transitions are Undecided.
Standard_EXPORT IntPatch_GLine(const gp_Lin& L, const Standard_Boolean Tang);
//! Creates a circle as intersection line
//! when the transitions are In or Out.
Standard_EXPORT IntPatch_GLine(const gp_Circ& C, const Standard_Boolean Tang, const IntSurf_TypeTrans Trans1, const IntSurf_TypeTrans Trans2);
//! Creates a circle as intersection line
//! when the transitions are Touch.
Standard_EXPORT IntPatch_GLine(const gp_Circ& C, const Standard_Boolean Tang, const IntSurf_Situation Situ1, const IntSurf_Situation Situ2);
//! Creates a circle as intersection line
//! when the transitions are Undecided.
Standard_EXPORT IntPatch_GLine(const gp_Circ& C, const Standard_Boolean Tang);
//! Creates an ellipse as intersection line
//! when the transitions are In or Out.
Standard_EXPORT IntPatch_GLine(const gp_Elips& E, const Standard_Boolean Tang, const IntSurf_TypeTrans Trans1, const IntSurf_TypeTrans Trans2);
//! Creates an ellispe as intersection line
//! when the transitions are Touch.
Standard_EXPORT IntPatch_GLine(const gp_Elips& E, const Standard_Boolean Tang, const IntSurf_Situation Situ1, const IntSurf_Situation Situ2);
//! Creates an ellipse as intersection line
//! when the transitions are Undecided.
Standard_EXPORT IntPatch_GLine(const gp_Elips& E, const Standard_Boolean Tang);
//! Creates a parabola as intersection line
//! when the transitions are In or Out.
Standard_EXPORT IntPatch_GLine(const gp_Parab& P, const Standard_Boolean Tang, const IntSurf_TypeTrans Trans1, const IntSurf_TypeTrans Trans2);
//! Creates a parabola as intersection line
//! when the transitions are Touch.
Standard_EXPORT IntPatch_GLine(const gp_Parab& P, const Standard_Boolean Tang, const IntSurf_Situation Situ1, const IntSurf_Situation Situ2);
//! Creates a parabola as intersection line
//! when the transitions are Undecided.
Standard_EXPORT IntPatch_GLine(const gp_Parab& P, const Standard_Boolean Tang);
//! Creates an hyperbola as intersection line
//! when the transitions are In or Out.
Standard_EXPORT IntPatch_GLine(const gp_Hypr& H, const Standard_Boolean Tang, const IntSurf_TypeTrans Trans1, const IntSurf_TypeTrans Trans2);
//! Creates an hyperbola as intersection line
//! when the transitions are Touch.
Standard_EXPORT IntPatch_GLine(const gp_Hypr& H, const Standard_Boolean Tang, const IntSurf_Situation Situ1, const IntSurf_Situation Situ2);
//! Creates an hyperbola as intersection line
//! when the transitions are Undecided.
Standard_EXPORT IntPatch_GLine(const gp_Hypr& H, const Standard_Boolean Tang);
//! To add a vertex in the list.
Standard_EXPORT void AddVertex (const IntPatch_Point& Pnt);
//! To replace the element of range Index in the list
//! of points.
Standard_EXPORT void Replace (const Standard_Integer Index, const IntPatch_Point& Pnt);
void SetFirstPoint (const Standard_Integer IndFirst);
void SetLastPoint (const Standard_Integer IndLast);
//! Returns the Lin from gp corresponding to the intersection
//! when ArcType returns IntPatch_Line.
gp_Lin Line() const;
//! Returns the Circ from gp corrsponding to the intersection
//! when ArcType returns IntPatch_Circle.
gp_Circ Circle() const;
//! Returns the Elips from gp corrsponding to the intersection
//! when ArcType returns IntPatch_Ellipse.
gp_Elips Ellipse() const;
//! Returns the Parab from gp corrsponding to the intersection
//! when ArcType returns IntPatch_Parabola.
gp_Parab Parabola() const;
//! Returns the Hypr from gp corrsponding to the intersection
//! when ArcType returns IntPatch_Hyperbola.
gp_Hypr Hyperbola() const;
//! Returns True if the line has a known First point.
//! This point is given by the method FirstPoint().
Standard_Boolean HasFirstPoint() const;
//! Returns True if the line has a known Last point.
//! This point is given by the method LastPoint().
Standard_Boolean HasLastPoint() const;
//! Returns the IntPoint corresponding to the FirstPoint.
//! An exception is raised when HasFirstPoint returns False.
const IntPatch_Point& FirstPoint() const;
//! Returns the IntPoint corresponding to the LastPoint.
//! An exception is raised when HasLastPoint returns False.
const IntPatch_Point& LastPoint() const;
Standard_Integer NbVertex() const;
//! Returns the vertex of range Index on the line.
const IntPatch_Point& Vertex (const Standard_Integer Index) const;
//! Set the parameters of all the vertex on the line.
//! if a vertex is already in the line,
//! its parameter is modified
//! else a new point in the line is inserted.
Standard_EXPORT void ComputeVertexParameters (const Standard_Real Tol);
DEFINE_STANDARD_RTTI(IntPatch_GLine,IntPatch_Line)
protected:
private:
gp_Ax2 pos;
Standard_Real par1;
Standard_Real par2;
Standard_Boolean fipt;
Standard_Boolean lapt;
Standard_Integer indf;
Standard_Integer indl;
IntPatch_SequenceOfPoint svtx;
};
#include <IntPatch_GLine.lxx>
#endif // _IntPatch_GLine_HeaderFile

View File

@@ -1,234 +0,0 @@
-- Created on: 1995-07-17
-- Created by: Laurent BUCHARD
-- 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.
class HCurve2dTool from IntPatch
uses
HCurve2d from Adaptor2d,
Array1OfReal from TColStd,
Shape from GeomAbs,
CurveType from GeomAbs,
Vec2d from gp,
Pnt2d from gp,
Circ2d from gp,
Elips2d from gp,
Hypr2d from gp,
Parab2d from gp,
Lin2d from gp,
BezierCurve from Geom2d,
BSplineCurve from Geom2d
raises
OutOfRange from Standard,
NoSuchObject from Standard,
DomainError from Standard
is
--
-- Global methods - Apply to the whole curve.
--
FirstParameter(myclass; C: HCurve2d from Adaptor2d) returns Real
---C++: inline
;
LastParameter(myclass; C: HCurve2d from Adaptor2d) 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: HCurve2d from Adaptor2d) returns Shape from GeomAbs
---Purpose:
---C++: inline
;
NbIntervals(myclass; C: HCurve2d from Adaptor2d; 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: HCurve2d from Adaptor2d; 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: HCurve2d from Adaptor2d) returns Boolean
---C++: inline
;
IsPeriodic(myclass; C: HCurve2d from Adaptor2d) returns Boolean
---C++: inline
;
Period(myclass; C: HCurve2d from Adaptor2d) returns Real
raises
DomainError from Standard -- if the curve is not periodic
---C++: inline
;
Value(myclass; C: HCurve2d from Adaptor2d; U : Real) returns Pnt2d from gp
--- Purpose : Computes the point of parameter U on the curve.
---C++: inline
;
D0 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp)
--- Purpose : Computes the point of parameter U on the curve.
---C++: inline
;
D1 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp ; V : out Vec2d 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: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp; V1, V2 : out Vec2d 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: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp; V1, V2, V3 : out Vec2d 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: HCurve2d from Adaptor2d; U : Real; N : Integer) returns Vec2d 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: HCurve2d from Adaptor2d; R3d : Real) returns Real
---Purpose : Returns the parametric resolution corresponding
-- to the real space resolution <R3d>.
---C++: inline
;
GetType(myclass; C: HCurve2d from Adaptor2d) 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: HCurve2d from Adaptor2d) returns Lin2d from gp
raises
NoSuchObject from Standard
---C++: inline
;
Circle(myclass; C: HCurve2d from Adaptor2d) returns Circ2d from gp
raises
NoSuchObject from Standard
---C++: inline
;
Ellipse(myclass; C: HCurve2d from Adaptor2d) returns Elips2d from gp
raises
NoSuchObject from Standard
---C++: inline
;
Hyperbola(myclass; C: HCurve2d from Adaptor2d) returns Hypr2d from gp
raises
NoSuchObject from Standard
---C++: inline
;
Parabola(myclass; C: HCurve2d from Adaptor2d) returns Parab2d from gp
raises
NoSuchObject from Standard
---C++: inline
;
Bezier(myclass; C: HCurve2d from Adaptor2d) returns BezierCurve from Geom2d
raises
NoSuchObject from Standard
---C++: inline
;
BSpline(myclass; C: HCurve2d from Adaptor2d) returns BSplineCurve from Geom2d
raises
NoSuchObject from Standard
---C++: inline
;
NbSamples(myclass; C: HCurve2d from Adaptor2d; U0,U1: Real from Standard)
returns Integer from Standard;
end HCurve2dTool;

View File

@@ -14,16 +14,20 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_HCurve2dTool.ixx>
#include <GeomAbs_CurveType.hxx>
#include <GeomAbs_Shape.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Geom2d_BezierCurve.hxx>
#include <Geom2d_BSplineCurve.hxx>
#include <GeomAbs_CurveType.hxx>
#include <GeomAbs_Shape.hxx>
#include <gp_Pnt2d.hxx>
#include <gp_Vec2d.hxx>
#include <IntPatch_HCurve2dTool.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_OutOfRange.hxx>
#include <TColStd_Array1OfReal.hxx>
//============================================================
Standard_Integer IntPatch_HCurve2dTool::NbSamples (const Handle(Adaptor2d_HCurve2d)& C,
const Standard_Real U0,

View File

@@ -0,0 +1,161 @@
// Created on: 1995-07-17
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntPatch_HCurve2dTool_HeaderFile
#define _IntPatch_HCurve2dTool_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_Pnt2d.hxx>
#include <gp_Vec2d.hxx>
#include <GeomAbs_CurveType.hxx>
#include <gp_Lin2d.hxx>
#include <gp_Circ2d.hxx>
#include <gp_Elips2d.hxx>
#include <gp_Hypr2d.hxx>
#include <gp_Parab2d.hxx>
class Standard_OutOfRange;
class Standard_NoSuchObject;
class Standard_DomainError;
class Adaptor2d_HCurve2d;
class gp_Pnt2d;
class gp_Vec2d;
class Geom2d_BezierCurve;
class Geom2d_BSplineCurve;
class IntPatch_HCurve2dTool
{
public:
DEFINE_STANDARD_ALLOC
static Standard_Real FirstParameter (const Handle(Adaptor2d_HCurve2d)& C);
static Standard_Real LastParameter (const Handle(Adaptor2d_HCurve2d)& C);
static GeomAbs_Shape Continuity (const Handle(Adaptor2d_HCurve2d)& C);
//! Returns the number of intervals for continuity
//! <S>. May be one if Continuity(myclass) >= <S>
static Standard_Integer NbIntervals (const Handle(Adaptor2d_HCurve2d)& C, const GeomAbs_Shape S);
//! 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()
static void Intervals (const Handle(Adaptor2d_HCurve2d)& C, TColStd_Array1OfReal& T, const GeomAbs_Shape S);
static Standard_Boolean IsClosed (const Handle(Adaptor2d_HCurve2d)& C);
static Standard_Boolean IsPeriodic (const Handle(Adaptor2d_HCurve2d)& C);
static Standard_Real Period (const Handle(Adaptor2d_HCurve2d)& C);
//! Computes the point of parameter U on the curve.
static gp_Pnt2d Value (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U);
//! Computes the point of parameter U on the curve.
static void D0 (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, gp_Pnt2d& P);
//! Computes the point of parameter U on the curve with its
//! first derivative.
//! Raised if the continuity of the current interval
//! is not C1.
static void D1 (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V);
//! Returns the point P of parameter U, the first and second
//! derivatives V1 and V2.
//! Raised if the continuity of the current interval
//! is not C2.
static void D2 (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2);
//! Returns the point P of parameter U, the first, the second
//! and the third derivative.
//! Raised if the continuity of the current interval
//! is not C3.
static void D3 (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& V3);
//! The returned vector gives the value of the derivative for the
//! order of derivation N.
//! Raised if the continuity of the current interval
//! is not CN.
//! Raised if N < 1.
static gp_Vec2d DN (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U, const Standard_Integer N);
//! Returns the parametric resolution corresponding
//! to the real space resolution <R3d>.
static Standard_Real Resolution (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real R3d);
//! Returns the type of the curve in the current
//! interval : Line, Circle, Ellipse, Hyperbola,
//! Parabola, BezierCurve, BSplineCurve, OtherCurve.
static GeomAbs_CurveType GetType (const Handle(Adaptor2d_HCurve2d)& C);
static gp_Lin2d Line (const Handle(Adaptor2d_HCurve2d)& C);
static gp_Circ2d Circle (const Handle(Adaptor2d_HCurve2d)& C);
static gp_Elips2d Ellipse (const Handle(Adaptor2d_HCurve2d)& C);
static gp_Hypr2d Hyperbola (const Handle(Adaptor2d_HCurve2d)& C);
static gp_Parab2d Parabola (const Handle(Adaptor2d_HCurve2d)& C);
static Handle(Geom2d_BezierCurve) Bezier (const Handle(Adaptor2d_HCurve2d)& C);
static Handle(Geom2d_BSplineCurve) BSpline (const Handle(Adaptor2d_HCurve2d)& C);
Standard_EXPORT static Standard_Integer NbSamples (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U0, const Standard_Real U1);
protected:
private:
};
#include <IntPatch_HCurve2dTool.lxx>
#endif // _IntPatch_HCurve2dTool_HeaderFile

View File

@@ -1,222 +0,0 @@
-- Created on: 1995-07-02
-- Created by: Laurent BUCHARD
-- 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.
class HInterTool from IntPatch
---Purpose: Tool for the intersection between 2 surfaces.
-- Regroupe pour l instant les methodes hors Adaptor3d...
uses
HVertex from Adaptor3d,
HCurve2d from Adaptor2d,
HSurface from Adaptor3d,
Pnt2d from gp,
Pnt from gp
is
Create returns HInterTool from IntPatch;
-- Pour polyedres
SingularOnUMin(myclass; S:HSurface from Adaptor3d)
returns Boolean from Standard;
---C++: inline
SingularOnUMax(myclass; S:HSurface from Adaptor3d)
returns Boolean from Standard;
---C++: inline
SingularOnVMin(myclass; S:HSurface from Adaptor3d)
returns Boolean from Standard;
---C++: inline
SingularOnVMax(myclass; S:HSurface from Adaptor3d)
returns Boolean from Standard;
---C++: inline
NbSamplesU(myclass; S: HSurface from Adaptor3d; u1,u2: Real from Standard)
returns Integer from Standard;
NbSamplesV(myclass; S: HSurface from Adaptor3d; v1,v2: Real from Standard)
returns Integer from Standard;
-- Methodes pour recherche des points interieurs
NbSamplePoints(me: in out; S: HSurface from Adaptor3d)
returns Integer from Standard;
SamplePoint(me; S: HSurface from Adaptor3d;
Index: Integer from Standard;
U,V: out Real from Standard);
-- Classify(myclass; S: HSurface from Adaptor3d;
-- U,V: Real from Standard)
--
-- returns State from TopAbs;
-- Methodes sur un arc de restriction
HasBeenSeen(myclass; C: HCurve2d from Adaptor2d)
---Purpose: Returns True if all the intersection point and edges
-- are known on the Arc.
-- The intersection point are given as vertices.
-- The intersection edges are given as intervals between
-- two vertices.
returns Boolean from Standard;
NbSamplesOnArc(myclass; A: HCurve2d from Adaptor2d)
---Purpose: returns the number of points which is used to make
-- a sample on the arc. this number is a function of
-- the Surface and the CurveOnSurface complexity.
returns Integer from Standard;
Bounds(myclass; C: HCurve2d from Adaptor2d;
Ufirst,Ulast: out Real from Standard);
---Purpose: Returns the parametric limits on the arc C.
-- These limits must be finite : they are either
-- the real limits of the arc, for a finite arc,
-- or a bounding box for an infinite arc.
Project(myclass; C: HCurve2d from Adaptor2d;
P: Pnt2d from gp;
Paramproj: out Real from Standard;
Ptproj : out Pnt2d from gp)
---Purpose: Projects the point P on the arc C.
-- If the methods returns Standard_True, the projection is
-- successful, and Paramproj is the parameter on the arc
-- of the projected point, Ptproj is the projected Point.
-- If the method returns Standard_False, Param proj and Ptproj
-- are not significant.
--
returns Boolean from Standard;
-- Methods on a vertex
Tolerance(myclass; V: HVertex from Adaptor3d; C: HCurve2d from Adaptor2d)
---Purpose: Returns the parametric tolerance used to consider
-- that the vertex and another point meet, i-e
-- if Abs(parameter(Vertex) - parameter(OtherPnt))<=
-- Tolerance, the points are "merged".
returns Real from Standard;
Parameter(myclass; V: HVertex from Adaptor3d; C: HCurve2d from Adaptor2d)
---Purpose: Returns the parameter of the vertex V on the arc A.
returns Real from Standard;
-- The following methods are used when HasBeenSeen returns Standard_True
NbPoints(myclass; C: HCurve2d from Adaptor2d)
---Purpose: Returns the number of intersection points on the arc A.
returns Integer from Standard;
Value(myclass; C: HCurve2d from Adaptor2d; Index: Integer from Standard;
Pt: out Pnt from gp; Tol: out Real from Standard;
U: out Real from Standard);
---Purpose: Returns the value (Pt), the tolerance (Tol), and
-- the parameter (U) on the arc A , of the intersection
-- point of range Index.
IsVertex(myclass; C: HCurve2d from Adaptor2d;
Index: Integer from Standard)
---Purpose: Returns True if the intersection point of range Index
-- corresponds with a vertex on the arc A.
returns Boolean from Standard;
Vertex(myclass; C: HCurve2d from Adaptor2d; Index: Integer from Standard;
V: out HVertex from Adaptor3d);
---Purpose: When IsVertex returns True, this method returns the
-- vertex on the arc A.
NbSegments(myclass; C: HCurve2d from Adaptor2d)
---Purpose: returns the number of part of A solution of the
-- of intersection problem.
returns Integer from Standard;
HasFirstPoint(myclass; C: HCurve2d from Adaptor2d;
Index: Integer from Standard;
IndFirst: out Integer from Standard)
---Purpose: Returns True when the segment of range Index is not
-- open at the left side. In that case, IndFirst is the
-- range in the list intersection points (see NbPoints)
-- of the one which defines the left bound of the segment.
-- Otherwise, the method has to return False, and IndFirst
-- has no meaning.
returns Boolean from Standard;
HasLastPoint(myclass; C: HCurve2d from Adaptor2d;
Index: Integer from Standard;
IndLast: out Integer from Standard)
---Purpose: Returns True when the segment of range Index is not
-- open at the right side. In that case, IndLast is the
-- range in the list intersection points (see NbPoints)
-- of the one which defines the right bound of the segment.
-- Otherwise, the method has to return False, and IndLast
-- has no meaning.
returns Boolean from Standard;
IsAllSolution(myclass; C: HCurve2d from Adaptor2d)
---Purpose: Returns True when the whole restriction is solution
-- of the intersection problem.
returns Boolean from Standard;
fields
uinf,vinf,usup,vsup: Real from Standard;
end HInterTool;

View File

@@ -14,18 +14,21 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_HInterTool.ixx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HVertex.hxx>
#include <Extrema_EPCOfExtPC2d.hxx>
#include <Extrema_POnCurv2d.hxx>
#include <GeomAbs_SurfaceType.hxx>
#include <Standard_OutOfRange.hxx>
#include <Geom_BezierSurface.hxx>
#include <Geom_BSplineSurface.hxx>
#include <Geom2d_BezierCurve.hxx>
#include <Geom2d_BSplineCurve.hxx>
#include <Geom_BezierSurface.hxx>
#include <Geom_BSplineSurface.hxx>
#include <GeomAbs_SurfaceType.hxx>
#include <gp_Pnt.hxx>
#include <gp_Pnt2d.hxx>
#include <IntPatch_HInterTool.hxx>
#include <Standard_OutOfRange.hxx>
IntPatch_HInterTool::IntPatch_HInterTool() :
uinf (0.), vinf (0.), usup (0.), vsup (0.)

View File

@@ -0,0 +1,164 @@
// Created on: 1995-07-02
// Created by: Laurent BUCHARD
// 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.
#ifndef _IntPatch_HInterTool_HeaderFile
#define _IntPatch_HInterTool_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 Adaptor3d_HSurface;
class Adaptor2d_HCurve2d;
class gp_Pnt2d;
class Adaptor3d_HVertex;
class gp_Pnt;
//! Tool for the intersection between 2 surfaces.
//! Regroupe pour l instant les methodes hors Adaptor3d...
class IntPatch_HInterTool
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_HInterTool();
static Standard_Boolean SingularOnUMin (const Handle(Adaptor3d_HSurface)& S);
static Standard_Boolean SingularOnUMax (const Handle(Adaptor3d_HSurface)& S);
static Standard_Boolean SingularOnVMin (const Handle(Adaptor3d_HSurface)& S);
static Standard_Boolean SingularOnVMax (const Handle(Adaptor3d_HSurface)& S);
Standard_EXPORT static Standard_Integer NbSamplesU (const Handle(Adaptor3d_HSurface)& S, const Standard_Real u1, const Standard_Real u2);
Standard_EXPORT static Standard_Integer NbSamplesV (const Handle(Adaptor3d_HSurface)& S, const Standard_Real v1, const Standard_Real v2);
Standard_EXPORT Standard_Integer NbSamplePoints (const Handle(Adaptor3d_HSurface)& S);
Standard_EXPORT void SamplePoint (const Handle(Adaptor3d_HSurface)& S, const Standard_Integer Index, Standard_Real& U, Standard_Real& V) const;
//! Returns True if all the intersection point and edges
//! are known on the Arc.
//! The intersection point are given as vertices.
//! The intersection edges are given as intervals between
//! two vertices.
Standard_EXPORT static Standard_Boolean HasBeenSeen (const Handle(Adaptor2d_HCurve2d)& C);
//! returns the number of points which is used to make
//! a sample on the arc. this number is a function of
//! the Surface and the CurveOnSurface complexity.
Standard_EXPORT static Standard_Integer NbSamplesOnArc (const Handle(Adaptor2d_HCurve2d)& A);
//! Returns the parametric limits on the arc C.
//! These limits must be finite : they are either
//! the real limits of the arc, for a finite arc,
//! or a bounding box for an infinite arc.
Standard_EXPORT static void Bounds (const Handle(Adaptor2d_HCurve2d)& C, Standard_Real& Ufirst, Standard_Real& Ulast);
//! Projects the point P on the arc C.
//! If the methods returns Standard_True, the projection is
//! successful, and Paramproj is the parameter on the arc
//! of the projected point, Ptproj is the projected Point.
//! If the method returns Standard_False, Param proj and Ptproj
//! are not significant.
Standard_EXPORT static Standard_Boolean Project (const Handle(Adaptor2d_HCurve2d)& C, const gp_Pnt2d& P, Standard_Real& Paramproj, gp_Pnt2d& Ptproj);
//! Returns the parametric tolerance used to consider
//! that the vertex and another point meet, i-e
//! if Abs(parameter(Vertex) - parameter(OtherPnt))<=
//! Tolerance, the points are "merged".
Standard_EXPORT static Standard_Real Tolerance (const Handle(Adaptor3d_HVertex)& V, const Handle(Adaptor2d_HCurve2d)& C);
//! Returns the parameter of the vertex V on the arc A.
Standard_EXPORT static Standard_Real Parameter (const Handle(Adaptor3d_HVertex)& V, const Handle(Adaptor2d_HCurve2d)& C);
//! Returns the number of intersection points on the arc A.
Standard_EXPORT static Standard_Integer NbPoints (const Handle(Adaptor2d_HCurve2d)& C);
//! Returns the value (Pt), the tolerance (Tol), and
//! the parameter (U) on the arc A , of the intersection
//! point of range Index.
Standard_EXPORT static void Value (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Integer Index, gp_Pnt& Pt, Standard_Real& Tol, Standard_Real& U);
//! Returns True if the intersection point of range Index
//! corresponds with a vertex on the arc A.
Standard_EXPORT static Standard_Boolean IsVertex (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Integer Index);
//! When IsVertex returns True, this method returns the
//! vertex on the arc A.
Standard_EXPORT static void Vertex (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Integer Index, Handle(Adaptor3d_HVertex)& V);
//! returns the number of part of A solution of the
//! of intersection problem.
Standard_EXPORT static Standard_Integer NbSegments (const Handle(Adaptor2d_HCurve2d)& C);
//! Returns True when the segment of range Index is not
//! open at the left side. In that case, IndFirst is the
//! range in the list intersection points (see NbPoints)
//! of the one which defines the left bound of the segment.
//! Otherwise, the method has to return False, and IndFirst
//! has no meaning.
Standard_EXPORT static Standard_Boolean HasFirstPoint (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Integer Index, Standard_Integer& IndFirst);
//! Returns True when the segment of range Index is not
//! open at the right side. In that case, IndLast is the
//! range in the list intersection points (see NbPoints)
//! of the one which defines the right bound of the segment.
//! Otherwise, the method has to return False, and IndLast
//! has no meaning.
Standard_EXPORT static Standard_Boolean HasLastPoint (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Integer Index, Standard_Integer& IndLast);
//! Returns True when the whole restriction is solution
//! of the intersection problem.
Standard_EXPORT static Standard_Boolean IsAllSolution (const Handle(Adaptor2d_HCurve2d)& C);
protected:
private:
Standard_Real uinf;
Standard_Real vinf;
Standard_Real usup;
Standard_Real vsup;
};
#include <IntPatch_HInterTool.lxx>
#endif // _IntPatch_HInterTool_HeaderFile

View File

@@ -0,0 +1,33 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_IType_HeaderFile
#define _IntPatch_IType_HeaderFile
enum IntPatch_IType
{
IntPatch_Lin,
IntPatch_Circle,
IntPatch_Ellipse,
IntPatch_Parabola,
IntPatch_Hyperbola,
IntPatch_Analytic,
IntPatch_Walking,
IntPatch_Restriction
};
#endif // _IntPatch_IType_HeaderFile

View File

@@ -1,198 +0,0 @@
-- Created on: 1992-05-07
-- Created by: Jacques GOUSSARD
-- 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.
class ImpImpIntersection from IntPatch
---Purpose: Implementation of the intersection between two
-- quadric patches : Plane, Cone, Cylinder or Sphere.
uses HSurface from Adaptor3d,
TopolTool from Adaptor3d,
Point from IntPatch,
SequenceOfPoint from IntPatch,
TheSOnBounds from IntPatch,
SequenceOfLine from IntPatch,
Line from IntPatch
raises NotDone from StdFail,
OutOfRange from Standard,
DomainError from Standard,
ConstructionError from Standard
is
Create
returns ImpImpIntersection from IntPatch;
Create (S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard;
theIsReqToKeepRLine: Boolean from Standard = Standard_False)
---Purpose: Flag theIsReqToKeepRLine has been enterred only for
-- compatibility with TopOpeBRep package. It shall be deleted
-- after deleting TopOpeBRep.
-- When intersection result returns IntPatch_RLine and another
-- IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
-- will always keep both lines even if they are coincided.
returns ImpImpIntersection from IntPatch
raises ConstructionError from Standard;
Perform (me: in out;
S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard;
isTheTrimmed: Boolean from Standard = Standard_False;
theIsReqToKeepRLine: Boolean from Standard = Standard_False)
raises ConstructionError from Standard
---Purpose: Flag theIsReqToKeepRLine has been enterred only for
-- compatibility with TopOpeBRep package. It shall be deleted
-- after deleting TopOpeBRep.
-- When intersection result returns IntPatch_RLine and another
-- IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
-- will always keep both lines even if they are coincided.
is static;
IsDone(me)
---Purpose: Returns True if the calculus was succesfull.
returns Boolean from Standard
---C++: inline
is static;
IsEmpty(me)
---Purpose: Returns true if the is no intersection.
returns Boolean from Standard
---C++: inline
raises NotDone from StdFail
is static;
TangentFaces(me)
---Purpose: Returns True if the two patches are considered as
-- entierly tangent, i-e every restriction arc of one
-- patch is inside the geometric base of the otehr patch.
returns Boolean from Standard
---C++: inline
raises NotDone from StdFail
is static;
OppositeFaces(me)
---Purpose: Returns True when the TangentFaces returns True and the
-- normal vectors evaluated at a point on the first and the
-- second surface are opposite.
-- The exception DomainError is raised if TangentFaces
-- returns False.
returns Boolean from Standard
---C++: inline
raises NotDone from StdFail,
DomainError from Standard
is static;
NbPnts(me)
---Purpose: Returns the number of "single" points.
returns Integer from Standard
---C++: inline
raises NotDone from StdFail
is static;
Point(me; Index: Integer from Standard)
---Purpose: Returns the point of range Index.
-- An exception is raised if Index<=0 or Index>NbPnt.
returns Point from IntPatch
---C++: return const&
---C++: inline
raises NotDone from StdFail,
OutOfRange from Standard
is static;
NbLines(me)
---Purpose: Returns the number of intersection lines.
returns Integer from Standard
---C++: inline
raises NotDone from StdFail
is static;
Line(me; Index: Integer from Standard)
---Purpose: Returns the line of range Index.
-- An exception is raised if Index<=0 or Index>NbLine.
returns Line from IntPatch
---C++: inline
---C++: return const&
raises NotDone from StdFail,
OutOfRange from Standard
is static;
fields
done : Boolean from Standard;
empt : Boolean from Standard;
tgte : Boolean from Standard;
oppo : Boolean from Standard;
spnt : SequenceOfPoint from IntPatch;
slin : SequenceOfLine from IntPatch;
solrst : TheSOnBounds from IntPatch;
end ImpImpIntersection;

View File

@@ -14,38 +14,26 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_ImpImpIntersection.ixx>
#include <Standard_ConstructionError.hxx>
#include <IntPatch_SequenceOfLine.hxx>
#include <TColStd_Array1OfInteger.hxx>
#include <TColStd_SequenceOfReal.hxx>
#include <TColgp_SequenceOfPnt.hxx>
#include <IntSurf_Quadric.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HVertex.hxx>
#include <Adaptor3d_TopolTool.hxx>
#include <ElCLib.hxx>
#include <ElSLib.hxx>
#include <gp.hxx>
#include <IntAna_Quadric.hxx>
#include <IntAna_QuadQuadGeo.hxx>
#include <IntAna_IntQuadQuad.hxx>
#include <gp_Pln.hxx>
#include <gp_Cylinder.hxx>
#include <gp_Sphere.hxx>
#include <gp_Cone.hxx>
#include <IntSurf.hxx>
#include <Adaptor3d_HVertex.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <IntPatch_HInterTool.hxx>
#include <gp_Cylinder.hxx>
#include <gp_Pln.hxx>
#include <gp_Sphere.hxx>
#include <IntAna_IntQuadQuad.hxx>
#include <IntAna_QuadQuadGeo.hxx>
#include <IntAna_Quadric.hxx>
#include <IntPatch_ALine.hxx>
#include <IntPatch_ArcFunction.hxx>
#include <IntPatch_GLine.hxx>
#include <IntPatch_ALine.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#include <IntPatch_HInterTool.hxx>
#include <IntPatch_ImpImpIntersection.hxx>
#include <IntPatch_ImpImpIntersection_0.gxx>
#include <IntPatch_ImpImpIntersection_1.gxx>
#include <IntPatch_ImpImpIntersection_2.gxx>
@@ -53,3 +41,18 @@
#include <IntPatch_ImpImpIntersection_4.gxx>
#include <IntPatch_ImpImpIntersection_5.gxx>
#include <IntPatch_ImpImpIntersection_6.gxx>
#include <IntPatch_Line.hxx>
#include <IntPatch_Point.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_SequenceOfLine.hxx>
#include <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#include <IntSurf.hxx>
#include <IntSurf_Quadric.hxx>
#include <Standard_ConstructionError.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <StdFail_NotDone.hxx>
#include <TColgp_SequenceOfPnt.hxx>
#include <TColStd_Array1OfInteger.hxx>
#include <TColStd_SequenceOfReal.hxx>

View File

@@ -0,0 +1,130 @@
// Created on: 1992-05-07
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_ImpImpIntersection_HeaderFile
#define _IntPatch_ImpImpIntersection_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntPatch_SequenceOfPoint.hxx>
#include <IntPatch_SequenceOfLine.hxx>
#include <IntPatch_TheSOnBounds.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
class StdFail_NotDone;
class Standard_OutOfRange;
class Standard_DomainError;
class Standard_ConstructionError;
class Adaptor3d_HSurface;
class Adaptor3d_TopolTool;
class IntPatch_Point;
class IntPatch_Line;
//! Implementation of the intersection between two
//! quadric patches : Plane, Cone, Cylinder or Sphere.
class IntPatch_ImpImpIntersection
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_ImpImpIntersection();
//! Flag theIsReqToKeepRLine has been enterred only for
//! compatibility with TopOpeBRep package. It shall be deleted
//! after deleting TopOpeBRep.
//! When intersection result returns IntPatch_RLine and another
//! IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
//! will always keep both lines even if they are coincided.
Standard_EXPORT IntPatch_ImpImpIntersection(const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Boolean theIsReqToKeepRLine = Standard_False);
//! Flag theIsReqToKeepRLine has been enterred only for
//! compatibility with TopOpeBRep package. It shall be deleted
//! after deleting TopOpeBRep.
//! When intersection result returns IntPatch_RLine and another
//! IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
//! will always keep both lines even if they are coincided.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Boolean isTheTrimmed = Standard_False, const Standard_Boolean theIsReqToKeepRLine = Standard_False);
//! Returns True if the calculus was succesfull.
Standard_Boolean IsDone() const;
//! Returns true if the is no intersection.
Standard_Boolean IsEmpty() const;
//! Returns True if the two patches are considered as
//! entierly tangent, i-e every restriction arc of one
//! patch is inside the geometric base of the otehr patch.
Standard_Boolean TangentFaces() const;
//! Returns True when the TangentFaces returns True and the
//! normal vectors evaluated at a point on the first and the
//! second surface are opposite.
//! The exception DomainError is raised if TangentFaces
//! returns False.
Standard_Boolean OppositeFaces() const;
//! Returns the number of "single" points.
Standard_Integer NbPnts() const;
//! Returns the point of range Index.
//! An exception is raised if Index<=0 or Index>NbPnt.
const IntPatch_Point& Point (const Standard_Integer Index) const;
//! Returns the number of intersection lines.
Standard_Integer NbLines() const;
//! Returns the line of range Index.
//! An exception is raised if Index<=0 or Index>NbLine.
const Handle(IntPatch_Line)& Line (const Standard_Integer Index) const;
protected:
private:
Standard_Boolean done;
Standard_Boolean empt;
Standard_Boolean tgte;
Standard_Boolean oppo;
IntPatch_SequenceOfPoint spnt;
IntPatch_SequenceOfLine slin;
IntPatch_TheSOnBounds solrst;
};
#include <IntPatch_ImpImpIntersection.lxx>
#endif // _IntPatch_ImpImpIntersection_HeaderFile

View File

@@ -1,165 +0,0 @@
-- Created on: 1992-05-07
-- Created by: Jacques GOUSSARD
-- 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.
class ImpPrmIntersection from IntPatch
---Purpose: Implementation of the intersection between a natural
-- quadric patch : Plane, Cone, Cylinder or Sphere and
-- a bi-parametrised surface.
uses
TheSearchInside from IntPatch,
HSurface from Adaptor3d,
TopolTool from Adaptor3d,
Point from IntPatch,
SequenceOfPoint from IntPatch,
TheSOnBounds from IntPatch,
SequenceOfLine from IntPatch,
Line from IntPatch,
PathPointTool from IntSurf,
SequenceOfPathPoint from IntSurf,
Quadric from IntSurf,
QuadricTool from IntSurf,
InteriorPoint from IntSurf,
InteriorPointTool from IntSurf
raises NotDone from StdFail,
OutOfRange from Standard,
DomainError from Standard,
ConstructionError from Standard
is
Create
returns ImpPrmIntersection from IntPatch;
Create(Surf1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
Surf2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang,Fleche,Pas: Real from Standard)
returns ImpPrmIntersection from IntPatch
raises ConstructionError from Standard;
SetStartPoint(me: in out; U,V: Real from Standard)
---Purpose: to search for solution from the given point
is static;
Perform(me: in out;
Surf1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
Surf2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang,Fleche,Pas: Real from Standard)
raises ConstructionError from Standard
is static;
IsDone(me)
---Purpose: Returns true if the calculus was succesfull.
returns Boolean from Standard
---C++: inline
is static;
IsEmpty(me)
---Purpose: Returns true if the is no intersection.
returns Boolean from Standard
---C++: inline
raises NotDone from StdFail
is static;
NbPnts(me)
---Purpose: Returns the number of "single" points.
returns Integer from Standard
---C++: inline
raises NotDone from StdFail
is static;
Point(me; Index: Integer from Standard)
---Purpose: Returns the point of range Index.
-- An exception is raised if Index<=0 or Index>NbPnt.
returns Point from IntPatch
---C++: return const&
---C++: inline
raises NotDone from StdFail,
OutOfRange from Standard
is static;
NbLines(me)
---Purpose: Returns the number of intersection lines.
returns Integer from Standard
---C++: inline
raises NotDone from StdFail
is static;
Line(me; Index: Integer from Standard)
---Purpose: Returns the line of range Index.
-- An exception is raised if Index<=0 or Index>NbLine.
returns Line from IntPatch
---C++: return const&
---C++: inline
raises NotDone from StdFail,
OutOfRange from Standard
is static;
fields
done : Boolean from Standard;
empt : Boolean from Standard;
spnt : SequenceOfPoint from IntPatch;
slin : SequenceOfLine from IntPatch;
solrst : TheSOnBounds from IntPatch;
solins : TheSearchInside from IntPatch;
-- iwalk : TheIWalking from IntPatch;
myIsStartPnt: Boolean from Standard;
myUStart : Real from Standard;
myVStart : Real from Standard;
end ImpPrmIntersection;

View File

@@ -14,28 +14,35 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_ImpPrmIntersection.ixx>
#include <Standard_ConstructionError.hxx>
#include <IntPatch_SequenceOfLine.hxx>
#include <TColStd_Array1OfInteger.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <IntSurf_LineOn2S.hxx>
#include <IntSurf.hxx>
#include <IntSurf_InteriorPoint.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <IntSurf_PathPoint.hxx>
#include <IntSurf_SequenceOfPathPoint.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_TopolTool.hxx>
#include <IntPatch_ArcFunction.hxx>
#include <IntPatch_ImpPrmIntersection.hxx>
#include <IntPatch_Line.hxx>
#include <IntPatch_Point.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_RstInt.hxx>
#include <IntPatch_SequenceOfLine.hxx>
#include <IntPatch_TheIWalking.hxx>
#include <IntPatch_TheIWLineOfTheIWalking.hxx>
#include <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#include <IntPatch_TheSurfFunction.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_WLine.hxx>
#include <IntPatch_ArcFunction.hxx>
#include <IntPatch_RstInt.hxx>
#include <IntSurf.hxx>
#include <IntSurf_InteriorPoint.hxx>
#include <IntSurf_LineOn2S.hxx>
#include <IntSurf_PathPoint.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <IntSurf_SequenceOfPathPoint.hxx>
#include <Standard_ConstructionError.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <StdFail_NotDone.hxx>
#include <TColStd_Array1OfInteger.hxx>
#ifndef OCCT_DEBUG
#define No_Standard_RangeError
#define No_Standard_OutOfRange

View File

@@ -0,0 +1,113 @@
// Created on: 1992-05-07
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_ImpPrmIntersection_HeaderFile
#define _IntPatch_ImpPrmIntersection_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntPatch_SequenceOfPoint.hxx>
#include <IntPatch_SequenceOfLine.hxx>
#include <IntPatch_TheSOnBounds.hxx>
#include <IntPatch_TheSearchInside.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
class StdFail_NotDone;
class Standard_OutOfRange;
class Standard_DomainError;
class Standard_ConstructionError;
class Adaptor3d_HSurface;
class Adaptor3d_TopolTool;
class IntPatch_Point;
class IntPatch_Line;
//! Implementation of the intersection between a natural
//! quadric patch : Plane, Cone, Cylinder or Sphere and
//! a bi-parametrised surface.
class IntPatch_ImpPrmIntersection
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_ImpPrmIntersection();
Standard_EXPORT IntPatch_ImpPrmIntersection(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Real Fleche, const Standard_Real Pas);
//! to search for solution from the given point
Standard_EXPORT void SetStartPoint (const Standard_Real U, const Standard_Real V);
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Real Fleche, const Standard_Real Pas);
//! Returns true if the calculus was succesfull.
Standard_Boolean IsDone() const;
//! Returns true if the is no intersection.
Standard_Boolean IsEmpty() const;
//! Returns the number of "single" points.
Standard_Integer NbPnts() const;
//! Returns the point of range Index.
//! An exception is raised if Index<=0 or Index>NbPnt.
const IntPatch_Point& Point (const Standard_Integer Index) const;
//! Returns the number of intersection lines.
Standard_Integer NbLines() const;
//! Returns the line of range Index.
//! An exception is raised if Index<=0 or Index>NbLine.
const Handle(IntPatch_Line)& Line (const Standard_Integer Index) const;
protected:
private:
Standard_Boolean done;
Standard_Boolean empt;
IntPatch_SequenceOfPoint spnt;
IntPatch_SequenceOfLine slin;
IntPatch_TheSOnBounds solrst;
IntPatch_TheSearchInside solins;
Standard_Boolean myIsStartPnt;
Standard_Real myUStart;
Standard_Real myVStart;
};
#include <IntPatch_ImpPrmIntersection.lxx>
#endif // _IntPatch_ImpPrmIntersection_HeaderFile

View File

@@ -1,109 +0,0 @@
-- Created on: 1992-09-29
-- Created by: Didier PIFFAULT
-- 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.
class InterferencePolyhedron from IntPatch inherits Interference from Intf
---Purpose: Computes the interference between two polyhedra or the
-- self interference of a polyhedron. Points of intersection,
-- polylines of intersection and zones of tangence.
uses Pnt from gp,
XYZ from gp,
Box from Bnd,
SectionPoint from Intf,
SeqOfSectionPoint from Intf,
SectionLine from Intf,
SeqOfSectionLine from Intf,
TangentZone from Intf,
SeqOfTangentZone from Intf,
Polyhedron from IntPatch,
PolyhedronTool from IntPatch
is
-- Interface :
Create returns InterferencePolyhedron from IntPatch;
---Purpose: Constructs an empty interference of Polyhedron.
Create (Obje1 : in Polyhedron from IntPatch;
Obje2 : in Polyhedron from IntPatch)
returns InterferencePolyhedron from IntPatch;
---Purpose: Constructs and computes an interference between the two
-- Polyhedra.
Create (Obje : in Polyhedron from IntPatch)
returns InterferencePolyhedron from IntPatch;
---Purpose: Constructs and computes the self interference of a
-- Polyhedron.
Perform (me : in out;
Obje1 : in Polyhedron from IntPatch;
Obje2 : in Polyhedron from IntPatch);
---Purpose: Computes the interference between the two Polyhedra.
Perform (me : in out;
Obje : in Polyhedron from IntPatch);
---Purpose: Computes the self interference of a Polyhedron.
-- Implementation :
Interference (me : in out;
Obje1 : in Polyhedron from IntPatch)
is private;
Interference (me : in out;
Obje1 : in Polyhedron from IntPatch;
Obje2 : in Polyhedron from IntPatch)
is private;
---Purpose: Compares the bounding volumes between the facets of <Obje1>
-- and the facets of <Obje2> and intersects the facets when the
-- bounding volumes have a common part.
Intersect (me : in out;
TriF : in Integer from Standard;
Obje1 : in Polyhedron from IntPatch;
TriS : in Integer from Standard;
Obje2 : in Polyhedron from IntPatch)
is private;
---Purpose: Computes the intersection between the facet <Tri1> of
-- <FirstPol> and the facet <Tri2> of <SecondPol>.
TangentZoneValue
(me;
TheTZ : in out TangentZone from Intf;
Obje1 : Polyhedron from IntPatch;
Tri1 : Integer from Standard;
Obje2 : Polyhedron from IntPatch;
Tri2 : Integer from Standard)
returns Boolean from Standard
is private;
---Purpose: Computes the zone of tangence between the facet <Tri1> of
-- <FirstPol> and the facet <Tri2> of <SecondPol>.
CoupleCharacteristics (me: in out;
FirstPol: Polyhedron from IntPatch;
SeconPol: Polyhedron from IntPatch) is private;
fields
OI : Integer from Standard[3]; -- index des sommets de l objet
TI : Integer from Standard[3]; -- index des sommets du tool
dpOpT : Real from Standard[3, 3]; -- distance point Objet - point Tool
dpOeT : Real from Standard[3, 3]; -- distance point Objet - edge Tool
deOpT : Real from Standard[3, 3]; -- distance edge Objet - point Tool
voo : XYZ from gp[3]; -- vecteur point point Obje
vtt : XYZ from gp[3]; -- vecteur point point Tool
Incidence: Real from Standard; -- angle entre les deux plans
end InterferencePolyhedron;

View File

@@ -14,27 +14,25 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_InterferencePolyhedron.ixx>
#include <Bnd_BoundSortBox.hxx>
#include <Bnd_HArray1OfBox.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <gp_XYZ.hxx>
#include <Intf.hxx>
#include <Intf_SectionLine.hxx>
#include <Intf_SectionPoint.hxx>
#include <Intf_SeqOfSectionLine.hxx>
#include <Intf_SeqOfSectionPoint.hxx>
#include <Intf_SeqOfTangentZone.hxx>
#include <Intf_TangentZone.hxx>
#include <IntPatch_InterferencePolyhedron.hxx>
#include <IntPatch_Polyhedron.hxx>
#include <IntPatch_PolyhedronTool.hxx>
#include <gp_XYZ.hxx>
#include <gp_Vec.hxx>
#include <gp_Pnt.hxx>
#include <Intf_SectionPoint.hxx>
#include <Intf_SeqOfSectionPoint.hxx>
#include <Intf_SectionLine.hxx>
#include <Intf_SeqOfSectionLine.hxx>
#include <Intf_TangentZone.hxx>
#include <Intf_SeqOfTangentZone.hxx>
#include <Intf.hxx>
#include <Bnd_HArray1OfBox.hxx>
#include <TColStd_ListOfInteger.hxx>
#include <TColStd_ListIteratorOfListOfInteger.hxx>
#include <Bnd_BoundSortBox.hxx>
#include <NCollection_LocalArray.hxx>
#include <TColStd_ListIteratorOfListOfInteger.hxx>
#include <TColStd_ListOfInteger.hxx>
static const int Pourcent3[9] = {0, 1, 2, 0, 1, 2, 0, 1, 2};

View File

@@ -0,0 +1,108 @@
// Created on: 1992-09-29
// Created by: Didier PIFFAULT
// 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.
#ifndef _IntPatch_InterferencePolyhedron_HeaderFile
#define _IntPatch_InterferencePolyhedron_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Real.hxx>
#include <gp_XYZ.hxx>
#include <Intf_Interference.hxx>
#include <Standard_Boolean.hxx>
class IntPatch_Polyhedron;
class Intf_TangentZone;
//! Computes the interference between two polyhedra or the
//! self interference of a polyhedron. Points of intersection,
//! polylines of intersection and zones of tangence.
class IntPatch_InterferencePolyhedron : public Intf_Interference
{
public:
DEFINE_STANDARD_ALLOC
//! Constructs an empty interference of Polyhedron.
Standard_EXPORT IntPatch_InterferencePolyhedron();
//! Constructs and computes an interference between the two
//! Polyhedra.
Standard_EXPORT IntPatch_InterferencePolyhedron(const IntPatch_Polyhedron& Obje1, const IntPatch_Polyhedron& Obje2);
//! Constructs and computes the self interference of a
//! Polyhedron.
Standard_EXPORT IntPatch_InterferencePolyhedron(const IntPatch_Polyhedron& Obje);
//! Computes the interference between the two Polyhedra.
Standard_EXPORT void Perform (const IntPatch_Polyhedron& Obje1, const IntPatch_Polyhedron& Obje2);
//! Computes the self interference of a Polyhedron.
Standard_EXPORT void Perform (const IntPatch_Polyhedron& Obje);
protected:
private:
Standard_EXPORT void Interference (const IntPatch_Polyhedron& Obje1);
//! Compares the bounding volumes between the facets of <Obje1>
//! and the facets of <Obje2> and intersects the facets when the
//! bounding volumes have a common part.
Standard_EXPORT void Interference (const IntPatch_Polyhedron& Obje1, const IntPatch_Polyhedron& Obje2);
//! Computes the intersection between the facet <Tri1> of
//! <FirstPol> and the facet <Tri2> of <SecondPol>.
Standard_EXPORT void Intersect (const Standard_Integer TriF, const IntPatch_Polyhedron& Obje1, const Standard_Integer TriS, const IntPatch_Polyhedron& Obje2);
//! Computes the zone of tangence between the facet <Tri1> of
//! <FirstPol> and the facet <Tri2> of <SecondPol>.
Standard_EXPORT Standard_Boolean TangentZoneValue (Intf_TangentZone& TheTZ, const IntPatch_Polyhedron& Obje1, const Standard_Integer Tri1, const IntPatch_Polyhedron& Obje2, const Standard_Integer Tri2) const;
Standard_EXPORT void CoupleCharacteristics (const IntPatch_Polyhedron& FirstPol, const IntPatch_Polyhedron& SeconPol);
Standard_Integer OI[3];
Standard_Integer TI[3];
Standard_Real dpOpT[3][3];
Standard_Real dpOeT[3][3];
Standard_Real deOpT[3][3];
gp_XYZ voo[3];
gp_XYZ vtt[3];
Standard_Real Incidence;
};
#endif // _IntPatch_InterferencePolyhedron_HeaderFile

View File

@@ -1,307 +0,0 @@
-- Created on: 1993-01-21
-- Created by: Jacques GOUSSARD
-- 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 Intersection from IntPatch
---Purpose: This class provides a generic algorithm to intersect
-- 2 surfaces.
uses
HVertex from Adaptor3d,
HCurve2d from Adaptor2d,
HSurface from Adaptor3d,
Point from IntPatch,
SequenceOfPoint from IntPatch,
TopolTool from Adaptor3d,
SequenceOfLine from IntPatch,
Line from IntPatch,
SurfaceType from GeomAbs,
ListOfPntOn2S from IntSurf
raises NotDone from StdFail,
OutOfRange from Standard,
DomainError from Standard,
ConstructionError from Standard
is
Create
returns Intersection from IntPatch;
Create (S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard)
returns Intersection from IntPatch
raises ConstructionError from Standard;
Create (S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard)
returns Intersection from IntPatch
raises ConstructionError from Standard;
SetTolerances(me : in out;
TolArc : Real from Standard;
TolTang : Real from Standard;
UVMaxStep: Real from Standard;
Fleche : Real from Standard)
---Purpose: Set the tolerances used by the algorithms:
-- --- Implicit - Parametric
-- --- Parametric - Parametric
-- --- Implicit - Implicit
--
-- TolArc is used to compute the intersections
-- between the restrictions of a surface and a
-- walking line.
--
-- TolTang is used to compute the points on a walking
-- line, and in geometric algorithms.
--
-- Fleche is a parameter used in the walking
-- algorithms to provide small curvatures on a line.
--
-- UVMaxStep is a parameter used in the walking
-- algorithms to compute the distance between to
-- points in their respective parametrtic spaces.
--
is static;
Perform (me: in out;
S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard;
isGeomInt : Boolean from Standard = Standard_True;
theIsReqToKeepRLine: Boolean from Standard = Standard_False)
---Purpose: Flag theIsReqToKeepRLine has been enterred only for
-- compatibility with TopOpeBRep package. It shall be deleted
-- after deleting TopOpeBRep.
-- When intersection result returns IntPatch_RLine and another
-- IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
-- will always keep both lines even if they are coincided.
raises ConstructionError from Standard
is static;
--amv
Perform ( me: in out;
S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard;
LOfPnts: in out ListOfPntOn2S from IntSurf;
RestrictLine: Boolean from Standard = Standard_True;
isGeomInt : Boolean from Standard = Standard_True)
---Purpose: If isGeomInt == Standard_False, then method
-- Param-Param intersection will be used.
raises ConstructionError from Standard
is static;
Perform ( me: in out;
S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
U1,V1,U2,V2 : Real from Standard;
TolArc,TolTang: Real from Standard)
raises ConstructionError from Standard
is static;
Perform (me: in out;
S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard)
raises ConstructionError from Standard
is static;
ParamParamPerfom( me: in out;
S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard;
LOfPnts: in out ListOfPntOn2S from IntSurf;
RestrictLine: Boolean from Standard;
typs1, typs2: SurfaceType from GeomAbs)
is private;
GeomGeomPerfom( me: in out;
S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard;
LOfPnts: in out ListOfPntOn2S from IntSurf;
RestrictLine: Boolean from Standard;
typs1, typs2: SurfaceType from GeomAbs;
theIsReqToKeepRLine: Boolean from Standard = Standard_False)
---Purpose: Flag theIsReqToKeepRLine has been enterred only for
-- compatibility with TopOpeBRep package. It shall be deleted
-- after deleting TopOpeBRep.
-- When intersection result returns IntPatch_RLine and another
-- IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
-- will always keep both lines even if they are coincided.
is private;
GeomGeomPerfomTrimSurf( me: in out;
S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
TolArc,TolTang: Real from Standard;
LOfPnts: in out ListOfPntOn2S from IntSurf;
RestrictLine: Boolean from Standard;
typs1, typs2: SurfaceType from GeomAbs;
theIsReqToKeepRLine: Boolean from Standard = Standard_False)
---Purpose: Flag theIsReqToKeepRLine has been enterred only for
-- compatibility with TopOpeBRep package. It shall be deleted
-- after deleting TopOpeBRep.
-- When intersection result returns IntPatch_RLine and another
-- IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
-- will always keep both lines even if they are coincided.
is private;
GeomParamPerfom(me: in out;
S1: HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2: HSurface from Adaptor3d; D2: TopolTool from Adaptor3d;
isNotAnalitical: Boolean from Standard;
typs1, typs2: SurfaceType from GeomAbs)
is private;
IsDone(me)
---Purpose: Returns True if the calculus was succesfull.
returns Boolean from Standard
---C++: inline
is static;
IsEmpty(me)
---Purpose: Returns true if the is no intersection.
---C++: inline
returns Boolean from Standard
raises NotDone from StdFail
is static;
TangentFaces(me)
---Purpose: Returns True if the two patches are considered as
-- entierly tangent, i-e every restriction arc of one
-- patch is inside the geometric base of the other patch.
---C++: inline
returns Boolean from Standard
raises NotDone from StdFail
is static;
OppositeFaces(me)
---Purpose: Returns True when the TangentFaces returns True and the
-- normal vectors evaluated at a point on the first and the
-- second surface are opposite.
-- The exception DomainError is raised if TangentFaces
-- returns False.
---C++: inline
returns Boolean from Standard
raises NotDone from StdFail,
DomainError from Standard
is static;
NbPnts(me)
---Purpose: Returns the number of "single" points.
---C++: inline
returns Integer from Standard
raises NotDone from StdFail
is static;
Point(me; Index: Integer from Standard)
---Purpose: Returns the point of range Index.
-- An exception is raised if Index<=0 or Index>NbPnt.
---C++: return const&
---C++: inline
returns Point from IntPatch
raises NotDone from StdFail,
OutOfRange from Standard
is static;
NbLines(me)
---Purpose: Returns the number of intersection lines.
---C++: inline
returns Integer from Standard
raises NotDone from StdFail
is static;
Line(me; Index: Integer from Standard)
---Purpose: Returns the line of range Index.
-- An exception is raised if Index<=0 or Index>NbLine.
---C++: return const&
---C++: inline
returns Line from IntPatch
raises NotDone from StdFail,
OutOfRange from Standard
is static;
SequenceOfLine(me)
---C++: return const&
returns SequenceOfLine from IntPatch
raises NotDone from StdFail
is static;
Dump(me; Mode : Integer from Standard;
S1 : HSurface from Adaptor3d; D1: TopolTool from Adaptor3d;
S2 : HSurface from Adaptor3d; D2: TopolTool from Adaptor3d)
---Purpose: Dump of each result line.
--- Mode for more accurate dumps.
--
is static;
fields
done : Boolean from Standard;
empt : Boolean from Standard;
tgte : Boolean from Standard;
oppo : Boolean from Standard;
spnt : SequenceOfPoint from IntPatch;
slin : SequenceOfLine from IntPatch;
myTolArc : Real from Standard;
myTolTang : Real from Standard;
myUVMaxStep: Real from Standard;
myFleche : Real from Standard;
myIsStartPnt: Boolean from Standard;
myU1Start : Real from Standard;
myV1Start : Real from Standard;
myU2Start : Real from Standard;
myV2Start : Real from Standard;
end Intersection;

View File

@@ -12,20 +12,27 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_Intersection.ixx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_TopolTool.hxx>
#include <IntPatch_ALine.hxx>
#include <IntPatch_ALineToWLine.hxx>
#include <IntPatch_GLine.hxx>
#include <IntPatch_ALine.hxx>
#include <IntPatch_WLine.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_PrmPrmIntersection.hxx>
#include <IntPatch_ImpPrmIntersection.hxx>
#include <IntPatch_ImpImpIntersection.hxx>
#include <IntPatch_ImpPrmIntersection.hxx>
#include <IntPatch_Intersection.hxx>
#include <IntPatch_Line.hxx>
#include <IntPatch_Point.hxx>
#include <IntPatch_PrmPrmIntersection.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_WLine.hxx>
#include <IntSurf_Quadric.hxx>
#include <Standard_ConstructionError.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <StdFail_NotDone.hxx>
#include <stdio.h>
#define DEBUG 0
static const Standard_Integer aNbPointsInALine = 200;

View File

@@ -0,0 +1,189 @@
// Created on: 1993-01-21
// Created by: Jacques GOUSSARD
// 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 _IntPatch_Intersection_HeaderFile
#define _IntPatch_Intersection_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntPatch_SequenceOfPoint.hxx>
#include <IntPatch_SequenceOfLine.hxx>
#include <Standard_Real.hxx>
#include <IntSurf_ListOfPntOn2S.hxx>
#include <GeomAbs_SurfaceType.hxx>
#include <Standard_Integer.hxx>
class StdFail_NotDone;
class Standard_OutOfRange;
class Standard_DomainError;
class Standard_ConstructionError;
class Adaptor3d_HSurface;
class Adaptor3d_TopolTool;
class IntPatch_Point;
class IntPatch_Line;
//! This class provides a generic algorithm to intersect
//! 2 surfaces.
class IntPatch_Intersection
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_Intersection();
Standard_EXPORT IntPatch_Intersection(const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang);
Standard_EXPORT IntPatch_Intersection(const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Standard_Real TolArc, const Standard_Real TolTang);
//! Set the tolerances used by the algorithms:
//! --- Implicit - Parametric
//! --- Parametric - Parametric
//! --- Implicit - Implicit
//!
//! TolArc is used to compute the intersections
//! between the restrictions of a surface and a
//! walking line.
//!
//! TolTang is used to compute the points on a walking
//! line, and in geometric algorithms.
//!
//! Fleche is a parameter used in the walking
//! algorithms to provide small curvatures on a line.
//!
//! UVMaxStep is a parameter used in the walking
//! algorithms to compute the distance between to
//! points in their respective parametrtic spaces.
Standard_EXPORT void SetTolerances (const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Real UVMaxStep, const Standard_Real Fleche);
//! Flag theIsReqToKeepRLine has been enterred only for
//! compatibility with TopOpeBRep package. It shall be deleted
//! after deleting TopOpeBRep.
//! When intersection result returns IntPatch_RLine and another
//! IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
//! will always keep both lines even if they are coincided.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, const Standard_Boolean isGeomInt = Standard_True, const Standard_Boolean theIsReqToKeepRLine = Standard_False);
//! If isGeomInt == Standard_False, then method
//! Param-Param intersection will be used.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, IntSurf_ListOfPntOn2S& LOfPnts, const Standard_Boolean RestrictLine = Standard_True, const Standard_Boolean isGeomInt = Standard_True);
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real TolArc, const Standard_Real TolTang);
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Standard_Real TolArc, const Standard_Real TolTang);
//! Returns True if the calculus was succesfull.
Standard_Boolean IsDone() const;
//! Returns true if the is no intersection.
Standard_Boolean IsEmpty() const;
//! Returns True if the two patches are considered as
//! entierly tangent, i-e every restriction arc of one
//! patch is inside the geometric base of the other patch.
Standard_Boolean TangentFaces() const;
//! Returns True when the TangentFaces returns True and the
//! normal vectors evaluated at a point on the first and the
//! second surface are opposite.
//! The exception DomainError is raised if TangentFaces
//! returns False.
Standard_Boolean OppositeFaces() const;
//! Returns the number of "single" points.
Standard_Integer NbPnts() const;
//! Returns the point of range Index.
//! An exception is raised if Index<=0 or Index>NbPnt.
const IntPatch_Point& Point (const Standard_Integer Index) const;
//! Returns the number of intersection lines.
Standard_Integer NbLines() const;
//! Returns the line of range Index.
//! An exception is raised if Index<=0 or Index>NbLine.
const Handle(IntPatch_Line)& Line (const Standard_Integer Index) const;
Standard_EXPORT const IntPatch_SequenceOfLine& SequenceOfLine() const;
//! Dump of each result line.
//! Mode for more accurate dumps.
Standard_EXPORT void Dump (const Standard_Integer Mode, const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2) const;
protected:
private:
Standard_EXPORT void ParamParamPerfom (const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, IntSurf_ListOfPntOn2S& LOfPnts, const Standard_Boolean RestrictLine, const GeomAbs_SurfaceType typs1, const GeomAbs_SurfaceType typs2);
//! Flag theIsReqToKeepRLine has been enterred only for
//! compatibility with TopOpeBRep package. It shall be deleted
//! after deleting TopOpeBRep.
//! When intersection result returns IntPatch_RLine and another
//! IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
//! will always keep both lines even if they are coincided.
Standard_EXPORT void GeomGeomPerfom (const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, IntSurf_ListOfPntOn2S& LOfPnts, const Standard_Boolean RestrictLine, const GeomAbs_SurfaceType typs1, const GeomAbs_SurfaceType typs2, const Standard_Boolean theIsReqToKeepRLine = Standard_False);
//! Flag theIsReqToKeepRLine has been enterred only for
//! compatibility with TopOpeBRep package. It shall be deleted
//! after deleting TopOpeBRep.
//! When intersection result returns IntPatch_RLine and another
//! IntPatch_Line (not restriction) we (in case of theIsReqToKeepRLine==TRUE)
//! will always keep both lines even if they are coincided.
Standard_EXPORT void GeomGeomPerfomTrimSurf (const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real TolArc, const Standard_Real TolTang, IntSurf_ListOfPntOn2S& LOfPnts, const Standard_Boolean RestrictLine, const GeomAbs_SurfaceType typs1, const GeomAbs_SurfaceType typs2, const Standard_Boolean theIsReqToKeepRLine = Standard_False);
Standard_EXPORT void GeomParamPerfom (const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Boolean isNotAnalitical, const GeomAbs_SurfaceType typs1, const GeomAbs_SurfaceType typs2);
Standard_Boolean done;
Standard_Boolean empt;
Standard_Boolean tgte;
Standard_Boolean oppo;
IntPatch_SequenceOfPoint spnt;
IntPatch_SequenceOfLine slin;
Standard_Real myTolArc;
Standard_Real myTolTang;
Standard_Real myUVMaxStep;
Standard_Real myFleche;
Standard_Boolean myIsStartPnt;
Standard_Real myU1Start;
Standard_Real myV1Start;
Standard_Real myU2Start;
Standard_Real myV2Start;
};
#include <IntPatch_Intersection.lxx>
#endif // _IntPatch_Intersection_HeaderFile

View File

@@ -1,225 +0,0 @@
-- Created on: 1992-05-06
-- Created by: Jacques GOUSSARD
-- 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.
deferred class Line from IntPatch
inherits TShared from MMgt
---Purpose: Definition of an intersection line between two
-- surfaces.
-- A line may be either geometric : line, circle, ellipse,
-- parabola, hyperbola, as defined in the class GLine,
-- or analytic, as defined in the class ALine, or defined
-- by a set of points (coming from a walking algorithm) as
-- defined in the class WLine.
uses TypeTrans from IntSurf,
Situation from IntSurf,
IType from IntPatch,
Lin from gp,
Circ from gp,
Parab from gp,
Elips from gp,
Hypr from gp,
Pnt from gp,
Vec from gp
raises DomainError from Standard,
OutOfRange from Standard
is
Initialize(Tang: Boolean from Standard;
Trans1,Trans2: TypeTrans from IntSurf);
---Purpose: To initialize the fields, when the transitions
-- are In or Out.
Initialize(Tang: Boolean from Standard;
Situ1,Situ2: Situation from IntSurf);
---Purpose: To initialize the fields, when the transitions
-- are Touch.
Initialize(Tang: Boolean from Standard);
---Purpose: To initialize the fields, when the transitions
-- are Undecided.
SetValue(me: mutable; Uiso1,Viso1,Uiso2,Viso2: Boolean from Standard)
---Purpose: To set the values returned by IsUIsoS1,....
-- The default values are False.
---C++: inline
is static;
ArcType (me)
---Purpose: Returns the type of geometry 3d (Line, Circle, Parabola,
-- Hyperbola, Ellipse, Analytic, Walking, Restriction)
returns IType from IntPatch
---C++: inline
is static;
IsTangent(me)
---Purpose: Returns TRUE if the intersection is a line of tangency
-- between the 2 patches.
returns Boolean from Standard
---C++: inline
is static;
TransitionOnS1(me)
---Purpose: Returns the type of the transition of the line
-- for the first surface. The transition is "constant"
-- along the line.
-- The transition is IN if the line is oriented in such
-- a way that the system of vector (N1,N2,T) is right-handed,
-- where N1 is the normal to the first surface at a point P,
-- N2 is the normal to the second surface at a point P,
-- T is the tangent to the intersection line at P.
-- If the system of vector is left-handed, the transition
-- is OUT.
-- When N1 and N2 are colinear all along the intersection
-- line, the transition will be
-- - TOUCH, if it is possible to use the 2nd derivatives
-- to determine the position of one surafce compared
-- to the other (see Situation)
-- - UNDECIDED otherwise.
--
-- If one of the transition is TOUCH or UNDECIDED, the other
-- one has got the same value.
returns TypeTrans from IntSurf
---C++: inline
is static;
TransitionOnS2(me)
---Purpose: Returns the type of the transition of the line
-- for the second surface. The transition is "constant"
-- along the line.
returns TypeTrans from IntSurf
---C++: inline
is static;
SituationS1(me)
---Purpose: Returns the situation (INSIDE/OUTSIDE/UNKNOWN) of
-- the first patch compared to the second one, when
-- TransitionOnS1 or TransitionOnS2 returns TOUCH.
-- Otherwise, an exception is raised.
returns Situation from IntSurf
---C++: inline
raises DomainError from Standard
is static;
SituationS2(me)
---Purpose: Returns the situation (INSIDE/OUTSIDE/UNKNOWN) of
-- the second patch compared to the first one, when
-- TransitionOnS1 or TransitionOnS2 returns TOUCH.
-- Otherwise, an exception is raised.
returns Situation from IntSurf
---C++: inline
raises DomainError from Standard
is static;
IsUIsoOnS1(me)
---Purpose: Returns TRUE if the intersection is a U isoparametric curve
-- on the first patch.
returns Boolean from Standard
---C++: inline
is static;
IsVIsoOnS1(me)
---Purpose: Returns TRUE if the intersection is a V isoparametric curve
-- on the first patch.
returns Boolean from Standard
---C++: inline
is static;
IsUIsoOnS2(me)
---Purpose: Returns TRUE if the intersection is a U isoparametric curve
-- on the second patch.
returns Boolean from Standard
---C++: inline
is static;
IsVIsoOnS2(me)
---Purpose: Returns TRUE if the intersection is a V isoparametric curve
-- on the second patch.
returns Boolean from Standard
---C++: inline
is static;
fields
typ : IType from IntPatch is protected;
tg : Boolean from Standard;
tS1 : TypeTrans from IntSurf;
tS2 : TypeTrans from IntSurf;
sit1 : Situation from IntSurf;
sit2 : Situation from IntSurf;
uS1 : Boolean from Standard;
vS1 : Boolean from Standard;
uS2 : Boolean from Standard;
vS2 : Boolean from Standard;
end Line;

View File

@@ -12,8 +12,11 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_Line.ixx>
#include <IntPatch_Line.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <Standard_Type.hxx>
IntPatch_Line::IntPatch_Line (const Standard_Boolean Tang,
const IntSurf_TypeTrans Trans1,

View File

@@ -0,0 +1,160 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_Line_HeaderFile
#define _IntPatch_Line_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <IntPatch_IType.hxx>
#include <Standard_Boolean.hxx>
#include <IntSurf_TypeTrans.hxx>
#include <IntSurf_Situation.hxx>
#include <MMgt_TShared.hxx>
class Standard_DomainError;
class Standard_OutOfRange;
class IntPatch_Line;
DEFINE_STANDARD_HANDLE(IntPatch_Line, MMgt_TShared)
//! Definition of an intersection line between two
//! surfaces.
//! A line may be either geometric : line, circle, ellipse,
//! parabola, hyperbola, as defined in the class GLine,
//! or analytic, as defined in the class ALine, or defined
//! by a set of points (coming from a walking algorithm) as
//! defined in the class WLine.
class IntPatch_Line : public MMgt_TShared
{
public:
//! To set the values returned by IsUIsoS1,....
//! The default values are False.
void SetValue (const Standard_Boolean Uiso1, const Standard_Boolean Viso1, const Standard_Boolean Uiso2, const Standard_Boolean Viso2);
//! Returns the type of geometry 3d (Line, Circle, Parabola,
//! Hyperbola, Ellipse, Analytic, Walking, Restriction)
IntPatch_IType ArcType() const;
//! Returns TRUE if the intersection is a line of tangency
//! between the 2 patches.
Standard_Boolean IsTangent() const;
//! Returns the type of the transition of the line
//! for the first surface. The transition is "constant"
//! along the line.
//! The transition is IN if the line is oriented in such
//! a way that the system of vector (N1,N2,T) is right-handed,
//! where N1 is the normal to the first surface at a point P,
//! N2 is the normal to the second surface at a point P,
//! T is the tangent to the intersection line at P.
//! If the system of vector is left-handed, the transition
//! is OUT.
//! When N1 and N2 are colinear all along the intersection
//! line, the transition will be
//! - TOUCH, if it is possible to use the 2nd derivatives
//! to determine the position of one surafce compared
//! to the other (see Situation)
//! - UNDECIDED otherwise.
//!
//! If one of the transition is TOUCH or UNDECIDED, the other
//! one has got the same value.
IntSurf_TypeTrans TransitionOnS1() const;
//! Returns the type of the transition of the line
//! for the second surface. The transition is "constant"
//! along the line.
IntSurf_TypeTrans TransitionOnS2() const;
//! Returns the situation (INSIDE/OUTSIDE/UNKNOWN) of
//! the first patch compared to the second one, when
//! TransitionOnS1 or TransitionOnS2 returns TOUCH.
//! Otherwise, an exception is raised.
IntSurf_Situation SituationS1() const;
//! Returns the situation (INSIDE/OUTSIDE/UNKNOWN) of
//! the second patch compared to the first one, when
//! TransitionOnS1 or TransitionOnS2 returns TOUCH.
//! Otherwise, an exception is raised.
IntSurf_Situation SituationS2() const;
//! Returns TRUE if the intersection is a U isoparametric curve
//! on the first patch.
Standard_Boolean IsUIsoOnS1() const;
//! Returns TRUE if the intersection is a V isoparametric curve
//! on the first patch.
Standard_Boolean IsVIsoOnS1() const;
//! Returns TRUE if the intersection is a U isoparametric curve
//! on the second patch.
Standard_Boolean IsUIsoOnS2() const;
//! Returns TRUE if the intersection is a V isoparametric curve
//! on the second patch.
Standard_Boolean IsVIsoOnS2() const;
DEFINE_STANDARD_RTTI(IntPatch_Line,MMgt_TShared)
protected:
//! To initialize the fields, when the transitions
//! are In or Out.
Standard_EXPORT IntPatch_Line(const Standard_Boolean Tang, const IntSurf_TypeTrans Trans1, const IntSurf_TypeTrans Trans2);
//! To initialize the fields, when the transitions
//! are Touch.
Standard_EXPORT IntPatch_Line(const Standard_Boolean Tang, const IntSurf_Situation Situ1, const IntSurf_Situation Situ2);
//! To initialize the fields, when the transitions
//! are Undecided.
Standard_EXPORT IntPatch_Line(const Standard_Boolean Tang);
IntPatch_IType typ;
private:
Standard_Boolean tg;
IntSurf_TypeTrans tS1;
IntSurf_TypeTrans tS2;
IntSurf_Situation sit1;
IntSurf_Situation sit2;
Standard_Boolean uS1;
Standard_Boolean vS1;
Standard_Boolean uS2;
Standard_Boolean vS2;
};
#include <IntPatch_Line.lxx>
#endif // _IntPatch_Line_HeaderFile

View File

@@ -1,79 +0,0 @@
-- Created on: 1996-11-07
-- Created by: Laurent BUCHARD
-- Copyright (c) 1996-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 LineConstructor from IntPatch
---Purpose: The intersections algorithms compute the intersection
-- on two surfaces and return the intersections lines as
-- IntPatch_Line.
-- a IntPatch Line contains a geometrical part and
-- several topological informations (the intersections
-- between the intersection curve and the restrictions of
-- the faces.)
--
-- The LineConstructor algorithm takes an IntPatch_Line
-- and compute on this object the sections which belong
-- to the two faces (which are inside the restrictions
-- of the faces)
--
uses
HSurface from Adaptor3d,
TopolTool from Adaptor3d,
SequenceOfLine from IntPatch,
Line from IntPatch,
SurfaceType from GeomAbs
is
Create(mode : Integer from Standard)
--Purpose: ***** THE ONLY MODE SUPPORTED IS MODE=2 *****
--Purpose: mode = 0 .... Nothing is done
--
-- mode = 1 .... Only cuts the line.
--
-- mode = 2 .... Cuts the line and keep the valid lines
--
returns LineConstructor from IntPatch;
Perform(me: in out;
SL : SequenceOfLine from IntPatch;
L : Line from IntPatch;
S1 : HSurface from Adaptor3d;
D1 : TopolTool from Adaptor3d;
S2 : HSurface from Adaptor3d;
D2 : TopolTool from Adaptor3d;
Tol: Real from Standard)
is static;
NbLines(me)
returns Integer from Standard
is static;
Line(me; index: Integer from Standard)
returns Line from IntPatch
is static;
fields
slin : SequenceOfLine from IntPatch;
end LineConstructor;

View File

@@ -14,13 +14,16 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_LineConstructor.ixx>
#include <IntPatch_GLine.hxx>
#include <IntPatch_ALine.hxx>
#include <IntPatch_WLine.hxx>
#include <IntPatch_RLine.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_TopolTool.hxx>
#include <IntPatch_ALine.hxx>
#include <IntPatch_GLine.hxx>
#include <IntPatch_Line.hxx>
#include <IntPatch_LineConstructor.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_WLine.hxx>
#define XPU1009 1

View File

@@ -0,0 +1,74 @@
// Created on: 1996-11-07
// Created by: Laurent BUCHARD
// Copyright (c) 1996-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 _IntPatch_LineConstructor_HeaderFile
#define _IntPatch_LineConstructor_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <IntPatch_SequenceOfLine.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Real.hxx>
class IntPatch_Line;
class Adaptor3d_HSurface;
class Adaptor3d_TopolTool;
//! The intersections algorithms compute the intersection
//! on two surfaces and return the intersections lines as
//! IntPatch_Line.
class IntPatch_LineConstructor
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_LineConstructor(const Standard_Integer mode);
Standard_EXPORT void Perform (const IntPatch_SequenceOfLine& SL, const Handle(IntPatch_Line)& L, const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_TopolTool)& D1, const Handle(Adaptor3d_HSurface)& S2, const Handle(Adaptor3d_TopolTool)& D2, const Standard_Real Tol);
Standard_EXPORT Standard_Integer NbLines() const;
Standard_EXPORT Handle(IntPatch_Line) Line (const Standard_Integer index) const;
protected:
private:
IntPatch_SequenceOfLine slin;
};
#endif // _IntPatch_LineConstructor_HeaderFile

View File

@@ -1,446 +0,0 @@
-- Created on: 1992-05-06
-- Created by: Jacques GOUSSARD
-- 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.
class Point from IntPatch
---Purpose: Definition of an intersection point between two surfaces.
-- Such a point is contains geometrical informations (see
-- the Value method) and logical informations.
uses
HVertex from Adaptor3d,
HCurve2d from Adaptor2d,
PntOn2S from IntSurf,
Transition from IntSurf,
Pnt from gp
raises DomainError from Standard
is
Create
---Purpose: Empty constructor.
---C++: inline
returns Point from IntPatch;
SetValue(me: in out; Pt: Pnt from gp; Tol: Real from Standard;
Tangent: Boolean from Standard)
---Purpose: Sets the values of a point which is on no domain,
-- when both surfaces are implicit ones.
-- If Tangent is True, the point is a point of tangency
-- between the surfaces.
is static;
SetValue(me: in out; Pt: Pnt from gp)
---C++: inline
is static;
SetTolerance(me: in out; Tol: Real from Standard)
---C++: inline
is static;
SetParameters(me: in out; U1,V1,U2,V2: Real from Standard)
---Purpose: Sets the values of the parameters of the point
-- on each surface.
---C++: inline
is static;
SetParameter(me: in out; Para: Real from Standard)
---Purpose: Set the value of the parameter on the intersection line.
---C++: inline
is static;
SetVertex(me: in out; OnFirst: Boolean from Standard; V: HVertex from Adaptor3d)
---Purpose: Sets the values of a point which is a vertex on
-- the initial facet of restriction of one
-- of the surface.
-- If OnFirst is True, the point is on the domain of the
-- first patch, otherwise the point is on the domain of the
-- second surface.
is static;
SetArc(me: in out; OnFirst: Boolean from Standard;
A: HCurve2d from Adaptor2d; Param: Real from Standard;
TLine, TArc: Transition from IntSurf)
---Purpose: Sets the values of a point which is on one of the domain,
-- when both surfaces are implicit ones.
-- If OnFirst is True, the point is on the domain of the
-- first patch, otherwise the point is on the domain of the
-- second surface.
is static;
SetMultiple(me: in out; IsMult: Boolean from Standard)
---Purpose: Sets (or unsets) the point as a point on several
-- intersection line.
---C++: inline
is static;
Value(me)
---Purpose: Returns the intersection point (geometric information).
returns Pnt from gp
---C++: return const&
---C++: inline
is static;
ParameterOnLine(me)
---Purpose: This method returns the parameter of the point
-- on the intersection line.
-- If the points does not belong to an intersection line,
-- the value returned does not have any sens.
returns Real from Standard
---C++: inline
is static;
Tolerance(me)
---Purpose: This method returns the fuzziness on the point.
returns Real from Standard
---C++: inline
is static;
IsTangencyPoint(me)
---Purpose: Returns True if the Point is a tangency point between
-- the surfaces.
-- If the Point is on one of the domain (IsOnDomS1 returns
-- True or IsOnDomS2 returns True), an exception is raised.
returns Boolean from Standard
---C++: inline
raises DomainError from Standard
is static;
ParametersOnS1(me; U1,V1: out Real from Standard)
---Purpose: Returns the parameters on the first surface of the point.
raises DomainError from Standard
---C++: inline
is static;
ParametersOnS2(me; U2,V2: out Real from Standard)
---Purpose: Returns the parameters on the second surface of the point.
raises DomainError from Standard
---C++: inline
is static;
IsMultiple(me)
---Purpose: Returns True if the point belongs to several intersection
-- lines.
returns Boolean from Standard
---C++: inline
is static;
IsOnDomS1(me)
---Purpose: Returns TRUE if the point is on a boundary of the domain
-- of the first patch.
returns Boolean from Standard
---C++: inline
is static;
IsVertexOnS1(me)
---Purpose: Returns TRUE if the point is a vertex on the initial
-- restriction facet of the first surface.
returns Boolean from Standard
---C++: inline
is static;
VertexOnS1(me)
---Purpose: Returns the information about the point when it is
-- on the domain of the first patch, i-e when the function
-- IsVertexOnS1 returns True.
-- Otherwise, an exception is raised.
returns HVertex from Adaptor3d
---C++: return const&
---C++: inline
raises DomainError from Standard
is static;
ArcOnS1(me)
---Purpose: Returns the arc of restriction containing the
-- vertex.
-- The exception DomainError is raised if
-- IsOnDomS1 returns False.
returns HCurve2d from Adaptor2d
---C++: return const&
---C++: inline
raises DomainError from Standard
is static;
TransitionLineArc1(me)
---Purpose: Returns the transition of the point on the
-- intersection line with the arc on S1.
-- The exception DomainError is raised if IsOnDomS1
-- returns False.
returns Transition from IntSurf
---C++: return const&
---C++: inline
raises DomainError from Standard
is static;
TransitionOnS1(me)
---Purpose: Returns the transition between the intersection line
-- returned by the method Line and the arc on S1 returned
-- by ArcOnS1().
-- The exception DomainError is raised if
-- IsOnDomS1 returns False.
returns Transition from IntSurf
---C++: return const&
---C++: inline
raises DomainError from Standard
is static;
ParameterOnArc1(me)
---Purpose: Returns the parameter of the point on the
-- arc returned by the method ArcOnS2.
-- The exception DomainError is raised if
-- IsOnDomS1 returns False.
returns Real from Standard
---C++: inline
raises DomainError from Standard
is static;
IsOnDomS2(me)
---Purpose: Returns TRUE if the point is on a boundary of the domain
-- of the second patch.
returns Boolean from Standard
---C++: inline
is static;
IsVertexOnS2(me)
---Purpose: Returns TRUE if the point is a vertex on the initial
-- restriction facet of the first surface.
returns Boolean from Standard
---C++: inline
is static;
VertexOnS2(me)
---Purpose: Returns the information about the point when it is
-- on the domain of the second patch, i-e when the function
-- IsVertexOnS2 returns True.
-- Otherwise, an exception is raised.
returns HVertex from Adaptor3d
---C++: return const&
---C++: inline
raises DomainError from Standard
is static;
ArcOnS2(me)
---Purpose: Returns the arc of restriction containing the
-- vertex.
-- The exception DomainError is raised if
-- IsOnDomS2 returns False.
returns HCurve2d from Adaptor2d
---C++: return const&
---C++: inline
raises DomainError from Standard
is static;
TransitionLineArc2(me)
---Purpose: Returns the transition of the point on the
-- intersection line with the arc on S2.
-- The exception DomainError is raised if IsOnDomS2
-- returns False.
returns Transition from IntSurf
---C++: return const&
---C++: inline
raises DomainError from Standard
is static;
TransitionOnS2(me)
---Purpose: Returns the transition between the intersection line
-- returned by the method Line and the arc on S2 returned
-- by ArcOnS2.
-- The exception DomainError is raised if
-- IsOnDomS2 returns False.
returns Transition from IntSurf
---C++: return const&
---C++: inline
raises DomainError from Standard
is static;
ParameterOnArc2(me)
---Purpose: Returns the parameter of the point on the
-- arc returned by the method ArcOnS2.
-- The exception DomainError is raised if
-- IsOnDomS2 returns False.
returns Real from Standard
---C++: inline
raises DomainError from Standard
is static;
PntOn2S(me)
---Purpose: Returns the PntOn2S
-- (geometric Point and the parameters)
--
---C++: inline
---C++: return const &
returns PntOn2S from IntSurf
is static;
Parameters(me; U1,V1,U2,V2: out Real from Standard)
---Purpose: Returns the parameters on the first and on the
-- second surface of the point.
raises DomainError from Standard
---C++: inline
is static;
ReverseTransition(me: in out)
is static;
Dump(me)
is static;
fields
pt : PntOn2S from IntSurf;
para : Real from Standard;
tol : Real from Standard;
tgt : Boolean from Standard;
mult : Boolean from Standard;
onS1 : Boolean from Standard;
vtxonS1 : Boolean from Standard;
vS1 : HVertex from Adaptor3d;
arcS1 : HCurve2d from Adaptor2d;
traline1 : Transition from IntSurf;
tra1 : Transition from IntSurf;
prm1 : Real from Standard;
onS2 : Boolean from Standard;
vtxonS2 : Boolean from Standard;
vS2 : HVertex from Adaptor3d;
arcS2 : HCurve2d from Adaptor2d;
traline2 : Transition from IntSurf;
tra2 : Transition from IntSurf;
prm2 : Real from Standard;
end Point;

View File

@@ -14,12 +14,16 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_Point.ixx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Adaptor3d_HVertex.hxx>
#include <gp_Pnt.hxx>
#include <IntPatch_Point.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <IntSurf_Transition.hxx>
#include <Standard_DomainError.hxx>
#include <stdio.h>
void IntPatch_Point::SetValue (const gp_Pnt& Pt,
const Standard_Real Tol,
const Standard_Boolean Tangent)

View File

@@ -0,0 +1,246 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_Point_HeaderFile
#define _IntPatch_Point_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
#include <IntSurf_Transition.hxx>
class Adaptor3d_HVertex;
class Adaptor2d_HCurve2d;
class Standard_DomainError;
class gp_Pnt;
class IntSurf_Transition;
class IntSurf_PntOn2S;
//! Definition of an intersection point between two surfaces.
//! Such a point is contains geometrical informations (see
//! the Value method) and logical informations.
class IntPatch_Point
{
public:
DEFINE_STANDARD_ALLOC
//! Empty constructor.
Standard_EXPORT IntPatch_Point();
//! Sets the values of a point which is on no domain,
//! when both surfaces are implicit ones.
//! If Tangent is True, the point is a point of tangency
//! between the surfaces.
Standard_EXPORT void SetValue (const gp_Pnt& Pt, const Standard_Real Tol, const Standard_Boolean Tangent);
void SetValue (const gp_Pnt& Pt);
void SetTolerance (const Standard_Real Tol);
//! Sets the values of the parameters of the point
//! on each surface.
void SetParameters (const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
//! Set the value of the parameter on the intersection line.
void SetParameter (const Standard_Real Para);
//! Sets the values of a point which is a vertex on
//! the initial facet of restriction of one
//! of the surface.
//! If OnFirst is True, the point is on the domain of the
//! first patch, otherwise the point is on the domain of the
//! second surface.
Standard_EXPORT void SetVertex (const Standard_Boolean OnFirst, const Handle(Adaptor3d_HVertex)& V);
//! Sets the values of a point which is on one of the domain,
//! when both surfaces are implicit ones.
//! If OnFirst is True, the point is on the domain of the
//! first patch, otherwise the point is on the domain of the
//! second surface.
Standard_EXPORT void SetArc (const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, const IntSurf_Transition& TLine, const IntSurf_Transition& TArc);
//! Sets (or unsets) the point as a point on several
//! intersection line.
void SetMultiple (const Standard_Boolean IsMult);
//! Returns the intersection point (geometric information).
const gp_Pnt& Value() const;
//! This method returns the parameter of the point
//! on the intersection line.
//! If the points does not belong to an intersection line,
//! the value returned does not have any sens.
Standard_Real ParameterOnLine() const;
//! This method returns the fuzziness on the point.
Standard_Real Tolerance() const;
//! Returns True if the Point is a tangency point between
//! the surfaces.
//! If the Point is on one of the domain (IsOnDomS1 returns
//! True or IsOnDomS2 returns True), an exception is raised.
Standard_Boolean IsTangencyPoint() const;
//! Returns the parameters on the first surface of the point.
void ParametersOnS1 (Standard_Real& U1, Standard_Real& V1) const;
//! Returns the parameters on the second surface of the point.
void ParametersOnS2 (Standard_Real& U2, Standard_Real& V2) const;
//! Returns True if the point belongs to several intersection
//! lines.
Standard_Boolean IsMultiple() const;
//! Returns TRUE if the point is on a boundary of the domain
//! of the first patch.
Standard_Boolean IsOnDomS1() const;
//! Returns TRUE if the point is a vertex on the initial
//! restriction facet of the first surface.
Standard_Boolean IsVertexOnS1() const;
//! Returns the information about the point when it is
//! on the domain of the first patch, i-e when the function
//! IsVertexOnS1 returns True.
//! Otherwise, an exception is raised.
const Handle(Adaptor3d_HVertex)& VertexOnS1() const;
//! Returns the arc of restriction containing the
//! vertex.
//! The exception DomainError is raised if
//! IsOnDomS1 returns False.
const Handle(Adaptor2d_HCurve2d)& ArcOnS1() const;
//! Returns the transition of the point on the
//! intersection line with the arc on S1.
//! The exception DomainError is raised if IsOnDomS1
//! returns False.
const IntSurf_Transition& TransitionLineArc1() const;
//! Returns the transition between the intersection line
//! returned by the method Line and the arc on S1 returned
//! by ArcOnS1().
//! The exception DomainError is raised if
//! IsOnDomS1 returns False.
const IntSurf_Transition& TransitionOnS1() const;
//! Returns the parameter of the point on the
//! arc returned by the method ArcOnS2.
//! The exception DomainError is raised if
//! IsOnDomS1 returns False.
Standard_Real ParameterOnArc1() const;
//! Returns TRUE if the point is on a boundary of the domain
//! of the second patch.
Standard_Boolean IsOnDomS2() const;
//! Returns TRUE if the point is a vertex on the initial
//! restriction facet of the first surface.
Standard_Boolean IsVertexOnS2() const;
//! Returns the information about the point when it is
//! on the domain of the second patch, i-e when the function
//! IsVertexOnS2 returns True.
//! Otherwise, an exception is raised.
const Handle(Adaptor3d_HVertex)& VertexOnS2() const;
//! Returns the arc of restriction containing the
//! vertex.
//! The exception DomainError is raised if
//! IsOnDomS2 returns False.
const Handle(Adaptor2d_HCurve2d)& ArcOnS2() const;
//! Returns the transition of the point on the
//! intersection line with the arc on S2.
//! The exception DomainError is raised if IsOnDomS2
//! returns False.
const IntSurf_Transition& TransitionLineArc2() const;
//! Returns the transition between the intersection line
//! returned by the method Line and the arc on S2 returned
//! by ArcOnS2.
//! The exception DomainError is raised if
//! IsOnDomS2 returns False.
const IntSurf_Transition& TransitionOnS2() const;
//! Returns the parameter of the point on the
//! arc returned by the method ArcOnS2.
//! The exception DomainError is raised if
//! IsOnDomS2 returns False.
Standard_Real ParameterOnArc2() const;
//! Returns the PntOn2S
//! (geometric Point and the parameters)
const IntSurf_PntOn2S& PntOn2S() const;
//! Returns the parameters on the first and on the
//! second surface of the point.
void Parameters (Standard_Real& U1, Standard_Real& V1, Standard_Real& U2, Standard_Real& V2) const;
Standard_EXPORT void ReverseTransition();
Standard_EXPORT void Dump() const;
protected:
private:
IntSurf_PntOn2S pt;
Standard_Real para;
Standard_Real tol;
Standard_Boolean tgt;
Standard_Boolean mult;
Standard_Boolean onS1;
Standard_Boolean vtxonS1;
Handle(Adaptor3d_HVertex) vS1;
Handle(Adaptor2d_HCurve2d) arcS1;
IntSurf_Transition traline1;
IntSurf_Transition tra1;
Standard_Real prm1;
Standard_Boolean onS2;
Standard_Boolean vtxonS2;
Handle(Adaptor3d_HVertex) vS2;
Handle(Adaptor2d_HCurve2d) arcS2;
IntSurf_Transition traline2;
IntSurf_Transition tra2;
Standard_Real prm2;
};
#include <IntPatch_Point.lxx>
#endif // _IntPatch_Point_HeaderFile

View File

@@ -1,75 +0,0 @@
-- Created on: 2015-02-18
-- Created by: Nikolai BUKHALOV
-- Copyright (c) 1992-1999 Matra Datavision
-- Copyright (c) 1999-2015 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 PointLine from IntPatch
inherits Line from IntPatch
---Purpose: Definition of an intersection line between two
-- surfaces.
-- A line defined by a set of points
-- (e.g. coming from a walking algorithm) as
-- defined in the class WLine or RLine (Restriction line).
uses TypeTrans from IntSurf,
Situation from IntSurf,
PntOn2S from IntSurf
raises DomainError from Standard,
OutOfRange from Standard
is
Initialize(Tang: Boolean from Standard;
Trans1,Trans2: TypeTrans from IntSurf);
---Purpose: To initialize the fields, when the transitions
-- are In or Out.
Initialize(Tang: Boolean from Standard;
Situ1,Situ2: Situation from IntSurf);
---Purpose: To initialize the fields, when the transitions
-- are Touch.
Initialize(Tang: Boolean from Standard);
---Purpose: To initialize the fields, when the transitions
-- are Undecided.
NbPnts(me) returns Integer from Standard
---Purpose: Returns the number of intersection points.
is deferred;
Point(me; Index : Integer from Standard) returns PntOn2S from IntSurf
---Purpose: Returns the intersection point of range Index.
---C++: return const&
raises OutOfRange from Standard,
DomainError from Standard
--- The exception DomainError is raised if HasPolygon returns False.
--- The exception OutOfRange is raised if Index <= 0 or Index > NbPnts.
is deferred;
-- fields
end Line;

View File

@@ -14,8 +14,12 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_PointLine.ixx>
#include <IntPatch_PointLine.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <Standard_Type.hxx>
IntPatch_PointLine::IntPatch_PointLine (const Standard_Boolean Tang,
const IntSurf_TypeTrans Trans1,

View File

@@ -0,0 +1,88 @@
// Created on: 2015-02-18
// Created by: Nikolai BUKHALOV
// Copyright (c) 1992-1999 Matra Datavision
// Copyright (c) 1999-2015 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 _IntPatch_PointLine_HeaderFile
#define _IntPatch_PointLine_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <IntPatch_Line.hxx>
#include <Standard_Boolean.hxx>
#include <IntSurf_TypeTrans.hxx>
#include <IntSurf_Situation.hxx>
#include <Standard_Integer.hxx>
class Standard_DomainError;
class Standard_OutOfRange;
class IntSurf_PntOn2S;
class IntPatch_PointLine;
DEFINE_STANDARD_HANDLE(IntPatch_PointLine, IntPatch_Line)
//! Definition of an intersection line between two
//! surfaces.
//! A line defined by a set of points
//! (e.g. coming from a walking algorithm) as
//! defined in the class WLine or RLine (Restriction line).
class IntPatch_PointLine : public IntPatch_Line
{
public:
//! Returns the number of intersection points.
Standard_EXPORT virtual Standard_Integer NbPnts() const = 0;
//! Returns the intersection point of range Index.
Standard_EXPORT virtual const IntSurf_PntOn2S& Point (const Standard_Integer Index) const = 0;
DEFINE_STANDARD_RTTI(IntPatch_PointLine,IntPatch_Line)
protected:
//! To initialize the fields, when the transitions
//! are In or Out.
Standard_EXPORT IntPatch_PointLine(const Standard_Boolean Tang, const IntSurf_TypeTrans Trans1, const IntSurf_TypeTrans Trans2);
//! To initialize the fields, when the transitions
//! are Touch.
Standard_EXPORT IntPatch_PointLine(const Standard_Boolean Tang, const IntSurf_Situation Situ1, const IntSurf_Situation Situ2);
//! To initialize the fields, when the transitions
//! are Undecided.
Standard_EXPORT IntPatch_PointLine(const Standard_Boolean Tang);
private:
};
#endif // _IntPatch_PointLine_HeaderFile

View File

@@ -1,64 +0,0 @@
-- Created on: 1993-01-27
-- Created by: Isabelle GRIGNON
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class PolyArc from IntPatch
inherits Polygo from IntPatch
uses Box2d from Bnd,
Pnt2d from gp,
Array1OfPnt2d from TColgp,
Array1OfReal from TColStd,
HCurve2d from Adaptor2d
raises ConstructionError from Standard
is
Create(A: HCurve2d from Adaptor2d; NbSample: Integer from Standard;
Pfirst,Plast : Real from Standard;
BoxOtherPolygon: Box2d from Bnd)
---Purpose: Creates the polygon of the arc A on the surface S.
-- The arc is limited by the parameters Pfirst and Plast.
-- None of these parameters can be infinite.
returns PolyArc from IntPatch
raises ConstructionError from Standard;
--- This exception is raised if Pfirst=RealFirst or Plast=RealLast or
-- NbSample<=1.
Closed(me) returns Boolean from Standard is redefined virtual;
NbPoints(me) returns Integer;
Point(me; Index : Integer) returns Pnt2d from gp;
Parameter(me ; Index : Integer) returns Real from Standard;
SetOffset(me:in out; OffsetX,OffsetY: Real from Standard);
fields
brise : Array1OfPnt2d from TColgp;
param : Array1OfReal from TColStd;
offsetx: Real from Standard;
offsety: Real from Standard;
ferme : Boolean from Standard;
end PolyArc;

View File

@@ -14,8 +14,11 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_PolyArc.ixx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Bnd_Box2d.hxx>
#include <gp_Pnt2d.hxx>
#include <IntPatch_PolyArc.hxx>
#include <Standard_ConstructionError.hxx>
inline void MinMax (const Standard_Real a1, const Standard_Real a2,

View File

@@ -0,0 +1,87 @@
// Created on: 1993-01-27
// Created by: Isabelle GRIGNON
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _IntPatch_PolyArc_HeaderFile
#define _IntPatch_PolyArc_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TColgp_Array1OfPnt2d.hxx>
#include <TColStd_Array1OfReal.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
#include <IntPatch_Polygo.hxx>
#include <Standard_Integer.hxx>
class Standard_ConstructionError;
class Adaptor2d_HCurve2d;
class Bnd_Box2d;
class gp_Pnt2d;
class IntPatch_PolyArc : public IntPatch_Polygo
{
public:
DEFINE_STANDARD_ALLOC
//! Creates the polygon of the arc A on the surface S.
//! The arc is limited by the parameters Pfirst and Plast.
//! None of these parameters can be infinite.
Standard_EXPORT IntPatch_PolyArc(const Handle(Adaptor2d_HCurve2d)& A, const Standard_Integer NbSample, const Standard_Real Pfirst, const Standard_Real Plast, const Bnd_Box2d& BoxOtherPolygon);
Standard_EXPORT virtual Standard_Boolean Closed() const Standard_OVERRIDE;
Standard_EXPORT Standard_Integer NbPoints() const;
Standard_EXPORT gp_Pnt2d Point (const Standard_Integer Index) const;
Standard_EXPORT Standard_Real Parameter (const Standard_Integer Index) const;
Standard_EXPORT void SetOffset (const Standard_Real OffsetX, const Standard_Real OffsetY);
protected:
private:
TColgp_Array1OfPnt2d brise;
TColStd_Array1OfReal param;
Standard_Real offsetx;
Standard_Real offsety;
Standard_Boolean ferme;
};
#endif // _IntPatch_PolyArc_HeaderFile

View File

@@ -1,60 +0,0 @@
-- Created on: 1993-01-29
-- Created by: Isabelle GRIGNON
-- Copyright (c) 1993-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class PolyLine from IntPatch
inherits Polygo from IntPatch
uses Pnt2d from gp,
Box2d from Bnd,
IType from IntPatch,
WLine from IntPatch,
RLine from IntPatch
is
Create
returns PolyLine from IntPatch;
Create (InitDefle: Real from Standard)
returns PolyLine from IntPatch;
SetWLine(me: in out; OnFirst: Boolean from Standard; Line: WLine from IntPatch)
is static;
SetRLine(me: in out; OnFirst: Boolean from Standard; Line: RLine from IntPatch)
is static;
Prepare(me: in out)
is static private;
ResetError(me: in out);
NbPoints(me) returns Integer;
Point(me; Index : Integer)
returns Pnt2d from gp;
fields
pnt : Pnt2d from gp;
typ : IType from IntPatch;
onfirst : Boolean from Standard;
wpoly : WLine from IntPatch;
rpoly : RLine from IntPatch;
end PolyLine;

View File

@@ -17,8 +17,10 @@
//-- lbr le 12 juin : Ajout des fleches sur les Lines
//-- msv 13.03.2002 : compute deflection for WLine; Error() returns deflection
#include <IntPatch_PolyLine.ixx>
#include <gp_Pnt2d.hxx>
#include <IntPatch_PolyLine.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_WLine.hxx>
#include <Precision.hxx>
#define INITDEFLE Precision::PConfusion()*100.

View File

@@ -0,0 +1,87 @@
// Created on: 1993-01-29
// Created by: Isabelle GRIGNON
// Copyright (c) 1993-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _IntPatch_PolyLine_HeaderFile
#define _IntPatch_PolyLine_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <gp_Pnt2d.hxx>
#include <IntPatch_IType.hxx>
#include <Standard_Boolean.hxx>
#include <IntPatch_Polygo.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
class IntPatch_WLine;
class IntPatch_RLine;
class gp_Pnt2d;
class IntPatch_PolyLine : public IntPatch_Polygo
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_PolyLine();
Standard_EXPORT IntPatch_PolyLine(const Standard_Real InitDefle);
Standard_EXPORT void SetWLine (const Standard_Boolean OnFirst, const Handle(IntPatch_WLine)& Line);
Standard_EXPORT void SetRLine (const Standard_Boolean OnFirst, const Handle(IntPatch_RLine)& Line);
Standard_EXPORT void ResetError();
Standard_EXPORT Standard_Integer NbPoints() const;
Standard_EXPORT gp_Pnt2d Point (const Standard_Integer Index) const;
protected:
private:
Standard_EXPORT void Prepare();
gp_Pnt2d pnt;
IntPatch_IType typ;
Standard_Boolean onfirst;
Handle(IntPatch_WLine) wpoly;
Handle(IntPatch_RLine) rpoly;
};
#endif // _IntPatch_PolyLine_HeaderFile

View File

@@ -1,62 +0,0 @@
-- Created on: 1993-05-06
-- Created by: Jacques GOUSSARD
-- 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 Polygo from IntPatch
---Purpose:
inherits Polygon2d from Intf
uses Pnt2d from gp,
Box2d from Bnd
raises OutOfRange from Standard
is
Initialize (theError : Real from Standard = 0.0)
returns Polygo from IntPatch;
Error (me) returns Real from Standard;
---C++: inline
NbPoints (me) returns Integer is deferred;
Point (me; Index : Integer) returns Pnt2d from gp is deferred;
DeflectionOverEstimation (me)
returns Real from Standard is redefined virtual;
---C++: inline
---Purpose: Returns the tolerance of the polygon.
NbSegments (me)
returns Integer from Standard is redefined virtual;
---C++: inline
---Purpose: Returns the number of Segments in the polyline.
Segment (me; theIndex : in Integer from Standard;
theBegin, theEnd : in out Pnt2d from gp)
raises OutOfRange from Standard is redefined virtual;
---C++: inline
---Purpose: Returns the points of the segment <Index> in the Polygon.
Dump (me);
fields
myError : Real from Standard is protected;
end Polygo;

View File

@@ -14,13 +14,15 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_Polygo.ixx>
#include <gp_Pnt2d.hxx>
#include <IntPatch_Polygo.hxx>
#include <Standard_OutOfRange.hxx>
//=======================================================================
//function : Initialize
//purpose :
//=======================================================================
IntPatch_Polygo::IntPatch_Polygo (const Standard_Real theError)
: myError(theError)
{}

View File

@@ -0,0 +1,83 @@
// Created on: 1993-05-06
// Created by: Jacques GOUSSARD
// 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 _IntPatch_Polygo_HeaderFile
#define _IntPatch_Polygo_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Real.hxx>
#include <Intf_Polygon2d.hxx>
#include <Standard_Integer.hxx>
class Standard_OutOfRange;
class gp_Pnt2d;
class IntPatch_Polygo : public Intf_Polygon2d
{
public:
DEFINE_STANDARD_ALLOC
Standard_Real Error() const;
Standard_EXPORT virtual Standard_Integer NbPoints() const = 0;
Standard_EXPORT virtual gp_Pnt2d Point (const Standard_Integer Index) const = 0;
//! Returns the tolerance of the polygon.
virtual Standard_Real DeflectionOverEstimation() const Standard_OVERRIDE;
//! Returns the number of Segments in the polyline.
virtual Standard_Integer NbSegments() const Standard_OVERRIDE;
//! Returns the points of the segment <Index> in the Polygon.
virtual void Segment (const Standard_Integer theIndex, gp_Pnt2d& theBegin, gp_Pnt2d& theEnd) const Standard_OVERRIDE;
Standard_EXPORT void Dump() const;
protected:
Standard_EXPORT IntPatch_Polygo(const Standard_Real theError = 0.0);
Standard_Real myError;
private:
};
#include <IntPatch_Polygo.lxx>
#endif // _IntPatch_Polygo_HeaderFile

View File

@@ -1,253 +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.
class Polyhedron from IntPatch
---Purpose: This class provides a linear approximation of the PSurface.
--- preview a constructor on a zone of a surface
uses
HSurface from Adaptor3d,
XYZ from gp,
Pnt from gp,
Array2OfPnt from TColgp,
Array2OfReal from TColStd,
Box from Bnd,
HArray1OfBox from Bnd
raises OutOfRange from Standard
is
Create (Surface : HSurface from Adaptor3d;
nbdU,nbdV : Integer)
returns Polyhedron from IntPatch;
---Purpose: MaTriangle constructor with an double array of pnt for the
-- representation of a double array of triangles.
Create (Surface : HSurface from Adaptor3d)
returns Polyhedron from IntPatch;
Destroy(me:in out);
---C++: alias ~
Perform (me:in out; Surface : HSurface from Adaptor3d;
nbdU,nbdV: Integer)
is static;
DeflectionOverEstimation
(me : in out; flec : Real from Standard)
is static;
DeflectionOnTriangle
(me;
Surface : HSurface from Adaptor3d;
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)
is static;
---Purpose: Get the size of the MaTriangle.
NbTriangles (me)
returns Integer
is static;
---Purpose: Give the number of triangles in this double array of
-- triangles (nbdu*nbdv*2).
Triangle (me;
Index : in Integer;
P1,P2,P3 : out Integer)
raises OutOfRange from Standard
is static;
---Purpose: Give the 3 points of the triangle of addresse Index in
-- the double array of triangles.
TriConnex (me;
Triang : in Integer;
Pivot,Pedge : in Integer;
TriCon : out Integer;
OtherP : out Integer)
returns Integer from Standard
raises OutOfRange from Standard
is static;
---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.
NbPoints (me)
returns Integer from Standard
is static;
---Purpose: Give the number of point in the double array of
-- triangles ((nbdu+1)*(nbdv+1)).
Point (me : in out ;
thePnt : in Pnt from gp;
lig, col : in Integer;
U,V : in Real from Standard)
raises OutOfRange from Standard
is static;
---Purpose: Set the value of a field of the double array of
-- points.
Point (me;
Index : in Integer;
U,V : out Real from Standard)
returns Pnt from gp
raises OutOfRange from Standard
is static;
---Purpose: Give the point of index i in the MaTriangle.
---C++: return const &
Point (me;
Index : in Integer)
returns Pnt from gp
raises OutOfRange from Standard
is static;
---Purpose: Give the point of index i in the MaTriangle.
---C++: return const &
Point (me;
Index : in Integer;
P : out Pnt from gp)
raises OutOfRange from Standard
is static;
---Purpose: Give the point of index i in the MaTriangle.
Bounding (me)
returns Box from Bnd
is static;
---Purpose: Give the bounding box of the MaTriangle.
---C++: return const &
FillBounding (me : in out)
is static;
---Purpose: Compute the array of boxes. The box <n> corresponding
-- to the triangle <n>.
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
is static;
-- Test needings :
Dump (me)
is static;
fields
TheBnd : Box from Bnd;
TheComponentsBnd: HArray1OfBox from Bnd;
TheDeflection : Real from Standard;
nbdeltaU : Integer from Standard;
nbdeltaV : Integer 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;
end Polyhedron;

View File

@@ -14,19 +14,22 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_Polyhedron.ixx>
#include <IntPatch_HInterTool.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Bnd_Array1OfBox.hxx>
#include <Bnd_Box.hxx>
#include <gp_Pnt.hxx>
#include <gp_Vec.hxx>
#include <gp_XYZ.hxx>
#include <IntPatch_HInterTool.hxx>
#include <IntPatch_Polyhedron.hxx>
#include <Precision.hxx>
#include <Standard_ConstructionError.hxx>
#include <Standard_OutOfRange.hxx>
#include <TColgp_Array2OfPnt.hxx>
#include <TColStd_Array2OfReal.hxx>
#include <Bnd_Array1OfBox.hxx>
#include <Standard_ConstructionError.hxx>
#include <Precision.hxx>
#include <stdio.h>
#include <stdio.h>
#define MSG_DEBUG 0
#define LONGUEUR_MINI_EDGE_TRIANGLE 1e-14

View File

@@ -0,0 +1,174 @@
// 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.
#ifndef _IntPatch_Polyhedron_HeaderFile
#define _IntPatch_Polyhedron_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Bnd_Box.hxx>
#include <Bnd_HArray1OfBox.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Address.hxx>
#include <Standard_Boolean.hxx>
class Standard_OutOfRange;
class Adaptor3d_HSurface;
class gp_Pnt;
class Bnd_Box;
class gp_XYZ;
//! This class provides a linear approximation of the PSurface.
//! preview a constructor on a zone of a surface
class IntPatch_Polyhedron
{
public:
DEFINE_STANDARD_ALLOC
//! MaTriangle constructor with an double array of pnt for the
//! representation of a double array of triangles.
Standard_EXPORT IntPatch_Polyhedron(const Handle(Adaptor3d_HSurface)& Surface, const Standard_Integer nbdU, const Standard_Integer nbdV);
Standard_EXPORT IntPatch_Polyhedron(const Handle(Adaptor3d_HSurface)& Surface);
Standard_EXPORT void Destroy();
~IntPatch_Polyhedron()
{
Destroy();
}
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Surface, const Standard_Integer nbdU, const Standard_Integer nbdV);
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);
//! Get the size of the MaTriangle.
Standard_EXPORT void Size (Standard_Integer& nbdu, Standard_Integer& nbdv) const;
//! Give the number of triangles in this double array of
//! triangles (nbdu*nbdv*2).
Standard_EXPORT Standard_Integer NbTriangles() const;
//! Give the 3 points of the triangle of addresse Index in
//! the double array of triangles.
Standard_EXPORT void Triangle (const Standard_Integer Index, Standard_Integer& P1, Standard_Integer& P2, Standard_Integer& P3) const;
//! 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.
Standard_EXPORT Standard_Integer TriConnex (const Standard_Integer Triang, const Standard_Integer Pivot, const Standard_Integer Pedge, Standard_Integer& TriCon, Standard_Integer& OtherP) const;
//! Give the number of point in the double array of
//! triangles ((nbdu+1)*(nbdv+1)).
Standard_EXPORT Standard_Integer NbPoints() const;
//! Set the value of a field of the double array of
//! points.
Standard_EXPORT void Point (const gp_Pnt& thePnt, const Standard_Integer lig, const Standard_Integer col, const Standard_Real U, const Standard_Real V);
//! Give the point of index i in the MaTriangle.
Standard_EXPORT const gp_Pnt& Point (const Standard_Integer Index, Standard_Real& U, Standard_Real& V) const;
//! Give the point of index i in the MaTriangle.
Standard_EXPORT const gp_Pnt& Point (const Standard_Integer Index) const;
//! Give the point of index i in the MaTriangle.
Standard_EXPORT void Point (const Standard_Integer Index, gp_Pnt& P) const;
//! Give the bounding box of the MaTriangle.
Standard_EXPORT const Bnd_Box& Bounding() const;
//! Compute the array of boxes. The box <n> corresponding
//! to the triangle <n>.
Standard_EXPORT void FillBounding();
//! Give the array of boxes. The box <n> corresponding
//! to the triangle <n>.
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;
//! Give the plane equation of the triangle of addresse Triang.
Standard_EXPORT void PlaneEquation (const Standard_Integer Triang, gp_XYZ& NormalVector, Standard_Real& PolarDistance) const;
//! Give the plane equation of the triangle of addresse Triang.
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 void Dump() const;
protected:
private:
Bnd_Box TheBnd;
Handle(Bnd_HArray1OfBox) TheComponentsBnd;
Standard_Real TheDeflection;
Standard_Integer nbdeltaU;
Standard_Integer nbdeltaV;
Standard_Address C_MyPnts;
Standard_Address C_MyU;
Standard_Address C_MyV;
Standard_Boolean UMinSingular;
Standard_Boolean UMaxSingular;
Standard_Boolean VMinSingular;
Standard_Boolean VMaxSingular;
};
#endif // _IntPatch_Polyhedron_HeaderFile

View File

@@ -1,98 +0,0 @@
-- Created on: 1993-05-06
-- Created by: Jacques GOUSSARD
-- 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 PolyhedronTool from IntPatch
---Purpose: Describe the signature of a polyedral surface with
-- only triangular facets and the necessary informations
-- to compute the interferences.
uses
Polyhedron from IntPatch,
XYZ from gp,
Pnt from gp,
Box from Bnd,
HArray1OfBox from Bnd
raises OutOfRange from Standard
is Bounding (myclass; thePolyh : Polyhedron from IntPatch)
returns Box from Bnd;
---Purpose: Give the bounding box of the Polyhedron.
---C++: return const &
---C++: inline
ComponentsBounding
(myclass; thePolyh : Polyhedron from IntPatch)
returns HArray1OfBox from Bnd;
---Purpose: Give the array of boxes. The box <n> corresponding
-- to the triangle <n>.
---C++: return const &
---C++: inline
DeflectionOverEstimation
(myclass; thePolyh : Polyhedron from IntPatch)
returns Real from Standard;
---Purpose: Give the tolerance of the polygon.
---C++: inline
-- Structure needings :
NbTriangles (myclass; thePolyh : Polyhedron from IntPatch)
returns Integer from Standard;
---Purpose: Give the number of triangles in this polyedral surface.
---C++: inline
Triangle (myclass; thePolyh : Polyhedron from IntPatch;
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 Polyhedron.
---C++: inline
Point (myclass; thePolyh : Polyhedron from IntPatch;
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 : Polyhedron from IntPatch;
Triang : in Integer;
Pivot,Pedge : in Integer;
TriCon : out Integer;
OtherP : out Integer)
returns Integer
raises OutOfRange from Standard;
---Purpose: Gives 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
end PolyhedronTool;

View File

@@ -14,4 +14,9 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_PolyhedronTool.ixx>
#include <Bnd_Box.hxx>
#include <gp_Pnt.hxx>
#include <IntPatch_Polyhedron.hxx>
#include <IntPatch_PolyhedronTool.hxx>
#include <Standard_OutOfRange.hxx>

View File

@@ -0,0 +1,95 @@
// Created on: 1993-05-06
// Created by: Jacques GOUSSARD
// 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 _IntPatch_PolyhedronTool_HeaderFile
#define _IntPatch_PolyhedronTool_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Bnd_HArray1OfBox.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
class Standard_OutOfRange;
class Bnd_Box;
class IntPatch_Polyhedron;
class gp_Pnt;
//! Describe the signature of a polyedral surface with
//! only triangular facets and the necessary informations
//! to compute the interferences.
class IntPatch_PolyhedronTool
{
public:
DEFINE_STANDARD_ALLOC
//! Give the bounding box of the Polyhedron.
static const Bnd_Box& Bounding (const IntPatch_Polyhedron& thePolyh);
//! Give the array of boxes. The box <n> corresponding
//! to the triangle <n>.
static const Handle(Bnd_HArray1OfBox)& ComponentsBounding (const IntPatch_Polyhedron& thePolyh);
//! Give the tolerance of the polygon.
static Standard_Real DeflectionOverEstimation (const IntPatch_Polyhedron& thePolyh);
//! Give the number of triangles in this polyedral surface.
static Standard_Integer NbTriangles (const IntPatch_Polyhedron& thePolyh);
//! Give the indices of the 3 points of the triangle of
//! address Index in the Polyhedron.
static void Triangle (const IntPatch_Polyhedron& thePolyh, const Standard_Integer Index, Standard_Integer& P1, Standard_Integer& P2, Standard_Integer& P3);
//! Give the point of index i in the polyedral surface.
static const gp_Pnt& Point (const IntPatch_Polyhedron& thePolyh, const Standard_Integer Index);
//! Gives 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.
static Standard_Integer TriConnex (const IntPatch_Polyhedron& thePolyh, const Standard_Integer Triang, const Standard_Integer Pivot, const Standard_Integer Pedge, Standard_Integer& TriCon, Standard_Integer& OtherP);
protected:
private:
};
#include <IntPatch_PolyhedronTool.lxx>
#endif // _IntPatch_PolyhedronTool_HeaderFile

View File

@@ -1,360 +0,0 @@
-- Created on: 1993-01-28
-- 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 PrmPrmIntersection from IntPatch
---Purpose: Implementation of the Intersection between two
-- bi-parametrised surfaces.
--
-- To avoid multiple constructions of the approximated
-- polyhedron of the surfaces, the algorithm can be
-- called whith the two surfaces and their associated
-- polyhedron.
--
uses
Polyhedron from IntPatch,
HSurface from Adaptor3d,
TopolTool from Adaptor3d,
Line from IntPatch,
SequenceOfLine from IntPatch,
PrmPrmIntersection_T3Bits from IntPatch,
LineOn2S from IntSurf,
--amv
ListOfPntOn2S from IntSurf
raises OutOfRange from Standard,
NotDone from StdFail
is
Create
---Purpose : Empty Constructor
returns PrmPrmIntersection from IntPatch;
Perform(me:in out;
Caro1 : HSurface from Adaptor3d;
Polyhedron1 : Polyhedron from IntPatch;
Domain1 : TopolTool from Adaptor3d;
Caro2 : HSurface from Adaptor3d;
Polyhedron2 : Polyhedron from IntPatch;
Domain2 : TopolTool from Adaptor3d;
TolTangency,
Epsilon,
Deflection,
Increment : Real from Standard)
---Purpose: Performs the intersection between <Caro1> and
-- <Caro2>. Associated Polyhedrons <Polyhedron1>
-- and <Polyhedron2> are given.
is static;
Perform(me:in out;
Caro1 : HSurface from Adaptor3d;
Polyhedron1 : Polyhedron from IntPatch;
Domain1 : TopolTool from Adaptor3d;
TolTangency,
Epsilon,
Deflection,
Increment : Real from Standard)
is static;
Perform(me :in out;
Caro1 : HSurface from Adaptor3d;
Domain1 : TopolTool from Adaptor3d;
Caro2 : HSurface from Adaptor3d;
Domain2 : TopolTool from Adaptor3d;
TolTangency,
Epsilon,
Deflection,
Increment : Real from Standard;
--amv
ClearFlag : Boolean from Standard = Standard_True)
---Purpose: Performs the intersection between <Caro1> and
-- <Caro2>. The method computes the polyhedron on
-- each surface.
is static;
--amv
Perform(me :in out;
Caro1 : HSurface from Adaptor3d;
Domain1 : TopolTool from Adaptor3d;
Caro2 : HSurface from Adaptor3d;
Domain2 : TopolTool from Adaptor3d;
TolTangency,
Epsilon,
Deflection,
Increment : Real from Standard;
ListOfPnts: in out ListOfPntOn2S from IntSurf;
RestrictLine: Boolean from Standard)
---Purpose: Performs the intersection between <Caro1> and
-- <Caro2>. The method computes the polyhedron on
-- each surface.
is static;
Perform(me :in out;
Caro1 : HSurface from Adaptor3d;
Domain1 : TopolTool from Adaptor3d;
Caro2 : HSurface from Adaptor3d;
Domain2 : TopolTool from Adaptor3d;
U1,V1,U2,V2 : Real from Standard;
TolTangency,
Epsilon,
Deflection,
Increment : Real from Standard)
---Purpose: Performs the intersection between <Caro1> and
-- <Caro2>. The method computes the polyhedron on
-- each surface.
is static;
Perform(me :in out;
Caro1 : HSurface from Adaptor3d;
Domain1 : TopolTool from Adaptor3d;
TolTangency,
Epsilon,
Deflection,
Increment : Real from Standard)
---Purpose: Performs the intersection between <Caro1> and
-- <Caro2>. The method computes the polyhedron on
-- each surface.
is static;
Perform(me:in out;
Caro1 : HSurface from Adaptor3d;
Domain1 : TopolTool from Adaptor3d;
Caro2 : HSurface from Adaptor3d;
Polyhedron2 : Polyhedron from IntPatch;
Domain2 : TopolTool from Adaptor3d;
TolTangency,
Epsilon,
Deflection,
Increment : Real from Standard)
---Purpose: Performs the intersection between <Caro1> and
-- <Caro2>.
--
-- The polyhedron which approximates <Caro2>,
-- <Polyhedron2> is given. The other one is
-- computed.
is static;
Perform(me:in out;
Caro1 : HSurface from Adaptor3d;
Polyhedron1 : Polyhedron from IntPatch;
Domain1 : TopolTool from Adaptor3d;
Caro2 : HSurface from Adaptor3d;
Domain2 : TopolTool from Adaptor3d;
TolTangency,
Epsilon,
Deflection,
Increment : Real from Standard)
---Purpose: Performs the intersection between <Caro1> and
-- <Caro2>.
--
-- The polyhedron which approximates <Caro1>,
-- <Polyhedron1> is given. The other one is
-- computed.
is static;
IsDone(me)
---Purpose: Returns true if the calculus was succesfull.
returns Boolean from Standard
---C++: inline
is static;
IsEmpty(me)
---Purpose: Returns true if the is no intersection.
returns Boolean from Standard
---C++: inline
raises NotDone from StdFail
is static;
NbLines(me)
---Purpose: Returns the number of intersection lines.
returns Integer from Standard
---C++: inline
raises NotDone from StdFail
is static;
Line(me; Index: Integer from Standard)
---Purpose: Returns the line of range Index.
-- An exception is raised if Index<=0 or Index>NbLine.
returns Line from IntPatch
---C++: return const&
---C++: inline
raises NotDone from StdFail,
OutOfRange from Standard
is static;
NewLine(me; Caro1 : HSurface from Adaptor3d;
Caro2 : HSurface from Adaptor3d;
IndexLine,
LowPoint,
HighPoint,
NbPoints: Integer from Standard)
---Purpose: Computes about <NbPoints> Intersection Points on
-- the Line <IndexLine> between the Points of Index
-- <LowPoint> and <HighPoint>.
--
-- All the points of the line of index <IndexLine>
-- with an index between <LowPoint> and <HighPoint>
-- are in the returned line. New Points are inserted
-- between existing points if those points are not
-- too closed.
--
-- An exception is raised if Index<=0 or Index>NbLine.
-- or if IsDone returns False
returns Line from IntPatch
raises NotDone from StdFail,
OutOfRange from Standard
is static;
GrilleInteger ( me ;
ix : Integer from Standard ;
iy : Integer from Standard ;
iz : Integer from Standard )
returns Integer from Standard
is static ;
---C++: inline
IntegerGrille ( me ;
t : Integer from Standard ;
ix : in out Integer from Standard ;
iy : in out Integer from Standard ;
iz : in out Integer from Standard )
is static ;
---C++: inline
DansGrille ( me ;
t : Integer from Standard )
returns Integer from Standard
is static ;
---C++: inline
NbPointsGrille ( me )
returns Integer from Standard
is static ;
---C++: inline
RemplitLin ( me ;
x1 : Integer from Standard ;
y1 : Integer from Standard ;
z1 : Integer from Standard ;
x2 : Integer from Standard ;
y2 : Integer from Standard ;
z2 : Integer from Standard ;
Map : in out PrmPrmIntersection_T3Bits from IntPatch )
is static ;
RemplitTri ( me ;
x1 : Integer from Standard ;
y1 : Integer from Standard ;
z1 : Integer from Standard ;
x2 : Integer from Standard ;
y2 : Integer from Standard ;
z2 : Integer from Standard ;
x3 : Integer from Standard ;
y3 : Integer from Standard ;
z3 : Integer from Standard ;
Map : in out PrmPrmIntersection_T3Bits from IntPatch )
is static ;
Remplit ( me ;
a : Integer from Standard ;
b : Integer from Standard ;
c : Integer from Standard ;
Map : in out PrmPrmIntersection_T3Bits from IntPatch )
is static ;
CodeReject ( me ;
x1 : Real from Standard ;
y1 : Real from Standard ;
z1 : Real from Standard ;
x2 : Real from Standard ;
y2 : Real from Standard ;
z2 : Real from Standard ;
x3 : Real from Standard ;
y3 : Real from Standard ;
z3 : Real from Standard )
returns Integer from Standard
is static ;
PointDepart ( me ;
LineOn2S : in out LineOn2S from IntSurf ;
S1 : HSurface from Adaptor3d ;
SU1 : Integer from Standard ;
SV1 : Integer from Standard ;
S2 : HSurface from Adaptor3d ;
SU2 : Integer from Standard ;
SV2 : Integer from Standard )
is static ;
fields
done : Boolean from Standard;
empt : Boolean from Standard;
SLin : SequenceOfLine from IntPatch;
end PrmPrmIntersection;

View File

@@ -17,29 +17,31 @@
// modified by Edward AGAPOV (eap) Tue Jan 22 12:29:55 2002
// modified by Oleg FEDYAED (ofv) Fri Nov 29 16:08:02 2002
#include <IntPatch_PrmPrmIntersection.ixx>
#include <IntPatch_InterferencePolyhedron.hxx>
#include <IntWalk_PWalking.hxx>
#include <IntPatch_WLine.hxx>
#include <IntPatch_RstInt.hxx>
#include <IntPatch_Line.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <IntSurf_LineOn2S.hxx>
#include <TColStd_Array1OfReal.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_TopolTool.hxx>
#include <gp_Dir.hxx>
#include <gp_Pnt.hxx>
#include <Intf_PIType.hxx>
#include <Intf_SectionLine.hxx>
#include <Intf_TangentZone.hxx>
#include <Intf_SectionPoint.hxx>
#include <gp_Pnt.hxx>
#include <gp_Dir.hxx>
#include <Intf_TangentZone.hxx>
#include <IntPatch_InterferencePolyhedron.hxx>
#include <IntPatch_Line.hxx>
#include <IntPatch_Polyhedron.hxx>
#include <IntPatch_PrmPrmIntersection.hxx>
#include <IntPatch_PrmPrmIntersection_T3Bits.hxx>
#include <IntPatch_RstInt.hxx>
#include <IntPatch_WLine.hxx>
#include <IntPolyh_Intersection.hxx>
#include <TColStd_SequenceOfInteger.hxx>
#include <IntSurf_LineOn2S.hxx>
#include <IntSurf_ListIteratorOfListOfPntOn2S.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <IntWalk_PWalking.hxx>
#include <Standard_OutOfRange.hxx>
#include <StdFail_NotDone.hxx>
#include <TColStd_Array1OfReal.hxx>
#include <TColStd_HArray1OfReal.hxx>
#include <TColStd_SequenceOfInteger.hxx>
static void SectionPointToParameters(const Intf_SectionPoint& Sp,
const IntPatch_Polyhedron& Surf1,

View File

@@ -0,0 +1,171 @@
// Created on: 1993-01-28
// 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 _IntPatch_PrmPrmIntersection_HeaderFile
#define _IntPatch_PrmPrmIntersection_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntPatch_SequenceOfLine.hxx>
#include <Standard_Real.hxx>
#include <IntSurf_ListOfPntOn2S.hxx>
#include <Standard_Integer.hxx>
class Standard_OutOfRange;
class StdFail_NotDone;
class Adaptor3d_HSurface;
class IntPatch_Polyhedron;
class Adaptor3d_TopolTool;
class IntPatch_Line;
class IntPatch_PrmPrmIntersection_T3Bits;
class IntSurf_LineOn2S;
//! Implementation of the Intersection between two
//! bi-parametrised surfaces.
//!
//! To avoid multiple constructions of the approximated
//! polyhedron of the surfaces, the algorithm can be
//! called whith the two surfaces and their associated
//! polyhedron.
class IntPatch_PrmPrmIntersection
{
public:
DEFINE_STANDARD_ALLOC
//! Empty Constructor
Standard_EXPORT IntPatch_PrmPrmIntersection();
//! Performs the intersection between <Caro1> and
//! <Caro2>. Associated Polyhedrons <Polyhedron1>
//! and <Polyhedron2> are given.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Caro1, const IntPatch_Polyhedron& Polyhedron1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Caro2, const IntPatch_Polyhedron& Polyhedron2, const Handle(Adaptor3d_TopolTool)& Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment);
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Caro1, const IntPatch_Polyhedron& Polyhedron1, const Handle(Adaptor3d_TopolTool)& Domain1, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment);
//! Performs the intersection between <Caro1> and
//! <Caro2>. The method computes the polyhedron on
//! each surface.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Caro1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Caro2, const Handle(Adaptor3d_TopolTool)& Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment, const Standard_Boolean ClearFlag = Standard_True);
//! Performs the intersection between <Caro1> and
//! <Caro2>. The method computes the polyhedron on
//! each surface.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Caro1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Caro2, const Handle(Adaptor3d_TopolTool)& Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment, IntSurf_ListOfPntOn2S& ListOfPnts, const Standard_Boolean RestrictLine);
//! Performs the intersection between <Caro1> and
//! <Caro2>. The method computes the polyhedron on
//! each surface.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Caro1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Caro2, const Handle(Adaptor3d_TopolTool)& Domain2, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment);
//! Performs the intersection between <Caro1> and
//! <Caro2>. The method computes the polyhedron on
//! each surface.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Caro1, const Handle(Adaptor3d_TopolTool)& Domain1, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment);
//! Performs the intersection between <Caro1> and
//! <Caro2>.
//!
//! The polyhedron which approximates <Caro2>,
//! <Polyhedron2> is given. The other one is
//! computed.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Caro1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Caro2, const IntPatch_Polyhedron& Polyhedron2, const Handle(Adaptor3d_TopolTool)& Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment);
//! Performs the intersection between <Caro1> and
//! <Caro2>.
//!
//! The polyhedron which approximates <Caro1>,
//! <Polyhedron1> is given. The other one is
//! computed.
Standard_EXPORT void Perform (const Handle(Adaptor3d_HSurface)& Caro1, const IntPatch_Polyhedron& Polyhedron1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Caro2, const Handle(Adaptor3d_TopolTool)& Domain2, const Standard_Real TolTangency, const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Increment);
//! Returns true if the calculus was succesfull.
Standard_Boolean IsDone() const;
//! Returns true if the is no intersection.
Standard_Boolean IsEmpty() const;
//! Returns the number of intersection lines.
Standard_Integer NbLines() const;
//! Returns the line of range Index.
//! An exception is raised if Index<=0 or Index>NbLine.
const Handle(IntPatch_Line)& Line (const Standard_Integer Index) const;
//! Computes about <NbPoints> Intersection Points on
//! the Line <IndexLine> between the Points of Index
//! <LowPoint> and <HighPoint>.
//!
//! All the points of the line of index <IndexLine>
//! with an index between <LowPoint> and <HighPoint>
//! are in the returned line. New Points are inserted
//! between existing points if those points are not
//! too closed.
//!
//! An exception is raised if Index<=0 or Index>NbLine.
//! or if IsDone returns False
Standard_EXPORT Handle(IntPatch_Line) NewLine (const Handle(Adaptor3d_HSurface)& Caro1, const Handle(Adaptor3d_HSurface)& Caro2, const Standard_Integer IndexLine, const Standard_Integer LowPoint, const Standard_Integer HighPoint, const Standard_Integer NbPoints) const;
Standard_Integer GrilleInteger (const Standard_Integer ix, const Standard_Integer iy, const Standard_Integer iz) const;
void IntegerGrille (const Standard_Integer t, Standard_Integer& ix, Standard_Integer& iy, Standard_Integer& iz) const;
Standard_Integer DansGrille (const Standard_Integer t) const;
Standard_Integer NbPointsGrille() const;
Standard_EXPORT void RemplitLin (const Standard_Integer x1, const Standard_Integer y1, const Standard_Integer z1, const Standard_Integer x2, const Standard_Integer y2, const Standard_Integer z2, IntPatch_PrmPrmIntersection_T3Bits& Map) const;
Standard_EXPORT void RemplitTri (const Standard_Integer x1, const Standard_Integer y1, const Standard_Integer z1, const Standard_Integer x2, const Standard_Integer y2, const Standard_Integer z2, const Standard_Integer x3, const Standard_Integer y3, const Standard_Integer z3, IntPatch_PrmPrmIntersection_T3Bits& Map) const;
Standard_EXPORT void Remplit (const Standard_Integer a, const Standard_Integer b, const Standard_Integer c, IntPatch_PrmPrmIntersection_T3Bits& Map) const;
Standard_EXPORT Standard_Integer CodeReject (const Standard_Real x1, const Standard_Real y1, const Standard_Real z1, const Standard_Real x2, const Standard_Real y2, const Standard_Real z2, const Standard_Real x3, const Standard_Real y3, const Standard_Real z3) const;
Standard_EXPORT void PointDepart (Handle(IntSurf_LineOn2S)& LineOn2S, const Handle(Adaptor3d_HSurface)& S1, const Standard_Integer SU1, const Standard_Integer SV1, const Handle(Adaptor3d_HSurface)& S2, const Standard_Integer SU2, const Standard_Integer SV2) const;
protected:
private:
Standard_Boolean done;
Standard_Boolean empt;
IntPatch_SequenceOfLine SLin;
};
#include <IntPatch_PrmPrmIntersection.lxx>
#endif // _IntPatch_PrmPrmIntersection_HeaderFile

View File

@@ -1,49 +0,0 @@
-- Created on: 1993-01-28
-- 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 PrmPrmIntersection_T3Bits from IntPatch
uses Integer from Standard
is
Create (size : Integer from Standard);
Destroy(me : in out);
---C++: alias ~
Add (me : in out; t : Integer from Standard);
---C++: inline
Val (me ; t : Integer from Standard) returns Integer from Standard;
---C++: inline
Raz (me : in out; t : Integer from Standard);
---C++: inline
ResetAnd (me : in out);
And (me : in out;
Oth : in out PrmPrmIntersection_T3Bits from IntPatch;
indiceprecedent : in out Integer from Standard)
returns Integer from Standard;
fields
-- ind : Integer from Standard;
p : Address from Standard;
Isize : Integer from Standard;
end PrmPrmIntersection_T3Bits;

View File

@@ -14,7 +14,8 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_PrmPrmIntersection_T3Bits.ixx>
#include <IntPatch_PrmPrmIntersection_T3Bits.hxx>
IntPatch_PrmPrmIntersection_T3Bits::IntPatch_PrmPrmIntersection_T3Bits(const Standard_Integer size)
{

View File

@@ -0,0 +1,80 @@
// Created on: 1993-01-28
// 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 _IntPatch_PrmPrmIntersection_T3Bits_HeaderFile
#define _IntPatch_PrmPrmIntersection_T3Bits_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Address.hxx>
#include <Standard_Integer.hxx>
class IntPatch_PrmPrmIntersection_T3Bits
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_PrmPrmIntersection_T3Bits(const Standard_Integer size);
Standard_EXPORT void Destroy();
~IntPatch_PrmPrmIntersection_T3Bits()
{
Destroy();
}
void Add (const Standard_Integer t);
Standard_Integer Val (const Standard_Integer t) const;
void Raz (const Standard_Integer t);
Standard_EXPORT void ResetAnd();
Standard_EXPORT Standard_Integer And (IntPatch_PrmPrmIntersection_T3Bits& Oth, Standard_Integer& indiceprecedent);
protected:
private:
Standard_Address p;
Standard_Integer Isize;
};
#include <IntPatch_PrmPrmIntersection_T3Bits.lxx>
#endif // _IntPatch_PrmPrmIntersection_T3Bits_HeaderFile

View File

@@ -1,326 +0,0 @@
-- Created on: 1992-04-06
-- Created by: Jacques GOUSSARD
-- 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.
class RLine from IntPatch
inherits PointLine from IntPatch
---Purpose: Implementation of an intersection line described by a
-- restriction line on one of the surfaces.
uses
HCurve2d from Adaptor2d,
Point from IntPatch,
SequenceOfPoint from IntPatch,
TypeTrans from IntSurf,
Situation from IntSurf,
PntOn2S from IntSurf,
LineOn2S from IntSurf
raises DomainError from Standard,
OutOfRange from Standard
is
Create(Tang: Boolean from Standard;
Trans1,Trans2: TypeTrans from IntSurf)
---Purpose: Creates a restriction as an intersection line
-- when the transitions are In or Out.
returns RLine from IntPatch;
Create(Tang: Boolean from Standard;
Situ1,Situ2: Situation from IntSurf)
---Purpose: Creates a restriction as an intersection line
-- when the transitions are Touch.
returns RLine from IntPatch;
Create(Tang: Boolean from Standard)
---Purpose: Creates a restriction as an intersection line
-- when the transitions are Undecided.
returns RLine from IntPatch;
AddVertex(me: mutable; Pnt: Point from IntPatch)
---Purpose: To add a vertex in the list.
---C++: inline
is static;
Replace(me: mutable; Index: Integer from Standard; Pnt: Point from IntPatch)
---Purpose: Replaces the element of range Index in the list
-- of points.
---C++: inline
raises OutOfRange from Standard
--- The exception OutOfRange is raised when Index <= 0
-- or Index > NbVertex.
is static;
SetFirstPoint(me: mutable; IndFirst: Integer from Standard) is static;
---C++: inline
SetLastPoint(me: mutable; IndLast: Integer from Standard) is static;
---C++: inline
Add(me: mutable; L: LineOn2S from IntSurf)
---C++: inline
is static;
IsArcOnS1(me)
---Purpose: Returns True if the intersection is on the domain of the
-- first patch.
-- Returns False if the intersection is on the domain of
-- the second patch.
returns Boolean from Standard
---C++: inline
is static;
IsArcOnS2(me)
---Purpose: Returns True if the intersection is on the domain of the
-- first patch.
-- Returns False if the intersection is on the domain of
-- the second patch.
returns Boolean from Standard
---C++: inline
is static;
SetArcOnS1(me: mutable; A: HCurve2d from Adaptor2d)
is static;
SetArcOnS2(me: mutable; A: HCurve2d from Adaptor2d)
is static;
SetParamOnS1(me: mutable; p1,p2: Real from Standard)
--- first and last parameters on the restriction of the first
-- patch
is static;
SetParamOnS2(me: mutable; p1,p2: out Real from Standard)
--- first and last parameters on the restriction of the first
-- patch
is static;
ArcOnS1(me)
---Purpose: Returns the concerned arc.
returns HCurve2d from Adaptor2d
---C++: inline
---C++: return const&
raises DomainError from Standard
is static;
ArcOnS2(me)
---Purpose: Returns the concerned arc.
returns HCurve2d from Adaptor2d
---C++: inline
---C++: return const&
raises DomainError from Standard
is static;
ParamOnS1(me; p1,p2: out Real from Standard)
--- first and last parameters on the restriction of the first
-- patch
is static;
ParamOnS2(me; p1,p2: out Real from Standard)
--- first and last parameters on the restriction of the first
-- patch
is static;
HasFirstPoint(me)
---Purpose: Returns True if the line has a known First point.
-- This point is given by the method FirstPoint().
returns Boolean from Standard
---C++: inline
is static;
HasLastPoint(me)
---Purpose: Returns True if the line has a known Last point.
-- This point is given by the method LastPoint().
returns Boolean from Standard
---C++: inline
is static;
FirstPoint(me)
---Purpose: Returns the IntPoint corresponding to the FirstPoint.
-- An exception is raised when HasFirstPoint returns False.
returns Point from IntPatch
---C++: inline
---C++: return const&
raises DomainError from Standard
is static;
LastPoint(me)
---Purpose: Returns the IntPoint corresponding to the LastPoint.
-- An exception is raised when HasLastPoint returns False.
returns Point from IntPatch
---C++: inline
---C++: return const&
raises DomainError from Standard
is static;
NbVertex(me)
returns Integer from Standard
---C++: inline
is static;
Vertex(me; Index: Integer from Standard)
---Purpose: Returns the vertex of range Index on the line.
returns Point from IntPatch
---C++: inline
---C++: return const&
raises OutOfRange from Standard
--- The exception OutOfRange is raised if Index <= 0 or
-- Index > NbVertex.
is static;
HasPolygon(me)
returns Boolean from Standard
---C++: inline
is static;
NbPnts(me)
---Purpose: Returns the number of intersection points.
returns Integer from Standard
---C++: inline
raises DomainError from Standard
--- The exception DomainError is raised if HasPolygon returns False.
is static;
Point(me; Index: Integer from Standard)
---Purpose: Returns the intersection point of range Index.
returns PntOn2S from IntSurf
---C++: inline
---C++: return const&
raises OutOfRange from Standard,
DomainError from Standard
--- The exception DomainError is raised if HasPolygon returns False.
--- The exception OutOfRange is raised if Index <= 0 or Index > NbPnts.
is static;
SetPoint(me:mutable; Index: Integer from Standard; Pnt: Point from IntPatch)
---Purpose: Set the Point of index <Index> in the LineOn2S
is static;
ComputeVertexParameters(me: mutable; Tol:Real from Standard)
---Purpose: Set the parameters of all the vertex on the line.
-- if a vertex is already in the line,
-- its parameter is modified
-- else a new point in the line is inserted.
is static;
fields
theArcOnS1 : HCurve2d from Adaptor2d;
theArcOnS2 : HCurve2d from Adaptor2d;
onS1 : Boolean from Standard;
onS2 : Boolean from Standard;
ParamInf1 : Real from Standard;
ParamSup1 : Real from Standard;
ParamInf2 : Real from Standard;
ParamSup2 : Real from Standard;
curv : LineOn2S from IntSurf;
fipt : Boolean from Standard;
lapt : Boolean from Standard;
indf : Integer from Standard;
indl : Integer from Standard;
svtx : SequenceOfPoint from IntPatch;
end RLine;

View File

@@ -14,10 +14,16 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <IntPatch_RLine.ixx>
#include <Adaptor2d_HCurve2d.hxx>
#include <IntPatch_Point.hxx>
#include <IntPatch_RLine.hxx>
#include <IntSurf_LineOn2S.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <Precision.hxx>
#include <Standard_DomainError.hxx>
#include <Standard_OutOfRange.hxx>
#include <Standard_Type.hxx>
IntPatch_RLine::IntPatch_RLine (const Standard_Boolean Tang,
const IntSurf_TypeTrans Trans1,

View File

@@ -0,0 +1,180 @@
// Created on: 1992-04-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_RLine_HeaderFile
#define _IntPatch_RLine_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
#include <IntPatch_SequenceOfPoint.hxx>
#include <IntPatch_PointLine.hxx>
#include <IntSurf_TypeTrans.hxx>
#include <IntSurf_Situation.hxx>
class Adaptor2d_HCurve2d;
class IntSurf_LineOn2S;
class Standard_DomainError;
class Standard_OutOfRange;
class IntPatch_Point;
class IntSurf_PntOn2S;
class IntPatch_RLine;
DEFINE_STANDARD_HANDLE(IntPatch_RLine, IntPatch_PointLine)
//! Implementation of an intersection line described by a
//! restriction line on one of the surfaces.
class IntPatch_RLine : public IntPatch_PointLine
{
public:
//! Creates a restriction as an intersection line
//! when the transitions are In or Out.
Standard_EXPORT IntPatch_RLine(const Standard_Boolean Tang, const IntSurf_TypeTrans Trans1, const IntSurf_TypeTrans Trans2);
//! Creates a restriction as an intersection line
//! when the transitions are Touch.
Standard_EXPORT IntPatch_RLine(const Standard_Boolean Tang, const IntSurf_Situation Situ1, const IntSurf_Situation Situ2);
//! Creates a restriction as an intersection line
//! when the transitions are Undecided.
Standard_EXPORT IntPatch_RLine(const Standard_Boolean Tang);
//! To add a vertex in the list.
void AddVertex (const IntPatch_Point& Pnt);
//! Replaces the element of range Index in the list
//! of points.
void Replace (const Standard_Integer Index, const IntPatch_Point& Pnt);
void SetFirstPoint (const Standard_Integer IndFirst);
void SetLastPoint (const Standard_Integer IndLast);
void Add (const Handle(IntSurf_LineOn2S)& L);
//! Returns True if the intersection is on the domain of the
//! first patch.
//! Returns False if the intersection is on the domain of
//! the second patch.
Standard_Boolean IsArcOnS1() const;
//! Returns True if the intersection is on the domain of the
//! first patch.
//! Returns False if the intersection is on the domain of
//! the second patch.
Standard_Boolean IsArcOnS2() const;
Standard_EXPORT void SetArcOnS1 (const Handle(Adaptor2d_HCurve2d)& A);
Standard_EXPORT void SetArcOnS2 (const Handle(Adaptor2d_HCurve2d)& A);
Standard_EXPORT void SetParamOnS1 (const Standard_Real p1, const Standard_Real p2);
Standard_EXPORT void SetParamOnS2 (Standard_Real& p1, Standard_Real& p2);
//! Returns the concerned arc.
const Handle(Adaptor2d_HCurve2d)& ArcOnS1() const;
//! Returns the concerned arc.
const Handle(Adaptor2d_HCurve2d)& ArcOnS2() const;
Standard_EXPORT void ParamOnS1 (Standard_Real& p1, Standard_Real& p2) const;
Standard_EXPORT void ParamOnS2 (Standard_Real& p1, Standard_Real& p2) const;
//! Returns True if the line has a known First point.
//! This point is given by the method FirstPoint().
Standard_Boolean HasFirstPoint() const;
//! Returns True if the line has a known Last point.
//! This point is given by the method LastPoint().
Standard_Boolean HasLastPoint() const;
//! Returns the IntPoint corresponding to the FirstPoint.
//! An exception is raised when HasFirstPoint returns False.
const IntPatch_Point& FirstPoint() const;
//! Returns the IntPoint corresponding to the LastPoint.
//! An exception is raised when HasLastPoint returns False.
const IntPatch_Point& LastPoint() const;
Standard_Integer NbVertex() const;
//! Returns the vertex of range Index on the line.
const IntPatch_Point& Vertex (const Standard_Integer Index) const;
Standard_Boolean HasPolygon() const;
//! Returns the number of intersection points.
Standard_Integer NbPnts() const;
//! Returns the intersection point of range Index.
const IntSurf_PntOn2S& Point (const Standard_Integer Index) const;
//! Set the Point of index <Index> in the LineOn2S
Standard_EXPORT void SetPoint (const Standard_Integer Index, const IntPatch_Point& Pnt);
//! Set the parameters of all the vertex on the line.
//! if a vertex is already in the line,
//! its parameter is modified
//! else a new point in the line is inserted.
Standard_EXPORT void ComputeVertexParameters (const Standard_Real Tol);
DEFINE_STANDARD_RTTI(IntPatch_RLine,IntPatch_PointLine)
protected:
private:
Handle(Adaptor2d_HCurve2d) theArcOnS1;
Handle(Adaptor2d_HCurve2d) theArcOnS2;
Standard_Boolean onS1;
Standard_Boolean onS2;
Standard_Real ParamInf1;
Standard_Real ParamSup1;
Standard_Real ParamInf2;
Standard_Real ParamSup2;
Handle(IntSurf_LineOn2S) curv;
Standard_Boolean fipt;
Standard_Boolean lapt;
Standard_Integer indf;
Standard_Integer indl;
IntPatch_SequenceOfPoint svtx;
};
#include <IntPatch_RLine.lxx>
#endif // _IntPatch_RLine_HeaderFile

View File

@@ -1,44 +0,0 @@
-- Created on: 1993-05-07
-- Created by: Jacques GOUSSARD
-- 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 RstInt from IntPatch
---Purpose: trouver les points d intersection entre la ligne de
-- cheminement et les arcs de restriction
uses Polygo from IntPatch,
Line from IntPatch,
HSurface from Adaptor3d,
TopolTool from Adaptor3d
raises DomainError from Standard
is
PutVertexOnLine(myclass;
L : in out Line from IntPatch;
Surf : HSurface from Adaptor3d;
Domain : TopolTool from Adaptor3d;
OtherSurf : HSurface from Adaptor3d;
OnFirst : Boolean from Standard ;
Tol : Real from Standard;
hasBeenAdded: Boolean from Standard = Standard_False)
raises DomainError from Standard;
--- The exception is raised if the Line from is neither
-- a WLine nor a RLine.
end RstInt;

View File

@@ -25,26 +25,27 @@
//-- - Pour rester coherent avec cette facon de faire,
//-- Chercher(Nbvtx++).
#include <IntPatch_RstInt.ixx>
#include <IntSurf.hxx>
#include <TColgp_SequenceOfPnt.hxx>
#include <TColgp_SequenceOfPnt2d.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_TopolTool.hxx>
#include <gp_Pnt2d.hxx>
#include <Intf_SectionPoint.hxx>
#include <Intf_TangentZone.hxx>
#include <gp_Pnt2d.hxx>
#include <Precision.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <IntPatch_WLine.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_HInterTool.hxx>
#include <IntPatch_SearchPnt.hxx>
#include <IntPatch_PolyLine.hxx>
#include <IntPatch_PolyArc.hxx>
#include <IntPatch_CSFunction.hxx>
#include <IntPatch_CurvIntSurf.hxx>
#include <IntPatch_HInterTool.hxx>
#include <IntPatch_Line.hxx>
#include <IntPatch_PolyArc.hxx>
#include <IntPatch_PolyLine.hxx>
#include <IntPatch_RLine.hxx>
#include <IntPatch_RstInt.hxx>
#include <IntPatch_SearchPnt.hxx>
#include <IntPatch_WLine.hxx>
#include <IntSurf.hxx>
#include <Precision.hxx>
#include <Standard_DomainError.hxx>
#include <TColgp_SequenceOfPnt.hxx>
#include <TColgp_SequenceOfPnt2d.hxx>
#define myInfinite 1.e15 // the same as was in Adaptor3d_TopolTool

View File

@@ -0,0 +1,66 @@
// Created on: 1993-05-07
// Created by: Jacques GOUSSARD
// 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 _IntPatch_RstInt_HeaderFile
#define _IntPatch_RstInt_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Real.hxx>
class Standard_DomainError;
class IntPatch_Line;
class Adaptor3d_HSurface;
class Adaptor3d_TopolTool;
//! trouver les points d intersection entre la ligne de
//! cheminement et les arcs de restriction
class IntPatch_RstInt
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT static void PutVertexOnLine (Handle(IntPatch_Line)& L, const Handle(Adaptor3d_HSurface)& Surf, const Handle(Adaptor3d_TopolTool)& Domain, const Handle(Adaptor3d_HSurface)& OtherSurf, const Standard_Boolean OnFirst, const Standard_Real Tol, const Standard_Boolean hasBeenAdded = Standard_False);
protected:
private:
};
#endif // _IntPatch_RstInt_HeaderFile

View File

@@ -0,0 +1,25 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_SearchPnt_HeaderFile
#define _IntPatch_SearchPnt_HeaderFile
#include <Intf_InterferencePolygon2d.hxx>
typedef Intf_InterferencePolygon2d IntPatch_SearchPnt;
#endif // _IntPatch_SearchPnt_HeaderFile

View File

@@ -0,0 +1,82 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking_HeaderFile
#define _IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <TCollection_SeqNode.hxx>
#include <TCollection_SeqNodePtr.hxx>
class IntPatch_TheIWLineOfTheIWalking;
class IntPatch_SequenceOfIWLineOfTheIWalking;
class IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking;
DEFINE_STANDARD_HANDLE(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking, TCollection_SeqNode)
class IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking : public TCollection_SeqNode
{
public:
IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking(const Handle(IntPatch_TheIWLineOfTheIWalking)& I, const TCollection_SeqNodePtr& n, const TCollection_SeqNodePtr& p);
Handle(IntPatch_TheIWLineOfTheIWalking)& Value() const;
DEFINE_STANDARD_RTTI(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking,TCollection_SeqNode)
protected:
private:
Handle(IntPatch_TheIWLineOfTheIWalking) myValue;
};
#define SeqItem Handle(IntPatch_TheIWLineOfTheIWalking)
#define SeqItem_hxx <IntPatch_TheIWLineOfTheIWalking.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking)
#define TCollection_Sequence IntPatch_SequenceOfIWLineOfTheIWalking
#define TCollection_Sequence_hxx <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#include <TCollection_SequenceNode.lxx>
#undef SeqItem
#undef SeqItem_hxx
#undef TCollection_SequenceNode
#undef TCollection_SequenceNode_hxx
#undef Handle_TCollection_SequenceNode
#undef TCollection_Sequence
#undef TCollection_Sequence_hxx
#endif // _IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking_HeaderFile

View File

@@ -0,0 +1,41 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#include <Standard_Type.hxx>
#include <IntPatch_TheIWLineOfTheIWalking.hxx>
#include <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#define SeqItem Handle(IntPatch_TheIWLineOfTheIWalking)
#define SeqItem_hxx <IntPatch_TheIWLineOfTheIWalking.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking)
#define TCollection_Sequence IntPatch_SequenceOfIWLineOfTheIWalking
#define TCollection_Sequence_hxx <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#include <TCollection_SequenceNode.gxx>

View File

@@ -0,0 +1,83 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds_HeaderFile
#define _IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <TCollection_SeqNode.hxx>
#include <TCollection_SeqNodePtr.hxx>
class IntPatch_ThePathPointOfTheSOnBounds;
class IntPatch_SequenceOfPathPointOfTheSOnBounds;
class IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds;
DEFINE_STANDARD_HANDLE(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds, TCollection_SeqNode)
class IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds : public TCollection_SeqNode
{
public:
IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds(const IntPatch_ThePathPointOfTheSOnBounds& I, const TCollection_SeqNodePtr& n, const TCollection_SeqNodePtr& p);
IntPatch_ThePathPointOfTheSOnBounds& Value() const;
DEFINE_STANDARD_RTTI(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds,TCollection_SeqNode)
protected:
private:
IntPatch_ThePathPointOfTheSOnBounds myValue;
};
#define SeqItem IntPatch_ThePathPointOfTheSOnBounds
#define SeqItem_hxx <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds)
#define TCollection_Sequence IntPatch_SequenceOfPathPointOfTheSOnBounds
#define TCollection_Sequence_hxx <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#include <TCollection_SequenceNode.lxx>
#undef SeqItem
#undef SeqItem_hxx
#undef TCollection_SequenceNode
#undef TCollection_SequenceNode_hxx
#undef Handle_TCollection_SequenceNode
#undef TCollection_Sequence
#undef TCollection_Sequence_hxx
#endif // _IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds_HeaderFile

View File

@@ -0,0 +1,41 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#include <Standard_Type.hxx>
#include <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#define SeqItem IntPatch_ThePathPointOfTheSOnBounds
#define SeqItem_hxx <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds)
#define TCollection_Sequence IntPatch_SequenceOfPathPointOfTheSOnBounds
#define TCollection_Sequence_hxx <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#include <TCollection_SequenceNode.gxx>

View File

@@ -0,0 +1,83 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds_HeaderFile
#define _IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#include <TCollection_SeqNode.hxx>
#include <TCollection_SeqNodePtr.hxx>
class IntPatch_TheSegmentOfTheSOnBounds;
class IntPatch_SequenceOfSegmentOfTheSOnBounds;
class IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds;
DEFINE_STANDARD_HANDLE(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds, TCollection_SeqNode)
class IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds : public TCollection_SeqNode
{
public:
IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds(const IntPatch_TheSegmentOfTheSOnBounds& I, const TCollection_SeqNodePtr& n, const TCollection_SeqNodePtr& p);
IntPatch_TheSegmentOfTheSOnBounds& Value() const;
DEFINE_STANDARD_RTTI(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds,TCollection_SeqNode)
protected:
private:
IntPatch_TheSegmentOfTheSOnBounds myValue;
};
#define SeqItem IntPatch_TheSegmentOfTheSOnBounds
#define SeqItem_hxx <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds)
#define TCollection_Sequence IntPatch_SequenceOfSegmentOfTheSOnBounds
#define TCollection_Sequence_hxx <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#include <TCollection_SequenceNode.lxx>
#undef SeqItem
#undef SeqItem_hxx
#undef TCollection_SequenceNode
#undef TCollection_SequenceNode_hxx
#undef Handle_TCollection_SequenceNode
#undef TCollection_Sequence
#undef TCollection_Sequence_hxx
#endif // _IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds_HeaderFile

View File

@@ -0,0 +1,41 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#include <Standard_Type.hxx>
#include <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#include <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#define SeqItem IntPatch_TheSegmentOfTheSOnBounds
#define SeqItem_hxx <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds)
#define TCollection_Sequence IntPatch_SequenceOfSegmentOfTheSOnBounds
#define TCollection_Sequence_hxx <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#include <TCollection_SequenceNode.gxx>

View File

@@ -0,0 +1,134 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_SequenceOfIWLineOfTheIWalking_HeaderFile
#define _IntPatch_SequenceOfIWLineOfTheIWalking_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TCollection_BaseSequence.hxx>
#include <Standard_Integer.hxx>
class Standard_NoSuchObject;
class Standard_OutOfRange;
class IntPatch_TheIWLineOfTheIWalking;
class IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking;
class IntPatch_SequenceOfIWLineOfTheIWalking : public TCollection_BaseSequence
{
public:
DEFINE_STANDARD_ALLOC
IntPatch_SequenceOfIWLineOfTheIWalking();
Standard_EXPORT IntPatch_SequenceOfIWLineOfTheIWalking(const IntPatch_SequenceOfIWLineOfTheIWalking& Other);
Standard_EXPORT void Clear();
~IntPatch_SequenceOfIWLineOfTheIWalking()
{
Clear();
}
Standard_EXPORT const IntPatch_SequenceOfIWLineOfTheIWalking& Assign (const IntPatch_SequenceOfIWLineOfTheIWalking& Other);
const IntPatch_SequenceOfIWLineOfTheIWalking& operator = (const IntPatch_SequenceOfIWLineOfTheIWalking& Other)
{
return Assign(Other);
}
Standard_EXPORT void Append (const Handle(IntPatch_TheIWLineOfTheIWalking)& T);
void Append (IntPatch_SequenceOfIWLineOfTheIWalking& S);
Standard_EXPORT void Prepend (const Handle(IntPatch_TheIWLineOfTheIWalking)& T);
void Prepend (IntPatch_SequenceOfIWLineOfTheIWalking& S);
void InsertBefore (const Standard_Integer Index, const Handle(IntPatch_TheIWLineOfTheIWalking)& T);
void InsertBefore (const Standard_Integer Index, IntPatch_SequenceOfIWLineOfTheIWalking& S);
Standard_EXPORT void InsertAfter (const Standard_Integer Index, const Handle(IntPatch_TheIWLineOfTheIWalking)& T);
void InsertAfter (const Standard_Integer Index, IntPatch_SequenceOfIWLineOfTheIWalking& S);
Standard_EXPORT const Handle(IntPatch_TheIWLineOfTheIWalking)& First() const;
Standard_EXPORT const Handle(IntPatch_TheIWLineOfTheIWalking)& Last() const;
void Split (const Standard_Integer Index, IntPatch_SequenceOfIWLineOfTheIWalking& Sub);
Standard_EXPORT const Handle(IntPatch_TheIWLineOfTheIWalking)& Value (const Standard_Integer Index) const;
const Handle(IntPatch_TheIWLineOfTheIWalking)& operator() (const Standard_Integer Index) const
{
return Value(Index);
}
Standard_EXPORT void SetValue (const Standard_Integer Index, const Handle(IntPatch_TheIWLineOfTheIWalking)& I);
Standard_EXPORT Handle(IntPatch_TheIWLineOfTheIWalking)& ChangeValue (const Standard_Integer Index);
Handle(IntPatch_TheIWLineOfTheIWalking)& operator() (const Standard_Integer Index)
{
return ChangeValue(Index);
}
Standard_EXPORT void Remove (const Standard_Integer Index);
Standard_EXPORT void Remove (const Standard_Integer FromIndex, const Standard_Integer ToIndex);
protected:
private:
};
#define SeqItem Handle(IntPatch_TheIWLineOfTheIWalking)
#define SeqItem_hxx <IntPatch_TheIWLineOfTheIWalking.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking)
#define TCollection_Sequence IntPatch_SequenceOfIWLineOfTheIWalking
#define TCollection_Sequence_hxx <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#include <TCollection_Sequence.lxx>
#undef SeqItem
#undef SeqItem_hxx
#undef TCollection_SequenceNode
#undef TCollection_SequenceNode_hxx
#undef Handle_TCollection_SequenceNode
#undef TCollection_Sequence
#undef TCollection_Sequence_hxx
#endif // _IntPatch_SequenceOfIWLineOfTheIWalking_HeaderFile

View File

@@ -0,0 +1,33 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_OutOfRange.hxx>
#include <IntPatch_TheIWLineOfTheIWalking.hxx>
#include <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define SeqItem Handle(IntPatch_TheIWLineOfTheIWalking)
#define SeqItem_hxx <IntPatch_TheIWLineOfTheIWalking.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking)
#define TCollection_Sequence IntPatch_SequenceOfIWLineOfTheIWalking
#define TCollection_Sequence_hxx <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#include <TCollection_Sequence.gxx>

View File

@@ -0,0 +1,134 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_SequenceOfPathPointOfTheSOnBounds_HeaderFile
#define _IntPatch_SequenceOfPathPointOfTheSOnBounds_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TCollection_BaseSequence.hxx>
#include <Standard_Integer.hxx>
class Standard_NoSuchObject;
class Standard_OutOfRange;
class IntPatch_ThePathPointOfTheSOnBounds;
class IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds;
class IntPatch_SequenceOfPathPointOfTheSOnBounds : public TCollection_BaseSequence
{
public:
DEFINE_STANDARD_ALLOC
IntPatch_SequenceOfPathPointOfTheSOnBounds();
Standard_EXPORT IntPatch_SequenceOfPathPointOfTheSOnBounds(const IntPatch_SequenceOfPathPointOfTheSOnBounds& Other);
Standard_EXPORT void Clear();
~IntPatch_SequenceOfPathPointOfTheSOnBounds()
{
Clear();
}
Standard_EXPORT const IntPatch_SequenceOfPathPointOfTheSOnBounds& Assign (const IntPatch_SequenceOfPathPointOfTheSOnBounds& Other);
const IntPatch_SequenceOfPathPointOfTheSOnBounds& operator = (const IntPatch_SequenceOfPathPointOfTheSOnBounds& Other)
{
return Assign(Other);
}
Standard_EXPORT void Append (const IntPatch_ThePathPointOfTheSOnBounds& T);
void Append (IntPatch_SequenceOfPathPointOfTheSOnBounds& S);
Standard_EXPORT void Prepend (const IntPatch_ThePathPointOfTheSOnBounds& T);
void Prepend (IntPatch_SequenceOfPathPointOfTheSOnBounds& S);
void InsertBefore (const Standard_Integer Index, const IntPatch_ThePathPointOfTheSOnBounds& T);
void InsertBefore (const Standard_Integer Index, IntPatch_SequenceOfPathPointOfTheSOnBounds& S);
Standard_EXPORT void InsertAfter (const Standard_Integer Index, const IntPatch_ThePathPointOfTheSOnBounds& T);
void InsertAfter (const Standard_Integer Index, IntPatch_SequenceOfPathPointOfTheSOnBounds& S);
Standard_EXPORT const IntPatch_ThePathPointOfTheSOnBounds& First() const;
Standard_EXPORT const IntPatch_ThePathPointOfTheSOnBounds& Last() const;
void Split (const Standard_Integer Index, IntPatch_SequenceOfPathPointOfTheSOnBounds& Sub);
Standard_EXPORT const IntPatch_ThePathPointOfTheSOnBounds& Value (const Standard_Integer Index) const;
const IntPatch_ThePathPointOfTheSOnBounds& operator() (const Standard_Integer Index) const
{
return Value(Index);
}
Standard_EXPORT void SetValue (const Standard_Integer Index, const IntPatch_ThePathPointOfTheSOnBounds& I);
Standard_EXPORT IntPatch_ThePathPointOfTheSOnBounds& ChangeValue (const Standard_Integer Index);
IntPatch_ThePathPointOfTheSOnBounds& operator() (const Standard_Integer Index)
{
return ChangeValue(Index);
}
Standard_EXPORT void Remove (const Standard_Integer Index);
Standard_EXPORT void Remove (const Standard_Integer FromIndex, const Standard_Integer ToIndex);
protected:
private:
};
#define SeqItem IntPatch_ThePathPointOfTheSOnBounds
#define SeqItem_hxx <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds)
#define TCollection_Sequence IntPatch_SequenceOfPathPointOfTheSOnBounds
#define TCollection_Sequence_hxx <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#include <TCollection_Sequence.lxx>
#undef SeqItem
#undef SeqItem_hxx
#undef TCollection_SequenceNode
#undef TCollection_SequenceNode_hxx
#undef Handle_TCollection_SequenceNode
#undef TCollection_Sequence
#undef TCollection_Sequence_hxx
#endif // _IntPatch_SequenceOfPathPointOfTheSOnBounds_HeaderFile

View File

@@ -0,0 +1,33 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_OutOfRange.hxx>
#include <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#define SeqItem IntPatch_ThePathPointOfTheSOnBounds
#define SeqItem_hxx <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds)
#define TCollection_Sequence IntPatch_SequenceOfPathPointOfTheSOnBounds
#define TCollection_Sequence_hxx <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#include <TCollection_Sequence.gxx>

View File

@@ -0,0 +1,134 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_SequenceOfSegmentOfTheSOnBounds_HeaderFile
#define _IntPatch_SequenceOfSegmentOfTheSOnBounds_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TCollection_BaseSequence.hxx>
#include <Standard_Integer.hxx>
class Standard_NoSuchObject;
class Standard_OutOfRange;
class IntPatch_TheSegmentOfTheSOnBounds;
class IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds;
class IntPatch_SequenceOfSegmentOfTheSOnBounds : public TCollection_BaseSequence
{
public:
DEFINE_STANDARD_ALLOC
IntPatch_SequenceOfSegmentOfTheSOnBounds();
Standard_EXPORT IntPatch_SequenceOfSegmentOfTheSOnBounds(const IntPatch_SequenceOfSegmentOfTheSOnBounds& Other);
Standard_EXPORT void Clear();
~IntPatch_SequenceOfSegmentOfTheSOnBounds()
{
Clear();
}
Standard_EXPORT const IntPatch_SequenceOfSegmentOfTheSOnBounds& Assign (const IntPatch_SequenceOfSegmentOfTheSOnBounds& Other);
const IntPatch_SequenceOfSegmentOfTheSOnBounds& operator = (const IntPatch_SequenceOfSegmentOfTheSOnBounds& Other)
{
return Assign(Other);
}
Standard_EXPORT void Append (const IntPatch_TheSegmentOfTheSOnBounds& T);
void Append (IntPatch_SequenceOfSegmentOfTheSOnBounds& S);
Standard_EXPORT void Prepend (const IntPatch_TheSegmentOfTheSOnBounds& T);
void Prepend (IntPatch_SequenceOfSegmentOfTheSOnBounds& S);
void InsertBefore (const Standard_Integer Index, const IntPatch_TheSegmentOfTheSOnBounds& T);
void InsertBefore (const Standard_Integer Index, IntPatch_SequenceOfSegmentOfTheSOnBounds& S);
Standard_EXPORT void InsertAfter (const Standard_Integer Index, const IntPatch_TheSegmentOfTheSOnBounds& T);
void InsertAfter (const Standard_Integer Index, IntPatch_SequenceOfSegmentOfTheSOnBounds& S);
Standard_EXPORT const IntPatch_TheSegmentOfTheSOnBounds& First() const;
Standard_EXPORT const IntPatch_TheSegmentOfTheSOnBounds& Last() const;
void Split (const Standard_Integer Index, IntPatch_SequenceOfSegmentOfTheSOnBounds& Sub);
Standard_EXPORT const IntPatch_TheSegmentOfTheSOnBounds& Value (const Standard_Integer Index) const;
const IntPatch_TheSegmentOfTheSOnBounds& operator() (const Standard_Integer Index) const
{
return Value(Index);
}
Standard_EXPORT void SetValue (const Standard_Integer Index, const IntPatch_TheSegmentOfTheSOnBounds& I);
Standard_EXPORT IntPatch_TheSegmentOfTheSOnBounds& ChangeValue (const Standard_Integer Index);
IntPatch_TheSegmentOfTheSOnBounds& operator() (const Standard_Integer Index)
{
return ChangeValue(Index);
}
Standard_EXPORT void Remove (const Standard_Integer Index);
Standard_EXPORT void Remove (const Standard_Integer FromIndex, const Standard_Integer ToIndex);
protected:
private:
};
#define SeqItem IntPatch_TheSegmentOfTheSOnBounds
#define SeqItem_hxx <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds)
#define TCollection_Sequence IntPatch_SequenceOfSegmentOfTheSOnBounds
#define TCollection_Sequence_hxx <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#include <TCollection_Sequence.lxx>
#undef SeqItem
#undef SeqItem_hxx
#undef TCollection_SequenceNode
#undef TCollection_SequenceNode_hxx
#undef Handle_TCollection_SequenceNode
#undef TCollection_Sequence
#undef TCollection_Sequence_hxx
#endif // _IntPatch_SequenceOfSegmentOfTheSOnBounds_HeaderFile

View File

@@ -0,0 +1,33 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#include <Standard_NoSuchObject.hxx>
#include <Standard_OutOfRange.hxx>
#include <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#include <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define SeqItem IntPatch_TheSegmentOfTheSOnBounds
#define SeqItem_hxx <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#define TCollection_SequenceNode IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds
#define TCollection_SequenceNode_hxx <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define Handle_TCollection_SequenceNode Handle(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds)
#define TCollection_Sequence IntPatch_SequenceOfSegmentOfTheSOnBounds
#define TCollection_Sequence_hxx <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#include <TCollection_Sequence.gxx>

View File

@@ -0,0 +1,151 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_TheIWLineOfTheIWalking_HeaderFile
#define _IntPatch_TheIWLineOfTheIWalking_HeaderFile
#include <Standard.hxx>
#include <Standard_Type.hxx>
#include <IntSurf_SequenceOfCouple.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <IntSurf_PathPoint.hxx>
#include <gp_Vec.hxx>
#include <MMgt_TShared.hxx>
#include <IntSurf_Allocator.hxx>
class IntSurf_LineOn2S;
class Standard_OutOfRange;
class Standard_DomainError;
class IntSurf_PathPoint;
class IntSurf_PntOn2S;
class gp_Vec;
class IntPatch_TheIWLineOfTheIWalking;
DEFINE_STANDARD_HANDLE(IntPatch_TheIWLineOfTheIWalking, MMgt_TShared)
class IntPatch_TheIWLineOfTheIWalking : public MMgt_TShared
{
public:
Standard_EXPORT IntPatch_TheIWLineOfTheIWalking(const IntSurf_Allocator& theAllocator = 0);
Standard_EXPORT void Reverse();
void Cut (const Standard_Integer Index);
void AddPoint (const IntSurf_PntOn2S& P);
void AddStatusFirst (const Standard_Boolean Closed, const Standard_Boolean HasFirst);
void AddStatusFirst (const Standard_Boolean Closed, const Standard_Boolean HasLast, const Standard_Integer Index, const IntSurf_PathPoint& P);
void AddStatusFirstLast (const Standard_Boolean Closed, const Standard_Boolean HasFirst, const Standard_Boolean HasLast);
void AddStatusLast (const Standard_Boolean HasLast);
void AddStatusLast (const Standard_Boolean HasLast, const Standard_Integer Index, const IntSurf_PathPoint& P);
void AddIndexPassing (const Standard_Integer Index);
void SetTangentVector (const gp_Vec& V, const Standard_Integer Index);
void SetTangencyAtBegining (const Standard_Boolean IsTangent);
void SetTangencyAtEnd (const Standard_Boolean IsTangent);
Standard_Integer NbPoints() const;
const IntSurf_PntOn2S& Value (const Standard_Integer Index) const;
const Handle(IntSurf_LineOn2S)& Line() const;
Standard_Boolean IsClosed() const;
Standard_Boolean HasFirstPoint() const;
Standard_Boolean HasLastPoint() const;
const IntSurf_PathPoint& FirstPoint() const;
Standard_Integer FirstPointIndex() const;
const IntSurf_PathPoint& LastPoint() const;
Standard_Integer LastPointIndex() const;
Standard_Integer NbPassingPoint() const;
void PassingPoint (const Standard_Integer Index, Standard_Integer& IndexLine, Standard_Integer& IndexPnts) const;
const gp_Vec& TangentVector (Standard_Integer& Index) const;
Standard_Boolean IsTangentAtBegining() const;
Standard_Boolean IsTangentAtEnd() const;
DEFINE_STANDARD_RTTI(IntPatch_TheIWLineOfTheIWalking,MMgt_TShared)
protected:
private:
Handle(IntSurf_LineOn2S) line;
IntSurf_SequenceOfCouple couple;
Standard_Boolean closed;
Standard_Boolean hasFirst;
Standard_Boolean hasLast;
Standard_Integer firstIndex;
Standard_Integer lastIndex;
IntSurf_PathPoint theFirstPoint;
IntSurf_PathPoint theLastPoint;
Standard_Integer indextg;
gp_Vec vcttg;
Standard_Boolean istgtbeg;
Standard_Boolean istgtend;
};
#define TheStartPoint IntSurf_PathPoint
#define TheStartPoint_hxx <IntSurf_PathPoint.hxx>
#define IntWalk_IWLine IntPatch_TheIWLineOfTheIWalking
#define IntWalk_IWLine_hxx <IntPatch_TheIWLineOfTheIWalking.hxx>
#define Handle_IntWalk_IWLine Handle(IntPatch_TheIWLineOfTheIWalking)
#include <IntWalk_IWLine.lxx>
#undef TheStartPoint
#undef TheStartPoint_hxx
#undef IntWalk_IWLine
#undef IntWalk_IWLine_hxx
#undef Handle_IntWalk_IWLine
#endif // _IntPatch_TheIWLineOfTheIWalking_HeaderFile

View File

@@ -0,0 +1,43 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_TheIWLineOfTheIWalking.hxx>
#include <Standard_Type.hxx>
#include <IntSurf_LineOn2S.hxx>
#include <Standard_OutOfRange.hxx>
#include <Standard_DomainError.hxx>
#include <IntSurf_PathPoint.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <gp_Vec.hxx>
#define TheStartPoint IntSurf_PathPoint
#define TheStartPoint_hxx <IntSurf_PathPoint.hxx>
#define IntWalk_IWLine IntPatch_TheIWLineOfTheIWalking
#define IntWalk_IWLine_hxx <IntPatch_TheIWLineOfTheIWalking.hxx>
#define Handle_IntWalk_IWLine Handle(IntPatch_TheIWLineOfTheIWalking)
#include <IntWalk_IWLine.gxx>

View File

@@ -0,0 +1,209 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_TheIWalking_HeaderFile
#define _IntPatch_TheIWalking_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntSurf_SequenceOfPathPoint.hxx>
#include <Standard_Real.hxx>
#include <math_Vector.hxx>
#include <IntWalk_VectorOfWalkingData.hxx>
#include <IntWalk_VectorOfInteger.hxx>
#include <IntSurf_PntOn2S.hxx>
#include <gp_Vec.hxx>
#include <gp_Dir2d.hxx>
#include <TColStd_SequenceOfInteger.hxx>
#include <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#include <IntSurf_SequenceOfInteriorPoint.hxx>
#include <Standard_Integer.hxx>
#include <TColStd_SequenceOfReal.hxx>
#include <IntWalk_StatusDeflection.hxx>
class StdFail_NotDone;
class Standard_OutOfRange;
class IntSurf_PathPoint;
class IntSurf_PathPointTool;
class IntSurf_InteriorPoint;
class IntSurf_InteriorPointTool;
class Adaptor3d_HSurface;
class Adaptor3d_HSurfaceTool;
class IntPatch_TheSurfFunction;
class IntPatch_TheIWLineOfTheIWalking;
class IntPatch_SequenceOfIWLineOfTheIWalking;
class IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking;
class IntSurf_PntOn2S;
class IntPatch_TheIWalking
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_TheIWalking(const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Step);
void SetTolerance (const Standard_Real Epsilon, const Standard_Real Deflection, const Standard_Real Step);
Standard_EXPORT void Perform (const IntSurf_SequenceOfPathPoint& Pnts1, const IntSurf_SequenceOfInteriorPoint& Pnts2, IntPatch_TheSurfFunction& Func, const Handle(Adaptor3d_HSurface)& S, const Standard_Boolean Reversed = Standard_False);
Standard_EXPORT void Perform (const IntSurf_SequenceOfPathPoint& Pnts1, IntPatch_TheSurfFunction& Func, const Handle(Adaptor3d_HSurface)& S, const Standard_Boolean Reversed = Standard_False);
Standard_Boolean IsDone() const;
Standard_Integer NbLines() const;
const Handle(IntPatch_TheIWLineOfTheIWalking)& Value (const Standard_Integer Index) const;
Standard_Integer NbSinglePnts() const;
const IntSurf_PathPoint& SinglePnt (const Standard_Integer Index) const;
protected:
Standard_EXPORT Standard_Boolean Cadrage (math_Vector& BornInf, math_Vector& BornSup, math_Vector& UVap, Standard_Real& Step, const Standard_Integer StepSign) const;
Standard_EXPORT Standard_Boolean TestArretPassage (const TColStd_SequenceOfReal& Umult, const TColStd_SequenceOfReal& Vmult, IntPatch_TheSurfFunction& Section, math_Vector& UV, Standard_Integer& Irang);
Standard_EXPORT Standard_Boolean TestArretPassage (const TColStd_SequenceOfReal& Umult, const TColStd_SequenceOfReal& Vmult, const math_Vector& UV, const Standard_Integer Index, Standard_Integer& Irang);
Standard_EXPORT Standard_Boolean TestArretAjout (IntPatch_TheSurfFunction& Section, math_Vector& UV, Standard_Integer& Irang, IntSurf_PntOn2S& PSol);
Standard_EXPORT void TestArretCadre (const TColStd_SequenceOfReal& Umult, const TColStd_SequenceOfReal& Vmult, const Handle(IntPatch_TheIWLineOfTheIWalking)& Line, IntPatch_TheSurfFunction& Section, math_Vector& UV, Standard_Integer& Irang);
Standard_EXPORT IntWalk_StatusDeflection TestDeflection (IntPatch_TheSurfFunction& Section, const Standard_Boolean Finished, const math_Vector& UV, const IntWalk_StatusDeflection StatusPrecedent, Standard_Integer& NbDivision, Standard_Real& Step, const Standard_Integer StepSign);
Standard_EXPORT void ComputeOpenLine (const TColStd_SequenceOfReal& Umult, const TColStd_SequenceOfReal& Vmult, const IntSurf_SequenceOfPathPoint& Pnts1, IntPatch_TheSurfFunction& Section, Standard_Boolean& Rajout);
Standard_EXPORT void OpenLine (const Standard_Integer N, const IntSurf_PntOn2S& Psol, const IntSurf_SequenceOfPathPoint& Pnts1, IntPatch_TheSurfFunction& Section, const Handle(IntPatch_TheIWLineOfTheIWalking)& Line);
Standard_EXPORT void ComputeCloseLine (const TColStd_SequenceOfReal& Umult, const TColStd_SequenceOfReal& Vmult, const IntSurf_SequenceOfPathPoint& Pnts1, const IntSurf_SequenceOfInteriorPoint& Pnts2, IntPatch_TheSurfFunction& Section, Standard_Boolean& Rajout);
Standard_EXPORT void AddPointInCurrentLine (const Standard_Integer N, const IntSurf_PathPoint& PathPnt, const Handle(IntPatch_TheIWLineOfTheIWalking)& CurrentLine) const;
Standard_EXPORT void MakeWalkingPoint (const Standard_Integer Case, const Standard_Real U, const Standard_Real V, IntPatch_TheSurfFunction& Section, IntSurf_PntOn2S& Psol);
Standard_EXPORT void Clear();
private:
Standard_Boolean done;
IntSurf_SequenceOfPathPoint seqSingle;
Standard_Real fleche;
Standard_Real pas;
math_Vector tolerance;
Standard_Real epsilon;
Standard_Boolean reversed;
IntWalk_VectorOfWalkingData wd1;
IntWalk_VectorOfWalkingData wd2;
IntWalk_VectorOfInteger nbMultiplicities;
Standard_Real Um;
Standard_Real UM;
Standard_Real Vm;
Standard_Real VM;
IntSurf_PntOn2S previousPoint;
gp_Vec previousd3d;
gp_Dir2d previousd2d;
TColStd_SequenceOfInteger seqAjout;
IntPatch_SequenceOfIWLineOfTheIWalking lines;
};
#define ThePointOfPath IntSurf_PathPoint
#define ThePointOfPath_hxx <IntSurf_PathPoint.hxx>
#define ThePointOfPathTool IntSurf_PathPointTool
#define ThePointOfPathTool_hxx <IntSurf_PathPointTool.hxx>
#define ThePOPIterator IntSurf_SequenceOfPathPoint
#define ThePOPIterator_hxx <IntSurf_SequenceOfPathPoint.hxx>
#define ThePointOfLoop IntSurf_InteriorPoint
#define ThePointOfLoop_hxx <IntSurf_InteriorPoint.hxx>
#define ThePointOfLoopTool IntSurf_InteriorPointTool
#define ThePointOfLoopTool_hxx <IntSurf_InteriorPointTool.hxx>
#define ThePOLIterator IntSurf_SequenceOfInteriorPoint
#define ThePOLIterator_hxx <IntSurf_SequenceOfInteriorPoint.hxx>
#define ThePSurface Handle(Adaptor3d_HSurface)
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define TheIWFunction IntPatch_TheSurfFunction
#define TheIWFunction_hxx <IntPatch_TheSurfFunction.hxx>
#define IntWalk_TheIWLine IntPatch_TheIWLineOfTheIWalking
#define IntWalk_TheIWLine_hxx <IntPatch_TheIWLineOfTheIWalking.hxx>
#define IntWalk_SequenceOfIWLine IntPatch_SequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceOfIWLine_hxx <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#define IntWalk_SequenceNodeOfSequenceOfIWLine IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceNodeOfSequenceOfIWLine_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define IntWalk_SequenceNodeOfSequenceOfIWLine IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceNodeOfSequenceOfIWLine_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define Handle_IntWalk_TheIWLine Handle(IntPatch_TheIWLineOfTheIWalking)
#define Handle_IntWalk_SequenceNodeOfSequenceOfIWLine Handle(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking)
#define Handle_IntWalk_SequenceNodeOfSequenceOfIWLine Handle(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking)
#define IntWalk_IWalking IntPatch_TheIWalking
#define IntWalk_IWalking_hxx <IntPatch_TheIWalking.hxx>
#include <IntWalk_IWalking.lxx>
#undef ThePointOfPath
#undef ThePointOfPath_hxx
#undef ThePointOfPathTool
#undef ThePointOfPathTool_hxx
#undef ThePOPIterator
#undef ThePOPIterator_hxx
#undef ThePointOfLoop
#undef ThePointOfLoop_hxx
#undef ThePointOfLoopTool
#undef ThePointOfLoopTool_hxx
#undef ThePOLIterator
#undef ThePOLIterator_hxx
#undef ThePSurface
#undef ThePSurface_hxx
#undef ThePSurfaceTool
#undef ThePSurfaceTool_hxx
#undef TheIWFunction
#undef TheIWFunction_hxx
#undef IntWalk_TheIWLine
#undef IntWalk_TheIWLine_hxx
#undef IntWalk_SequenceOfIWLine
#undef IntWalk_SequenceOfIWLine_hxx
#undef IntWalk_SequenceNodeOfSequenceOfIWLine
#undef IntWalk_SequenceNodeOfSequenceOfIWLine_hxx
#undef IntWalk_SequenceNodeOfSequenceOfIWLine
#undef IntWalk_SequenceNodeOfSequenceOfIWLine_hxx
#undef Handle_IntWalk_TheIWLine
#undef Handle_IntWalk_SequenceNodeOfSequenceOfIWLine
#undef Handle_IntWalk_SequenceNodeOfSequenceOfIWLine
#undef IntWalk_IWalking
#undef IntWalk_IWalking_hxx
#endif // _IntPatch_TheIWalking_HeaderFile

View File

@@ -0,0 +1,66 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_TheIWalking.hxx>
#include <StdFail_NotDone.hxx>
#include <Standard_OutOfRange.hxx>
#include <IntSurf_PathPoint.hxx>
#include <IntSurf_PathPointTool.hxx>
#include <IntSurf_InteriorPoint.hxx>
#include <IntSurf_InteriorPointTool.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HSurfaceTool.hxx>
#include <IntPatch_TheSurfFunction.hxx>
#include <IntPatch_TheIWLineOfTheIWalking.hxx>
#include <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#include <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#include <IntSurf_PntOn2S.hxx>
#define ThePointOfPath IntSurf_PathPoint
#define ThePointOfPath_hxx <IntSurf_PathPoint.hxx>
#define ThePointOfPathTool IntSurf_PathPointTool
#define ThePointOfPathTool_hxx <IntSurf_PathPointTool.hxx>
#define ThePOPIterator IntSurf_SequenceOfPathPoint
#define ThePOPIterator_hxx <IntSurf_SequenceOfPathPoint.hxx>
#define ThePointOfLoop IntSurf_InteriorPoint
#define ThePointOfLoop_hxx <IntSurf_InteriorPoint.hxx>
#define ThePointOfLoopTool IntSurf_InteriorPointTool
#define ThePointOfLoopTool_hxx <IntSurf_InteriorPointTool.hxx>
#define ThePOLIterator IntSurf_SequenceOfInteriorPoint
#define ThePOLIterator_hxx <IntSurf_SequenceOfInteriorPoint.hxx>
#define ThePSurface Handle(Adaptor3d_HSurface)
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define TheIWFunction IntPatch_TheSurfFunction
#define TheIWFunction_hxx <IntPatch_TheSurfFunction.hxx>
#define IntWalk_TheIWLine IntPatch_TheIWLineOfTheIWalking
#define IntWalk_TheIWLine_hxx <IntPatch_TheIWLineOfTheIWalking.hxx>
#define IntWalk_SequenceOfIWLine IntPatch_SequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceOfIWLine_hxx <IntPatch_SequenceOfIWLineOfTheIWalking.hxx>
#define IntWalk_SequenceNodeOfSequenceOfIWLine IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceNodeOfSequenceOfIWLine_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define IntWalk_SequenceNodeOfSequenceOfIWLine IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking
#define IntWalk_SequenceNodeOfSequenceOfIWLine_hxx <IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx>
#define Handle_IntWalk_TheIWLine Handle(IntPatch_TheIWLineOfTheIWalking)
#define Handle_IntWalk_SequenceNodeOfSequenceOfIWLine Handle(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking)
#define Handle_IntWalk_SequenceNodeOfSequenceOfIWLine Handle(IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking)
#define IntWalk_IWalking IntPatch_TheIWalking
#define IntWalk_IWalking_hxx <IntPatch_TheIWalking.hxx>
#include <IntWalk_IWalking.gxx>

View File

@@ -0,0 +1,105 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_ThePathPointOfTheSOnBounds_HeaderFile
#define _IntPatch_ThePathPointOfTheSOnBounds_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <gp_Pnt.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
class Adaptor3d_HVertex;
class Adaptor2d_HCurve2d;
class Standard_DomainError;
class gp_Pnt;
class IntPatch_ThePathPointOfTheSOnBounds
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_ThePathPointOfTheSOnBounds();
Standard_EXPORT IntPatch_ThePathPointOfTheSOnBounds(const gp_Pnt& P, const Standard_Real Tol, const Handle(Adaptor3d_HVertex)& V, const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Parameter);
Standard_EXPORT IntPatch_ThePathPointOfTheSOnBounds(const gp_Pnt& P, const Standard_Real Tol, const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Parameter);
void SetValue (const gp_Pnt& P, const Standard_Real Tol, const Handle(Adaptor3d_HVertex)& V, const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Parameter);
void SetValue (const gp_Pnt& P, const Standard_Real Tol, const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Parameter);
const gp_Pnt& Value() const;
Standard_Real Tolerance() const;
Standard_Boolean IsNew() const;
const Handle(Adaptor3d_HVertex)& Vertex() const;
const Handle(Adaptor2d_HCurve2d)& Arc() const;
Standard_Real Parameter() const;
protected:
private:
gp_Pnt point;
Standard_Real tol;
Standard_Boolean isnew;
Handle(Adaptor3d_HVertex) vtx;
Handle(Adaptor2d_HCurve2d) arc;
Standard_Real param;
};
#define TheVertex Handle(Adaptor3d_HVertex)
#define TheVertex_hxx <Adaptor3d_HVertex.hxx>
#define TheArc Handle(Adaptor2d_HCurve2d)
#define TheArc_hxx <Adaptor2d_HCurve2d.hxx>
#define IntStart_PathPoint IntPatch_ThePathPointOfTheSOnBounds
#define IntStart_PathPoint_hxx <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <IntStart_PathPoint.lxx>
#undef TheVertex
#undef TheVertex_hxx
#undef TheArc
#undef TheArc_hxx
#undef IntStart_PathPoint
#undef IntStart_PathPoint_hxx
#endif // _IntPatch_ThePathPointOfTheSOnBounds_HeaderFile

View File

@@ -0,0 +1,32 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <Adaptor3d_HVertex.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <Standard_DomainError.hxx>
#include <gp_Pnt.hxx>
#define TheVertex Handle(Adaptor3d_HVertex)
#define TheVertex_hxx <Adaptor3d_HVertex.hxx>
#define TheArc Handle(Adaptor2d_HCurve2d)
#define TheArc_hxx <Adaptor2d_HCurve2d.hxx>
#define IntStart_PathPoint IntPatch_ThePathPointOfTheSOnBounds
#define IntStart_PathPoint_hxx <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <IntStart_PathPoint.gxx>

View File

@@ -0,0 +1,168 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_TheSOnBounds_HeaderFile
#define _IntPatch_TheSOnBounds_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#include <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
class StdFail_NotDone;
class Standard_OutOfRange;
class Standard_ConstructionError;
class Adaptor3d_HVertex;
class Adaptor2d_HCurve2d;
class IntPatch_HCurve2dTool;
class IntPatch_HInterTool;
class Adaptor3d_TopolTool;
class IntPatch_ArcFunction;
class IntPatch_ThePathPointOfTheSOnBounds;
class IntPatch_SequenceOfPathPointOfTheSOnBounds;
class IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds;
class IntPatch_TheSegmentOfTheSOnBounds;
class IntPatch_SequenceOfSegmentOfTheSOnBounds;
class IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds;
class IntPatch_TheSOnBounds
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_TheSOnBounds();
Standard_EXPORT void Perform (IntPatch_ArcFunction& F, const Handle(Adaptor3d_TopolTool)& Domain, const Standard_Real TolBoundary, const Standard_Real TolTangency, const Standard_Boolean RecheckOnRegularity = Standard_False);
Standard_Boolean IsDone() const;
Standard_Boolean AllArcSolution() const;
Standard_Integer NbPoints() const;
const IntPatch_ThePathPointOfTheSOnBounds& Point (const Standard_Integer Index) const;
Standard_Integer NbSegments() const;
const IntPatch_TheSegmentOfTheSOnBounds& Segment (const Standard_Integer Index) const;
protected:
private:
Standard_Boolean done;
Standard_Boolean all;
IntPatch_SequenceOfSegmentOfTheSOnBounds sseg;
IntPatch_SequenceOfPathPointOfTheSOnBounds spnt;
};
#define TheVertex Handle(Adaptor3d_HVertex)
#define TheVertex_hxx <Adaptor3d_HVertex.hxx>
#define TheArc Handle(Adaptor2d_HCurve2d)
#define TheArc_hxx <Adaptor2d_HCurve2d.hxx>
#define TheArcTool IntPatch_HCurve2dTool
#define TheArcTool_hxx <IntPatch_HCurve2dTool.hxx>
#define TheSOBTool IntPatch_HInterTool
#define TheSOBTool_hxx <IntPatch_HInterTool.hxx>
#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
#define TheTopolTool Adaptor3d_TopolTool
#define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
#define TheFunction IntPatch_ArcFunction
#define TheFunction_hxx <IntPatch_ArcFunction.hxx>
#define IntStart_ThePathPoint IntPatch_ThePathPointOfTheSOnBounds
#define IntStart_ThePathPoint_hxx <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#define IntStart_SequenceOfPathPoint IntPatch_SequenceOfPathPointOfTheSOnBounds
#define IntStart_SequenceOfPathPoint_hxx <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#define IntStart_SequenceNodeOfSequenceOfPathPoint IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds
#define IntStart_SequenceNodeOfSequenceOfPathPoint_hxx <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#define IntStart_SequenceNodeOfSequenceOfPathPoint IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds
#define IntStart_SequenceNodeOfSequenceOfPathPoint_hxx <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#define IntStart_TheSegment IntPatch_TheSegmentOfTheSOnBounds
#define IntStart_TheSegment_hxx <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#define IntStart_SequenceOfSegment IntPatch_SequenceOfSegmentOfTheSOnBounds
#define IntStart_SequenceOfSegment_hxx <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#define IntStart_SequenceNodeOfSequenceOfSegment IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds
#define IntStart_SequenceNodeOfSequenceOfSegment_hxx <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define IntStart_SequenceNodeOfSequenceOfSegment IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds
#define IntStart_SequenceNodeOfSequenceOfSegment_hxx <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define Handle_IntStart_SequenceNodeOfSequenceOfPathPoint Handle(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds)
#define Handle_IntStart_SequenceNodeOfSequenceOfPathPoint Handle(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds)
#define Handle_IntStart_SequenceNodeOfSequenceOfSegment Handle(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds)
#define Handle_IntStart_SequenceNodeOfSequenceOfSegment Handle(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds)
#define IntStart_SearchOnBoundaries IntPatch_TheSOnBounds
#define IntStart_SearchOnBoundaries_hxx <IntPatch_TheSOnBounds.hxx>
#include <IntStart_SearchOnBoundaries.lxx>
#undef TheVertex
#undef TheVertex_hxx
#undef TheArc
#undef TheArc_hxx
#undef TheArcTool
#undef TheArcTool_hxx
#undef TheSOBTool
#undef TheSOBTool_hxx
#undef Handle_TheTopolTool
#undef TheTopolTool
#undef TheTopolTool_hxx
#undef TheFunction
#undef TheFunction_hxx
#undef IntStart_ThePathPoint
#undef IntStart_ThePathPoint_hxx
#undef IntStart_SequenceOfPathPoint
#undef IntStart_SequenceOfPathPoint_hxx
#undef IntStart_SequenceNodeOfSequenceOfPathPoint
#undef IntStart_SequenceNodeOfSequenceOfPathPoint_hxx
#undef IntStart_SequenceNodeOfSequenceOfPathPoint
#undef IntStart_SequenceNodeOfSequenceOfPathPoint_hxx
#undef IntStart_TheSegment
#undef IntStart_TheSegment_hxx
#undef IntStart_SequenceOfSegment
#undef IntStart_SequenceOfSegment_hxx
#undef IntStart_SequenceNodeOfSequenceOfSegment
#undef IntStart_SequenceNodeOfSequenceOfSegment_hxx
#undef IntStart_SequenceNodeOfSequenceOfSegment
#undef IntStart_SequenceNodeOfSequenceOfSegment_hxx
#undef Handle_IntStart_SequenceNodeOfSequenceOfPathPoint
#undef Handle_IntStart_SequenceNodeOfSequenceOfPathPoint
#undef Handle_IntStart_SequenceNodeOfSequenceOfSegment
#undef Handle_IntStart_SequenceNodeOfSequenceOfSegment
#undef IntStart_SearchOnBoundaries
#undef IntStart_SearchOnBoundaries_hxx
#endif // _IntPatch_TheSOnBounds_HeaderFile

View File

@@ -0,0 +1,72 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_TheSOnBounds.hxx>
#include <StdFail_NotDone.hxx>
#include <Standard_OutOfRange.hxx>
#include <Standard_ConstructionError.hxx>
#include <Adaptor3d_HVertex.hxx>
#include <Adaptor2d_HCurve2d.hxx>
#include <IntPatch_HCurve2dTool.hxx>
#include <IntPatch_HInterTool.hxx>
#include <Adaptor3d_TopolTool.hxx>
#include <IntPatch_ArcFunction.hxx>
#include <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#include <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#include <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#include <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#include <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#include <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define TheVertex Handle(Adaptor3d_HVertex)
#define TheVertex_hxx <Adaptor3d_HVertex.hxx>
#define TheArc Handle(Adaptor2d_HCurve2d)
#define TheArc_hxx <Adaptor2d_HCurve2d.hxx>
#define TheArcTool IntPatch_HCurve2dTool
#define TheArcTool_hxx <IntPatch_HCurve2dTool.hxx>
#define TheSOBTool IntPatch_HInterTool
#define TheSOBTool_hxx <IntPatch_HInterTool.hxx>
#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
#define TheTopolTool Adaptor3d_TopolTool
#define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
#define TheFunction IntPatch_ArcFunction
#define TheFunction_hxx <IntPatch_ArcFunction.hxx>
#define IntStart_ThePathPoint IntPatch_ThePathPointOfTheSOnBounds
#define IntStart_ThePathPoint_hxx <IntPatch_ThePathPointOfTheSOnBounds.hxx>
#define IntStart_SequenceOfPathPoint IntPatch_SequenceOfPathPointOfTheSOnBounds
#define IntStart_SequenceOfPathPoint_hxx <IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx>
#define IntStart_SequenceNodeOfSequenceOfPathPoint IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds
#define IntStart_SequenceNodeOfSequenceOfPathPoint_hxx <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#define IntStart_SequenceNodeOfSequenceOfPathPoint IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds
#define IntStart_SequenceNodeOfSequenceOfPathPoint_hxx <IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx>
#define IntStart_TheSegment IntPatch_TheSegmentOfTheSOnBounds
#define IntStart_TheSegment_hxx <IntPatch_TheSegmentOfTheSOnBounds.hxx>
#define IntStart_SequenceOfSegment IntPatch_SequenceOfSegmentOfTheSOnBounds
#define IntStart_SequenceOfSegment_hxx <IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx>
#define IntStart_SequenceNodeOfSequenceOfSegment IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds
#define IntStart_SequenceNodeOfSequenceOfSegment_hxx <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define IntStart_SequenceNodeOfSequenceOfSegment IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds
#define IntStart_SequenceNodeOfSequenceOfSegment_hxx <IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx>
#define Handle_IntStart_SequenceNodeOfSequenceOfPathPoint Handle(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds)
#define Handle_IntStart_SequenceNodeOfSequenceOfPathPoint Handle(IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds)
#define Handle_IntStart_SequenceNodeOfSequenceOfSegment Handle(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds)
#define Handle_IntStart_SequenceNodeOfSequenceOfSegment Handle(IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds)
#define IntStart_SearchOnBoundaries IntPatch_TheSOnBounds
#define IntStart_SearchOnBoundaries_hxx <IntPatch_TheSOnBounds.hxx>
#include <IntStart_SearchOnBoundaries.gxx>

View File

@@ -0,0 +1,112 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#ifndef _IntPatch_TheSearchInside_HeaderFile
#define _IntPatch_TheSearchInside_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <IntSurf_SequenceOfInteriorPoint.hxx>
#include <Standard_Real.hxx>
#include <Standard_Integer.hxx>
class StdFail_NotDone;
class Standard_OutOfRange;
class Adaptor3d_HSurface;
class Adaptor3d_HSurfaceTool;
class Adaptor3d_TopolTool;
class IntPatch_HInterTool;
class IntPatch_TheSurfFunction;
class IntSurf_InteriorPoint;
class IntPatch_TheSearchInside
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT IntPatch_TheSearchInside();
Standard_EXPORT IntPatch_TheSearchInside(IntPatch_TheSurfFunction& F, const Handle(Adaptor3d_HSurface)& Surf, const Handle(Adaptor3d_TopolTool)& T, const Standard_Real Epsilon);
Standard_EXPORT void Perform (IntPatch_TheSurfFunction& F, const Handle(Adaptor3d_HSurface)& Surf, const Handle(Adaptor3d_TopolTool)& T, const Standard_Real Epsilon);
Standard_EXPORT void Perform (IntPatch_TheSurfFunction& F, const Handle(Adaptor3d_HSurface)& Surf, const Standard_Real UStart, const Standard_Real VStart);
Standard_Boolean IsDone() const;
Standard_Integer NbPoints() const;
const IntSurf_InteriorPoint& Value (const Standard_Integer Index) const;
protected:
private:
Standard_Boolean done;
IntSurf_SequenceOfInteriorPoint list;
};
#define ThePSurface Handle(Adaptor3d_HSurface)
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
#define TheTopolTool Adaptor3d_TopolTool
#define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
#define TheSITool IntPatch_HInterTool
#define TheSITool_hxx <IntPatch_HInterTool.hxx>
#define TheFunction IntPatch_TheSurfFunction
#define TheFunction_hxx <IntPatch_TheSurfFunction.hxx>
#define IntStart_SearchInside IntPatch_TheSearchInside
#define IntStart_SearchInside_hxx <IntPatch_TheSearchInside.hxx>
#include <IntStart_SearchInside.lxx>
#undef ThePSurface
#undef ThePSurface_hxx
#undef ThePSurfaceTool
#undef ThePSurfaceTool_hxx
#undef Handle_TheTopolTool
#undef TheTopolTool
#undef TheTopolTool_hxx
#undef TheSITool
#undef TheSITool_hxx
#undef TheFunction
#undef TheFunction_hxx
#undef IntStart_SearchInside
#undef IntStart_SearchInside_hxx
#endif // _IntPatch_TheSearchInside_HeaderFile

View File

@@ -0,0 +1,43 @@
// Created on: 1992-05-06
// Created by: Jacques GOUSSARD
// 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.
#include <IntPatch_TheSearchInside.hxx>
#include <StdFail_NotDone.hxx>
#include <Standard_OutOfRange.hxx>
#include <Adaptor3d_HSurface.hxx>
#include <Adaptor3d_HSurfaceTool.hxx>
#include <Adaptor3d_TopolTool.hxx>
#include <IntPatch_HInterTool.hxx>
#include <IntPatch_TheSurfFunction.hxx>
#include <IntSurf_InteriorPoint.hxx>
#define ThePSurface Handle(Adaptor3d_HSurface)
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool)
#define TheTopolTool Adaptor3d_TopolTool
#define TheTopolTool_hxx <Adaptor3d_TopolTool.hxx>
#define TheSITool IntPatch_HInterTool
#define TheSITool_hxx <IntPatch_HInterTool.hxx>
#define TheFunction IntPatch_TheSurfFunction
#define TheFunction_hxx <IntPatch_TheSurfFunction.hxx>
#define IntStart_SearchInside IntPatch_TheSearchInside
#define IntStart_SearchInside_hxx <IntPatch_TheSearchInside.hxx>
#include <IntStart_SearchInside.gxx>

Some files were not shown because too many files have changed in this diff Show More