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:
@@ -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
|
||||
|
@@ -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;
|
@@ -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;
|
@@ -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
|
||||
|
||||
|
167
src/IntPatch/IntPatch_ALine.hxx
Normal file
167
src/IntPatch/IntPatch_ALine.hxx
Normal 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
|
@@ -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;
|
@@ -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,
|
||||
|
102
src/IntPatch/IntPatch_ALineToWLine.hxx
Normal file
102
src/IntPatch/IntPatch_ALineToWLine.hxx
Normal 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
|
@@ -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;
|
@@ -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 ()
|
||||
{}
|
||||
|
100
src/IntPatch/IntPatch_ArcFunction.hxx
Normal file
100
src/IntPatch/IntPatch_ArcFunction.hxx
Normal 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
|
@@ -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;
|
@@ -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
|
||||
|
96
src/IntPatch/IntPatch_CSFunction.hxx
Normal file
96
src/IntPatch/IntPatch_CSFunction.hxx
Normal 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
|
94
src/IntPatch/IntPatch_CurvIntSurf.hxx
Normal file
94
src/IntPatch/IntPatch_CurvIntSurf.hxx
Normal 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
|
43
src/IntPatch/IntPatch_CurvIntSurf_0.cxx
Normal file
43
src/IntPatch/IntPatch_CurvIntSurf_0.cxx
Normal 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>
|
||||
|
@@ -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;
|
@@ -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
|
||||
|
||||
|
207
src/IntPatch/IntPatch_GLine.hxx
Normal file
207
src/IntPatch/IntPatch_GLine.hxx
Normal 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
|
@@ -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;
|
@@ -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,
|
||||
|
161
src/IntPatch/IntPatch_HCurve2dTool.hxx
Normal file
161
src/IntPatch/IntPatch_HCurve2dTool.hxx
Normal 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
|
@@ -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;
|
@@ -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.)
|
||||
|
164
src/IntPatch/IntPatch_HInterTool.hxx
Normal file
164
src/IntPatch/IntPatch_HInterTool.hxx
Normal 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
|
33
src/IntPatch/IntPatch_IType.hxx
Normal file
33
src/IntPatch/IntPatch_IType.hxx
Normal 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
|
@@ -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;
|
@@ -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>
|
||||
|
130
src/IntPatch/IntPatch_ImpImpIntersection.hxx
Normal file
130
src/IntPatch/IntPatch_ImpImpIntersection.hxx
Normal 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
|
@@ -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;
|
@@ -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
|
||||
|
113
src/IntPatch/IntPatch_ImpPrmIntersection.hxx
Normal file
113
src/IntPatch/IntPatch_ImpPrmIntersection.hxx
Normal 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
|
@@ -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;
|
@@ -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};
|
||||
|
||||
|
108
src/IntPatch/IntPatch_InterferencePolyhedron.hxx
Normal file
108
src/IntPatch/IntPatch_InterferencePolyhedron.hxx
Normal 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
|
@@ -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;
|
@@ -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;
|
||||
|
||||
|
189
src/IntPatch/IntPatch_Intersection.hxx
Normal file
189
src/IntPatch/IntPatch_Intersection.hxx
Normal 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
|
@@ -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;
|
@@ -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,
|
||||
|
160
src/IntPatch/IntPatch_Line.hxx
Normal file
160
src/IntPatch/IntPatch_Line.hxx
Normal 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
|
@@ -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;
|
@@ -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
|
||||
|
||||
|
74
src/IntPatch/IntPatch_LineConstructor.hxx
Normal file
74
src/IntPatch/IntPatch_LineConstructor.hxx
Normal 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
|
@@ -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;
|
@@ -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)
|
||||
|
246
src/IntPatch/IntPatch_Point.hxx
Normal file
246
src/IntPatch/IntPatch_Point.hxx
Normal 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
|
@@ -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;
|
@@ -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,
|
||||
|
88
src/IntPatch/IntPatch_PointLine.hxx
Normal file
88
src/IntPatch/IntPatch_PointLine.hxx
Normal 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
|
@@ -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;
|
@@ -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,
|
||||
|
87
src/IntPatch/IntPatch_PolyArc.hxx
Normal file
87
src/IntPatch/IntPatch_PolyArc.hxx
Normal 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
|
@@ -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;
|
@@ -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.
|
||||
|
87
src/IntPatch/IntPatch_PolyLine.hxx
Normal file
87
src/IntPatch/IntPatch_PolyLine.hxx
Normal 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
|
@@ -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;
|
@@ -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)
|
||||
{}
|
||||
|
83
src/IntPatch/IntPatch_Polygo.hxx
Normal file
83
src/IntPatch/IntPatch_Polygo.hxx
Normal 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
|
@@ -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;
|
@@ -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
|
||||
|
174
src/IntPatch/IntPatch_Polyhedron.hxx
Normal file
174
src/IntPatch/IntPatch_Polyhedron.hxx
Normal 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
|
@@ -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;
|
@@ -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>
|
||||
|
95
src/IntPatch/IntPatch_PolyhedronTool.hxx
Normal file
95
src/IntPatch/IntPatch_PolyhedronTool.hxx
Normal 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
|
@@ -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;
|
@@ -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,
|
||||
|
171
src/IntPatch/IntPatch_PrmPrmIntersection.hxx
Normal file
171
src/IntPatch/IntPatch_PrmPrmIntersection.hxx
Normal 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
|
@@ -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;
|
@@ -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)
|
||||
{
|
||||
|
80
src/IntPatch/IntPatch_PrmPrmIntersection_T3Bits.hxx
Normal file
80
src/IntPatch/IntPatch_PrmPrmIntersection_T3Bits.hxx
Normal 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
|
@@ -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;
|
@@ -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,
|
||||
|
180
src/IntPatch/IntPatch_RLine.hxx
Normal file
180
src/IntPatch/IntPatch_RLine.hxx
Normal 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
|
@@ -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;
|
@@ -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
|
||||
|
||||
|
66
src/IntPatch/IntPatch_RstInt.hxx
Normal file
66
src/IntPatch/IntPatch_RstInt.hxx
Normal 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
|
25
src/IntPatch/IntPatch_SearchPnt.hxx
Normal file
25
src/IntPatch/IntPatch_SearchPnt.hxx
Normal 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
|
@@ -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
|
@@ -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>
|
||||
|
@@ -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
|
@@ -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>
|
||||
|
@@ -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
|
@@ -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>
|
||||
|
134
src/IntPatch/IntPatch_SequenceOfIWLineOfTheIWalking.hxx
Normal file
134
src/IntPatch/IntPatch_SequenceOfIWLineOfTheIWalking.hxx
Normal 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
|
33
src/IntPatch/IntPatch_SequenceOfIWLineOfTheIWalking_0.cxx
Normal file
33
src/IntPatch/IntPatch_SequenceOfIWLineOfTheIWalking_0.cxx
Normal 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>
|
||||
|
134
src/IntPatch/IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx
Normal file
134
src/IntPatch/IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx
Normal 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
|
@@ -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>
|
||||
|
134
src/IntPatch/IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx
Normal file
134
src/IntPatch/IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx
Normal 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
|
33
src/IntPatch/IntPatch_SequenceOfSegmentOfTheSOnBounds_0.cxx
Normal file
33
src/IntPatch/IntPatch_SequenceOfSegmentOfTheSOnBounds_0.cxx
Normal 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>
|
||||
|
151
src/IntPatch/IntPatch_TheIWLineOfTheIWalking.hxx
Normal file
151
src/IntPatch/IntPatch_TheIWLineOfTheIWalking.hxx
Normal 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
|
43
src/IntPatch/IntPatch_TheIWLineOfTheIWalking_0.cxx
Normal file
43
src/IntPatch/IntPatch_TheIWLineOfTheIWalking_0.cxx
Normal 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>
|
||||
|
209
src/IntPatch/IntPatch_TheIWalking.hxx
Normal file
209
src/IntPatch/IntPatch_TheIWalking.hxx
Normal 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
|
66
src/IntPatch/IntPatch_TheIWalking_0.cxx
Normal file
66
src/IntPatch/IntPatch_TheIWalking_0.cxx
Normal 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>
|
||||
|
105
src/IntPatch/IntPatch_ThePathPointOfTheSOnBounds.hxx
Normal file
105
src/IntPatch/IntPatch_ThePathPointOfTheSOnBounds.hxx
Normal 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
|
32
src/IntPatch/IntPatch_ThePathPointOfTheSOnBounds_0.cxx
Normal file
32
src/IntPatch/IntPatch_ThePathPointOfTheSOnBounds_0.cxx
Normal 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>
|
||||
|
168
src/IntPatch/IntPatch_TheSOnBounds.hxx
Normal file
168
src/IntPatch/IntPatch_TheSOnBounds.hxx
Normal 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
|
72
src/IntPatch/IntPatch_TheSOnBounds_0.cxx
Normal file
72
src/IntPatch/IntPatch_TheSOnBounds_0.cxx
Normal 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>
|
||||
|
112
src/IntPatch/IntPatch_TheSearchInside.hxx
Normal file
112
src/IntPatch/IntPatch_TheSearchInside.hxx
Normal 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
|
43
src/IntPatch/IntPatch_TheSearchInside_0.cxx
Normal file
43
src/IntPatch/IntPatch_TheSearchInside_0.cxx
Normal 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
Reference in New Issue
Block a user