1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0024002: Overall code and build procedure refactoring -- automatic

Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl":
- WOK-generated header files from inc and sources from drv are moved to src
- CDL files removed
- All packages are converted to nocdlpack
This commit is contained in:
abv
2015-07-12 07:42:38 +03:00
parent 543a996496
commit 42cf5bc1ca
15354 changed files with 623957 additions and 509844 deletions

View File

@@ -1,55 +0,0 @@
-- Created on: 1992-11-18
-- Created by: Remi LEQUETTE
-- 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 BRepClass
---Purpose: The BRepClass packages provides classification
-- algorithms for the BRep topology. It instantiates
-- the algorithms from the package TopClass.
uses
gp,
TopAbs,
TopoDS,
TopExp,
BRepTools,
Geom2dInt,
TopClass,
--- IntCurveSurface,
Bnd
is
class Edge;
class Intersector;
class FacePassiveClassifier instantiates Classifier2d from TopClass
(Edge from BRepClass,
Intersector from BRepClass);
class FaceExplorer;
class FClassifier instantiates FaceClassifier from TopClass
(FaceExplorer from BRepClass,
Edge from BRepClass,
Intersector from BRepClass);
class FaceClassifier;
end BRepClass;

View File

@@ -1,49 +0,0 @@
-- Created on: 1992-11-19
-- Created by: Remi LEQUETTE
-- 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 Edge from BRepClass
---Purpose: This class is used to send the description of an
-- Edge to the classifier. It contains an Edge and a
-- Face. So the PCurve of the Edge can be found.
uses
Edge from TopoDS,
Face from TopoDS
is
Create returns Edge from BRepClass;
Create (E : Edge from TopoDS; F : Face from TopoDS)
returns Edge from BRepClass;
Edge(me : in out) returns Edge from TopoDS
---C++: inline
---C++: return &
---C++: alias "const TopoDS_Edge& Edge() const;"
is static;
Face(me : in out) returns Face from TopoDS
---C++: inline
---C++: return &
---C++: alias "const TopoDS_Face& Face() const;"
is static;
fields
myEdge : Edge from TopoDS;
myFace : Face from TopoDS;
end Edge;

View File

@@ -14,14 +14,15 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <BRepClass_Edge.ixx>
#include <BRepClass_Edge.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
//=======================================================================
//function : BRepClass_Edge
//purpose :
//=======================================================================
BRepClass_Edge::BRepClass_Edge()
{
}

View File

@@ -0,0 +1,76 @@
// Created on: 1992-11-19
// Created by: Remi LEQUETTE
// 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 _BRepClass_Edge_HeaderFile
#define _BRepClass_Edge_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopoDS_Edge.hxx>
#include <TopoDS_Face.hxx>
class TopoDS_Edge;
class TopoDS_Face;
//! This class is used to send the description of an
//! Edge to the classifier. It contains an Edge and a
//! Face. So the PCurve of the Edge can be found.
class BRepClass_Edge
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT BRepClass_Edge();
Standard_EXPORT BRepClass_Edge(const TopoDS_Edge& E, const TopoDS_Face& F);
TopoDS_Edge& Edge();
const TopoDS_Edge& Edge() const;
TopoDS_Face& Face();
const TopoDS_Face& Face() const;
protected:
private:
TopoDS_Edge myEdge;
TopoDS_Face myFace;
};
#include <BRepClass_Edge.lxx>
#endif // _BRepClass_Edge_HeaderFile

View File

@@ -0,0 +1,109 @@
// Created on: 1992-11-18
// Created by: Remi LEQUETTE
// 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 _BRepClass_FClass2dOfFClassifier_HeaderFile
#define _BRepClass_FClass2dOfFClassifier_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <gp_Lin2d.hxx>
#include <Standard_Real.hxx>
#include <TopTrans_CurveTransition.hxx>
#include <BRepClass_Intersector.hxx>
#include <Standard_Integer.hxx>
#include <TopAbs_State.hxx>
#include <TopAbs_Orientation.hxx>
class Standard_DomainError;
class BRepClass_Edge;
class BRepClass_Intersector;
class gp_Lin2d;
class BRepClass_FClass2dOfFClassifier
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT BRepClass_FClass2dOfFClassifier();
Standard_EXPORT void Reset (const gp_Lin2d& L, const Standard_Real P, const Standard_Real Tol);
Standard_EXPORT void Compare (const BRepClass_Edge& E, const TopAbs_Orientation Or);
Standard_Real Parameter() const;
BRepClass_Intersector& Intersector();
Standard_Integer ClosestIntersection() const;
TopAbs_State State() const;
Standard_Boolean IsHeadOrEnd() const;
protected:
private:
Standard_Boolean myIsSet;
Standard_Boolean myFirstCompare;
Standard_Boolean myFirstTrans;
gp_Lin2d myLin;
Standard_Real myParam;
Standard_Real myTolerance;
TopTrans_CurveTransition myTrans;
BRepClass_Intersector myIntersector;
Standard_Integer myClosest;
TopAbs_State myState;
Standard_Boolean myIsHeadOrEnd;
};
#define TheEdge BRepClass_Edge
#define TheEdge_hxx <BRepClass_Edge.hxx>
#define TheIntersector BRepClass_Intersector
#define TheIntersector_hxx <BRepClass_Intersector.hxx>
#define TopClass_Classifier2d BRepClass_FClass2dOfFClassifier
#define TopClass_Classifier2d_hxx <BRepClass_FClass2dOfFClassifier.hxx>
#include <TopClass_Classifier2d.lxx>
#undef TheEdge
#undef TheEdge_hxx
#undef TheIntersector
#undef TheIntersector_hxx
#undef TopClass_Classifier2d
#undef TopClass_Classifier2d_hxx
#endif // _BRepClass_FClass2dOfFClassifier_HeaderFile

View File

@@ -0,0 +1,32 @@
// Created on: 1992-11-18
// Created by: Remi LEQUETTE
// 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 <BRepClass_FClass2dOfFClassifier.hxx>
#include <Standard_DomainError.hxx>
#include <BRepClass_Edge.hxx>
#include <BRepClass_Intersector.hxx>
#include <gp_Lin2d.hxx>
#define TheEdge BRepClass_Edge
#define TheEdge_hxx <BRepClass_Edge.hxx>
#define TheIntersector BRepClass_Intersector
#define TheIntersector_hxx <BRepClass_Intersector.hxx>
#define TopClass_Classifier2d BRepClass_FClass2dOfFClassifier
#define TopClass_Classifier2d_hxx <BRepClass_FClass2dOfFClassifier.hxx>
#include <TopClass_Classifier2d.gxx>

View File

@@ -0,0 +1,114 @@
// Created on: 1992-11-18
// Created by: Remi LEQUETTE
// 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 _BRepClass_FClassifier_HeaderFile
#define _BRepClass_FClassifier_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <BRepClass_FClass2dOfFClassifier.hxx>
#include <BRepClass_Edge.hxx>
#include <Standard_Real.hxx>
#include <IntRes2d_Position.hxx>
#include <Standard_Boolean.hxx>
#include <TopAbs_State.hxx>
class Standard_DomainError;
class BRepClass_FaceExplorer;
class BRepClass_Edge;
class BRepClass_Intersector;
class BRepClass_FClass2dOfFClassifier;
class gp_Pnt2d;
class BRepClass_FClassifier
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT BRepClass_FClassifier();
Standard_EXPORT BRepClass_FClassifier(BRepClass_FaceExplorer& F, const gp_Pnt2d& P, const Standard_Real Tol);
Standard_EXPORT void Perform (BRepClass_FaceExplorer& F, const gp_Pnt2d& P, const Standard_Real Tol);
Standard_EXPORT TopAbs_State State() const;
Standard_Boolean Rejected() const;
Standard_Boolean NoWires() const;
Standard_EXPORT const BRepClass_Edge& Edge() const;
Standard_EXPORT Standard_Real EdgeParameter() const;
IntRes2d_Position Position() const;
protected:
BRepClass_FClass2dOfFClassifier myClassifier;
BRepClass_Edge myEdge;
Standard_Real myEdgeParameter;
IntRes2d_Position myPosition;
Standard_Boolean rejected;
Standard_Boolean nowires;
private:
};
#define TheFaceExplorer BRepClass_FaceExplorer
#define TheFaceExplorer_hxx <BRepClass_FaceExplorer.hxx>
#define TheEdge BRepClass_Edge
#define TheEdge_hxx <BRepClass_Edge.hxx>
#define TheIntersection2d BRepClass_Intersector
#define TheIntersection2d_hxx <BRepClass_Intersector.hxx>
#define TopClass_FClass2d BRepClass_FClass2dOfFClassifier
#define TopClass_FClass2d_hxx <BRepClass_FClass2dOfFClassifier.hxx>
#define TopClass_FaceClassifier BRepClass_FClassifier
#define TopClass_FaceClassifier_hxx <BRepClass_FClassifier.hxx>
#include <TopClass_FaceClassifier.lxx>
#undef TheFaceExplorer
#undef TheFaceExplorer_hxx
#undef TheEdge
#undef TheEdge_hxx
#undef TheIntersection2d
#undef TheIntersection2d_hxx
#undef TopClass_FClass2d
#undef TopClass_FClass2d_hxx
#undef TopClass_FaceClassifier
#undef TopClass_FaceClassifier_hxx
#endif // _BRepClass_FClassifier_HeaderFile

View File

@@ -0,0 +1,38 @@
// Created on: 1992-11-18
// Created by: Remi LEQUETTE
// 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 <BRepClass_FClassifier.hxx>
#include <Standard_DomainError.hxx>
#include <BRepClass_FaceExplorer.hxx>
#include <BRepClass_Edge.hxx>
#include <BRepClass_Intersector.hxx>
#include <BRepClass_FClass2dOfFClassifier.hxx>
#include <gp_Pnt2d.hxx>
#define TheFaceExplorer BRepClass_FaceExplorer
#define TheFaceExplorer_hxx <BRepClass_FaceExplorer.hxx>
#define TheEdge BRepClass_Edge
#define TheEdge_hxx <BRepClass_Edge.hxx>
#define TheIntersection2d BRepClass_Intersector
#define TheIntersection2d_hxx <BRepClass_Intersector.hxx>
#define TopClass_FClass2d BRepClass_FClass2dOfFClassifier
#define TopClass_FClass2d_hxx <BRepClass_FClass2dOfFClassifier.hxx>
#define TopClass_FaceClassifier BRepClass_FClassifier
#define TopClass_FaceClassifier_hxx <BRepClass_FClassifier.hxx>
#include <TopClass_FaceClassifier.gxx>

View File

@@ -1,68 +0,0 @@
-- Created on: 1993-05-28
-- 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 FaceClassifier from BRepClass inherits FClassifier from BRepClass
---Purpose: Provides Constructors with a Face.
uses
FaceExplorer from BRepClass,
Face from TopoDS,
Pnt2d from gp,
Pnt from gp
is
Create returns FaceClassifier from BRepClass;
---Purpose: Empty constructor, undefined algorithm.
Create(F : in out FaceExplorer from BRepClass;
P : Pnt2d from gp; Tol : Real)
returns FaceClassifier from BRepClass;
---Purpose: Creates an algorithm to classify the Point P with
-- Tolerance <T> on the face described by <F>.
Create(F : Face from TopoDS;
P : Pnt2d from gp; Tol : Real)
returns FaceClassifier from BRepClass;
---Purpose: Creates an algorithm to classify the Point P with
-- Tolerance <T> on the face <F>.
Perform(me : in out;
F : Face from TopoDS;
P : Pnt2d from gp; Tol : Real)
---Purpose: Classify the Point P with Tolerance <T> on the
-- face described by <F>.
is static;
Create(F : Face from TopoDS;
P : Pnt from gp; Tol : Real)
returns FaceClassifier from BRepClass;
---Purpose: Creates an algorithm to classify the Point P with
-- Tolerance <T> on the face <F>.
Perform(me : in out;
F : Face from TopoDS;
P : Pnt from gp; Tol : Real)
---Purpose: Classify the Point P with Tolerance <T> on the
-- face described by <F>.
is static;
end FaceClassifier;

View File

@@ -12,13 +12,17 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <BRepClass_FaceClassifier.ixx>
#include <TopAbs_State.hxx>
#include <Extrema_ExtPS.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepTools.hxx>
#include <BRepAdaptor_HSurface.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepClass_FaceClassifier.hxx>
#include <BRepClass_FaceExplorer.hxx>
#include <BRepTools.hxx>
#include <Extrema_ExtPS.hxx>
#include <gp_Pnt.hxx>
#include <gp_Pnt2d.hxx>
#include <TopAbs_State.hxx>
#include <TopoDS_Face.hxx>
//=======================================================================
//function : BRepClass_FaceClassifier

View File

@@ -0,0 +1,86 @@
// Created on: 1993-05-28
// 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 _BRepClass_FaceClassifier_HeaderFile
#define _BRepClass_FaceClassifier_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <BRepClass_FClassifier.hxx>
#include <Standard_Real.hxx>
class BRepClass_FaceExplorer;
class gp_Pnt2d;
class TopoDS_Face;
class gp_Pnt;
//! Provides Constructors with a Face.
class BRepClass_FaceClassifier : public BRepClass_FClassifier
{
public:
DEFINE_STANDARD_ALLOC
//! Empty constructor, undefined algorithm.
Standard_EXPORT BRepClass_FaceClassifier();
//! Creates an algorithm to classify the Point P with
//! Tolerance <T> on the face described by <F>.
Standard_EXPORT BRepClass_FaceClassifier(BRepClass_FaceExplorer& F, const gp_Pnt2d& P, const Standard_Real Tol);
//! Creates an algorithm to classify the Point P with
//! Tolerance <T> on the face <F>.
Standard_EXPORT BRepClass_FaceClassifier(const TopoDS_Face& F, const gp_Pnt2d& P, const Standard_Real Tol);
//! Classify the Point P with Tolerance <T> on the
//! face described by <F>.
Standard_EXPORT void Perform (const TopoDS_Face& F, const gp_Pnt2d& P, const Standard_Real Tol);
//! Creates an algorithm to classify the Point P with
//! Tolerance <T> on the face <F>.
Standard_EXPORT BRepClass_FaceClassifier(const TopoDS_Face& F, const gp_Pnt& P, const Standard_Real Tol);
//! Classify the Point P with Tolerance <T> on the
//! face described by <F>.
Standard_EXPORT void Perform (const TopoDS_Face& F, const gp_Pnt& P, const Standard_Real Tol);
protected:
private:
};
#endif // _BRepClass_FaceClassifier_HeaderFile

View File

@@ -1,118 +0,0 @@
-- Created on: 1992-11-19
-- Created by: Remi LEQUETTE
-- 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.
-- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627
class FaceExplorer from BRepClass
---Purpose: Provide an exploration of a BRep Face for the
-- classification. Return UV edges.
uses
Orientation from TopAbs,
Pnt2d from gp,
Lin2d from gp,
Face from TopoDS,
Explorer from TopExp,
Edge from BRepClass
is
Create (F : Face from TopoDS) returns FaceExplorer from BRepClass;
Reject(me; P : Pnt2d from gp) returns Boolean
---Purpose: Should return True if the point is outside a
-- bounding volume of the face.
is static;
-- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 Begin
-- Segment(me; P : Pnt2d from gp;
Segment(me: in out; P : Pnt2d from gp;
-- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 End
L : out Lin2d from gp; Par : out Real)
---Purpose: Returns in <L>, <Par> a segment having at least
-- one intersection with the face boundary to
-- compute intersections.
returns Boolean from Standard -- skv OCC12627
is static;
-- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 Begin
OtherSegment(me: in out; P : Pnt2d from gp;
L : out Lin2d from gp; Par : out Real)
---Purpose: Returns in <L>, <Par> a segment having at least
-- one intersection with the face boundary to
-- compute intersections. Each call gives another segment.
returns Boolean from Standard
is static;
-- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 End
InitWires(me : in out)
---Purpose: Starts an exploration of the wires.
is static;
MoreWires(me) returns Boolean
---Purpose: Returns True if there is a current wire.
--
---C++: inline
is static;
NextWire(me : in out)
---Purpose: Sets the explorer to the next wire.
--
---C++: inline
is static;
RejectWire(me; L : Lin2d from gp; Par : Real) returns Boolean
---Purpose: Returns True if the wire bounding volume does not
-- intersect the segment.
is static;
InitEdges(me : in out)
---Purpose: Starts an exploration of the edges of the current
-- wire.
is static;
MoreEdges(me) returns Boolean
---Purpose: Returns True if there is a current edge.
--
---C++: inline
is static;
NextEdge(me : in out)
---Purpose: Sets the explorer to the next edge.
--
---C++: inline
is static;
RejectEdge(me; L : Lin2d from gp; Par : Real) returns Boolean
---Purpose: Returns True if the edge bounding volume does not
-- intersect the segment.
is static;
CurrentEdge(me; E : out Edge from BRepClass;
Or : out Orientation from TopAbs)
---Purpose: Current edge in current wire and its orientation.
is static;
fields
myFace : Face from TopoDS;
myWExplorer : Explorer from TopExp;
myEExplorer : Explorer from TopExp;
-- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 Begin
myCurEdgeInd: Integer from Standard;
myCurEdgePar: Real from Standard;
-- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 End
end FaceExplorer;

View File

@@ -17,11 +17,15 @@
// Modified by skv - Thu Jul 13 17:42:58 2006 OCC12627
// Total rewriting of the method Segment; add the method OtherSegment.
#include <BRepClass_FaceExplorer.ixx>
#include <Precision.hxx>
#include <Geom2d_Curve.hxx>
#include <TopoDS.hxx>
#include <BRep_Tool.hxx>
#include <BRepClass_Edge.hxx>
#include <BRepClass_FaceExplorer.hxx>
#include <Geom2d_Curve.hxx>
#include <gp_Lin2d.hxx>
#include <gp_Pnt2d.hxx>
#include <Precision.hxx>
#include <TopoDS.hxx>
#include <TopoDS_Face.hxx>
static const Standard_Real Probing_Start = 0.123;
static const Standard_Real Probing_End = 0.7;

View File

@@ -0,0 +1,120 @@
// Created on: 1992-11-19
// Created by: Remi LEQUETTE
// 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 _BRepClass_FaceExplorer_HeaderFile
#define _BRepClass_FaceExplorer_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TopoDS_Face.hxx>
#include <TopExp_Explorer.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
#include <TopAbs_Orientation.hxx>
class TopoDS_Face;
class gp_Pnt2d;
class gp_Lin2d;
class BRepClass_Edge;
//! Provide an exploration of a BRep Face for the
//! classification. Return UV edges.
class BRepClass_FaceExplorer
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT BRepClass_FaceExplorer(const TopoDS_Face& F);
//! Should return True if the point is outside a
//! bounding volume of the face.
Standard_EXPORT Standard_Boolean Reject (const gp_Pnt2d& P) const;
//! Returns in <L>, <Par> a segment having at least
//! one intersection with the face boundary to
//! compute intersections.
Standard_EXPORT Standard_Boolean Segment (const gp_Pnt2d& P, gp_Lin2d& L, Standard_Real& Par);
//! Returns in <L>, <Par> a segment having at least
//! one intersection with the face boundary to
//! compute intersections. Each call gives another segment.
Standard_EXPORT Standard_Boolean OtherSegment (const gp_Pnt2d& P, gp_Lin2d& L, Standard_Real& Par);
//! Starts an exploration of the wires.
Standard_EXPORT void InitWires();
//! Returns True if there is a current wire.
Standard_Boolean MoreWires() const;
//! Sets the explorer to the next wire.
void NextWire();
//! Returns True if the wire bounding volume does not
//! intersect the segment.
Standard_EXPORT Standard_Boolean RejectWire (const gp_Lin2d& L, const Standard_Real Par) const;
//! Starts an exploration of the edges of the current
//! wire.
Standard_EXPORT void InitEdges();
//! Returns True if there is a current edge.
Standard_Boolean MoreEdges() const;
//! Sets the explorer to the next edge.
void NextEdge();
//! Returns True if the edge bounding volume does not
//! intersect the segment.
Standard_EXPORT Standard_Boolean RejectEdge (const gp_Lin2d& L, const Standard_Real Par) const;
//! Current edge in current wire and its orientation.
Standard_EXPORT void CurrentEdge (BRepClass_Edge& E, TopAbs_Orientation& Or) const;
protected:
private:
TopoDS_Face myFace;
TopExp_Explorer myWExplorer;
TopExp_Explorer myEExplorer;
Standard_Integer myCurEdgeInd;
Standard_Real myCurEdgePar;
};
#include <BRepClass_FaceExplorer.lxx>
#endif // _BRepClass_FaceExplorer_HeaderFile

View File

@@ -0,0 +1,109 @@
// Created on: 1992-11-18
// Created by: Remi LEQUETTE
// 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 _BRepClass_FacePassiveClassifier_HeaderFile
#define _BRepClass_FacePassiveClassifier_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Boolean.hxx>
#include <gp_Lin2d.hxx>
#include <Standard_Real.hxx>
#include <TopTrans_CurveTransition.hxx>
#include <BRepClass_Intersector.hxx>
#include <Standard_Integer.hxx>
#include <TopAbs_State.hxx>
#include <TopAbs_Orientation.hxx>
class Standard_DomainError;
class BRepClass_Edge;
class BRepClass_Intersector;
class gp_Lin2d;
class BRepClass_FacePassiveClassifier
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT BRepClass_FacePassiveClassifier();
Standard_EXPORT void Reset (const gp_Lin2d& L, const Standard_Real P, const Standard_Real Tol);
Standard_EXPORT void Compare (const BRepClass_Edge& E, const TopAbs_Orientation Or);
Standard_Real Parameter() const;
BRepClass_Intersector& Intersector();
Standard_Integer ClosestIntersection() const;
TopAbs_State State() const;
Standard_Boolean IsHeadOrEnd() const;
protected:
private:
Standard_Boolean myIsSet;
Standard_Boolean myFirstCompare;
Standard_Boolean myFirstTrans;
gp_Lin2d myLin;
Standard_Real myParam;
Standard_Real myTolerance;
TopTrans_CurveTransition myTrans;
BRepClass_Intersector myIntersector;
Standard_Integer myClosest;
TopAbs_State myState;
Standard_Boolean myIsHeadOrEnd;
};
#define TheEdge BRepClass_Edge
#define TheEdge_hxx <BRepClass_Edge.hxx>
#define TheIntersector BRepClass_Intersector
#define TheIntersector_hxx <BRepClass_Intersector.hxx>
#define TopClass_Classifier2d BRepClass_FacePassiveClassifier
#define TopClass_Classifier2d_hxx <BRepClass_FacePassiveClassifier.hxx>
#include <TopClass_Classifier2d.lxx>
#undef TheEdge
#undef TheEdge_hxx
#undef TheIntersector
#undef TheIntersector_hxx
#undef TopClass_Classifier2d
#undef TopClass_Classifier2d_hxx
#endif // _BRepClass_FacePassiveClassifier_HeaderFile

View File

@@ -0,0 +1,32 @@
// Created on: 1992-11-18
// Created by: Remi LEQUETTE
// 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 <BRepClass_FacePassiveClassifier.hxx>
#include <Standard_DomainError.hxx>
#include <BRepClass_Edge.hxx>
#include <BRepClass_Intersector.hxx>
#include <gp_Lin2d.hxx>
#define TheEdge BRepClass_Edge
#define TheEdge_hxx <BRepClass_Edge.hxx>
#define TheIntersector BRepClass_Intersector
#define TheIntersector_hxx <BRepClass_Intersector.hxx>
#define TopClass_Classifier2d BRepClass_FacePassiveClassifier
#define TopClass_Classifier2d_hxx <BRepClass_FacePassiveClassifier.hxx>
#include <TopClass_Classifier2d.gxx>

View File

@@ -1,47 +0,0 @@
-- Created on: 1992-11-19
-- Created by: Remi LEQUETTE
-- 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 Intersector from BRepClass
inherits IntConicCurveOfGInter from Geom2dInt
---Purpose: Intersect an Edge with a segment.
-- Implement the Intersector2d required by the classifier.
uses
Lin2d from gp,
Dir2d from gp,
Edge from BRepClass
is
Create returns Intersector from BRepClass;
Perform(me : in out;
L : Lin2d from gp; P : Real; Tol : Real;
E : Edge from BRepClass)
---Purpose: Intersect the line segment and the edge.
is static;
LocalGeometry(me; E : Edge from BRepClass;
U : Real;
T : out Dir2d from gp;
N : out Dir2d from gp;
C : out Real)
---Purpose: Returns in <T>, <N> and <C> the tangent, normal
-- and curvature of the edge <E> at parameter value
-- <U>.
is static;
end Intersector;

View File

@@ -14,25 +14,26 @@
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#include <BRepClass_Intersector.ixx>
#include <BRep_Tool.hxx>
#include <BRepAdaptor_Curve2d.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <TopoDS_Vertex.hxx>
#include <TopExp.hxx>
#include <IntRes2d_Domain.hxx>
#include <Geom2dLProp_CLProps2d.hxx>
#include <Geom2d_Curve.hxx>
#include <BRepClass_Edge.hxx>
#include <BRepClass_Intersector.hxx>
#include <ElCLib.hxx>
#include <Precision.hxx>
#include <Geom2d_Line.hxx>
#include <Geom2dInt_GInter.hxx>
#include <Extrema_ExtPC2d.hxx>
#include <IntRes2d_Transition.hxx>
#include <Geom2d_Curve.hxx>
#include <Geom2d_Line.hxx>
#include <Geom2dInt_GInter.hxx>
#include <Geom2dLProp_CLProps2d.hxx>
#include <gp_Dir2d.hxx>
#include <gp_Lin2d.hxx>
#include <IntRes2d_Domain.hxx>
#include <IntRes2d_IntersectionPoint.hxx>
#include <IntRes2d_Transition.hxx>
#include <Precision.hxx>
#include <TopExp.hxx>
#include <TopoDS_Vertex.hxx>
static
void RefineTolerance(const TopoDS_Face& aF,

View File

@@ -0,0 +1,73 @@
// Created on: 1992-11-19
// Created by: Remi LEQUETTE
// 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 _BRepClass_Intersector_HeaderFile
#define _BRepClass_Intersector_HeaderFile
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Geom2dInt_IntConicCurveOfGInter.hxx>
#include <Standard_Real.hxx>
class gp_Lin2d;
class BRepClass_Edge;
class gp_Dir2d;
//! Intersect an Edge with a segment.
//! Implement the Intersector2d required by the classifier.
class BRepClass_Intersector : public Geom2dInt_IntConicCurveOfGInter
{
public:
DEFINE_STANDARD_ALLOC
Standard_EXPORT BRepClass_Intersector();
//! Intersect the line segment and the edge.
Standard_EXPORT void Perform (const gp_Lin2d& L, const Standard_Real P, const Standard_Real Tol, const BRepClass_Edge& E);
//! Returns in <T>, <N> and <C> the tangent, normal
//! and curvature of the edge <E> at parameter value
//! <U>.
Standard_EXPORT void LocalGeometry (const BRepClass_Edge& E, const Standard_Real U, gp_Dir2d& T, gp_Dir2d& N, Standard_Real& C) const;
protected:
private:
};
#endif // _BRepClass_Intersector_HeaderFile

16
src/BRepClass/FILES Normal file
View File

@@ -0,0 +1,16 @@
BRepClass_Edge.cxx
BRepClass_Edge.hxx
BRepClass_Edge.lxx
BRepClass_FaceClassifier.cxx
BRepClass_FaceClassifier.hxx
BRepClass_FaceExplorer.cxx
BRepClass_FaceExplorer.hxx
BRepClass_FaceExplorer.lxx
BRepClass_FacePassiveClassifier.hxx
BRepClass_FacePassiveClassifier_0.cxx
BRepClass_FClass2dOfFClassifier.hxx
BRepClass_FClass2dOfFClassifier_0.cxx
BRepClass_FClassifier.hxx
BRepClass_FClassifier_0.cxx
BRepClass_Intersector.cxx
BRepClass_Intersector.hxx