mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-29 14:00:49 +03:00
0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl": - WOK-generated header files from inc and sources from drv are moved to src - CDL files removed - All packages are converted to nocdlpack
This commit is contained in:
6
src/IntCurvesFace/FILES
Normal file
6
src/IntCurvesFace/FILES
Normal file
@@ -0,0 +1,6 @@
|
||||
IntCurvesFace_Intersector.cxx
|
||||
IntCurvesFace_Intersector.hxx
|
||||
IntCurvesFace_Intersector.lxx
|
||||
IntCurvesFace_ShapeIntersector.cxx
|
||||
IntCurvesFace_ShapeIntersector.hxx
|
||||
IntCurvesFace_ShapeIntersector.lxx
|
@@ -1,59 +0,0 @@
|
||||
-- Created on: 1996-05-31
|
||||
-- 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.
|
||||
|
||||
package IntCurvesFace
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- This package provide algorithms to compute the intersection points
|
||||
-- between a Face [a Shape] and a set of curves (The face [shape] is
|
||||
-- loaded, then for each curve is given to compute the intersection).
|
||||
--
|
||||
-- Intersector [ ShapeIntersector ] can be used when the caller have
|
||||
-- to intersect more than one curve with the face [the shape].
|
||||
--
|
||||
--
|
||||
-- If there is only one curve, or if the face has no restrictions,
|
||||
-- someother algorithms can be called.
|
||||
--
|
||||
-- see for example the packages :
|
||||
--
|
||||
-- ** BRepIntCurveSurface : ( One Curve <-> One Shape )
|
||||
-- ** IntCurveSurface : ( One Curve <-> One Surface)
|
||||
--
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
uses
|
||||
gp ,
|
||||
TopAbs ,
|
||||
TopoDS ,
|
||||
BRepTopAdaptor ,
|
||||
BRepAdaptor ,
|
||||
Adaptor3d ,
|
||||
Bnd ,
|
||||
IntCurveSurface ,
|
||||
TColStd ,
|
||||
GeomAbs
|
||||
|
||||
is
|
||||
|
||||
class Intersector; -- Intersection between a Face and a set of curves
|
||||
|
||||
class ShapeIntersector; -- Intersection between a Shape and a set of curves
|
||||
-- Note ( has an empty constructor )
|
||||
|
||||
end;
|
||||
|
@@ -1,201 +0,0 @@
|
||||
-- Created on: 1996-05-31
|
||||
-- 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.
|
||||
|
||||
-- Modified by skv - Wed Sep 3 15:38:56 2003 OCC578
|
||||
-- Adding a sequence of state with two possible values: 0 means the point is
|
||||
-- inside the face, 1 - the point is on the bound of face. This is done to get
|
||||
-- a proper result of method State(int), which always returned TopAbs_IN before.
|
||||
|
||||
|
||||
|
||||
class Intersector from IntCurvesFace
|
||||
|
||||
uses
|
||||
|
||||
Lin from gp,
|
||||
Pnt from gp,
|
||||
Pnt2d from gp,
|
||||
Box from Bnd,
|
||||
Face from TopoDS,
|
||||
Shape from TopoDS,
|
||||
State from TopAbs,
|
||||
TopolTool from BRepTopAdaptor,
|
||||
HSurface from BRepAdaptor,
|
||||
TransitionOnCurve from IntCurveSurface,
|
||||
SequenceOfPnt from IntCurveSurface,
|
||||
-- Modified by skv - Wed Sep 3 15:38:56 2003 OCC578 Begin
|
||||
SequenceOfInteger from TColStd,
|
||||
-- Modified by skv - Wed Sep 3 15:38:56 2003 OCC578 End
|
||||
HCurve from Adaptor3d,
|
||||
HInter from IntCurveSurface,
|
||||
SurfaceType from GeomAbs
|
||||
|
||||
is
|
||||
|
||||
Create(F : Face from TopoDS;
|
||||
aTol : Real from Standard)
|
||||
|
||||
---Purpose: Load a Face.
|
||||
--
|
||||
-- The Tolerance <Tol> is used to determine if the
|
||||
-- first point of the segment is near the face. In
|
||||
-- that case, the parameter of the intersection point
|
||||
-- on the line can be a negative value (greater than -Tol).
|
||||
|
||||
returns Intersector from IntCurvesFace;
|
||||
|
||||
|
||||
Perform(me: in out; L : Lin from gp;
|
||||
PInf : Real from Standard;
|
||||
PSup : Real from Standard)
|
||||
|
||||
---Purpose: Perform the intersection between the
|
||||
-- segment L and the loaded face.
|
||||
--
|
||||
-- PInf is the smallest parameter on the line
|
||||
-- PSup is the highest parmaeter on the line
|
||||
--
|
||||
-- For an infinite line PInf and PSup can be
|
||||
-- +/- RealLast.
|
||||
|
||||
is static;
|
||||
|
||||
Perform(me: in out; HCu : HCurve from Adaptor3d;
|
||||
PInf : Real from Standard;
|
||||
PSup : Real from Standard)
|
||||
---Purpose : same method for a HCurve from Adaptor3d.
|
||||
-- PInf an PSup can also be - and + INF.
|
||||
is static;
|
||||
|
||||
|
||||
SurfaceType(me)
|
||||
---Purpose: Return the surface type
|
||||
returns SurfaceType from GeomAbs
|
||||
is static;
|
||||
|
||||
|
||||
IsDone(me)
|
||||
---Purpose: True is returned when the intersection have been computed.
|
||||
---C++: inline
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
|
||||
NbPnt(me)
|
||||
---C++: inline
|
||||
returns Integer from Standard
|
||||
is static;
|
||||
|
||||
|
||||
UParameter(me; I : Integer from Standard)
|
||||
---Purpose: Returns the U parameter of the ith intersection point
|
||||
-- on the surface.
|
||||
---C++: inline
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
VParameter(me; I : Integer from Standard)
|
||||
---Purpose: Returns the V parameter of the ith intersection point
|
||||
-- on the surface.
|
||||
---C++: inline
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
WParameter(me; I : Integer from Standard)
|
||||
---Purpose: Returns the parameter of the ith intersection point
|
||||
-- on the line.
|
||||
---C++: inline
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Pnt(me; I : Integer from Standard)
|
||||
---Purpose: Returns the geometric point of the ith intersection
|
||||
-- between the line and the surface.
|
||||
---C++: inline
|
||||
---C++: return const &
|
||||
returns Pnt from gp
|
||||
is static;
|
||||
|
||||
|
||||
Transition(me; I : Integer from Standard)
|
||||
---Purpose: Returns the ith transition of the line on the surface.
|
||||
---C++: inline
|
||||
returns TransitionOnCurve from IntCurveSurface
|
||||
is static;
|
||||
|
||||
|
||||
State(me; I : Integer from Standard)
|
||||
---Purpose: Returns the ith state of the point on the face.
|
||||
-- The values can be either TopAbs_IN
|
||||
-- ( the point is in the face)
|
||||
-- or TopAbs_ON
|
||||
-- ( the point is on a boudary of the face).
|
||||
---C++: inline
|
||||
|
||||
returns State from TopAbs
|
||||
is static;
|
||||
|
||||
Face(me)
|
||||
---Purpose: Returns the significant face used to determine
|
||||
-- the intersection.
|
||||
--
|
||||
---C++: inline
|
||||
---C++: return const &
|
||||
returns Face from TopoDS
|
||||
is static;
|
||||
|
||||
|
||||
InternalCall(me: in out;
|
||||
HICS: HInter from IntCurveSurface;
|
||||
pinf: Real from Standard;
|
||||
psup: Real from Standard)
|
||||
is static private;
|
||||
|
||||
ClassifyUVPoint(me; Puv: Pnt2d from gp)
|
||||
returns State from TopAbs;
|
||||
|
||||
Bounding(me)
|
||||
returns Box from Bnd;
|
||||
|
||||
Destroy(me: in out);
|
||||
---C++: alias ~
|
||||
|
||||
|
||||
fields
|
||||
myTopolTool : TopolTool from BRepTopAdaptor;
|
||||
Hsurface : HSurface from BRepAdaptor;
|
||||
Tol : Real from Standard;
|
||||
SeqPnt : SequenceOfPnt from IntCurveSurface;
|
||||
-- Modified by skv - Wed Sep 3 15:38:56 2003 OCC578 Begin
|
||||
mySeqState : SequenceOfInteger from TColStd; -- 0 = IN, 1 = ON
|
||||
-- Modified by skv - Wed Sep 3 15:38:56 2003 OCC578 End
|
||||
|
||||
-- pnt : Pnt from gp;
|
||||
-- U : Real from Standard;
|
||||
-- V : Real from Standard;
|
||||
-- W : Real from Standard;
|
||||
-- transition : TransitionOnCurve from IntCurveSurface;
|
||||
|
||||
done : Boolean from Standard;
|
||||
nbpnt : Integer from Standard;
|
||||
-- state : State from TopAbs;
|
||||
face : Face from TopoDS;
|
||||
PtrOnPolyhedron : Address from Standard;
|
||||
PtrOnBndBounding : Address from Standard;
|
||||
|
||||
|
||||
end Intersector from IntCurvesFace;
|
@@ -17,40 +17,30 @@
|
||||
#define OPTIMISATION 1
|
||||
|
||||
|
||||
#include <IntCurvesFace_Intersector.ixx>
|
||||
|
||||
#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
#include <Bnd_BoundSortBox.hxx>
|
||||
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopAbs.hxx>
|
||||
|
||||
|
||||
#include <IntCurveSurface_HInter.hxx>
|
||||
#include <BRepAdaptor_HSurface.hxx>
|
||||
#include <Geom_Line.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <BRepClass_FaceClassifier.hxx>
|
||||
|
||||
#include <GeomAdaptor_Curve.hxx>
|
||||
|
||||
#include <GeomAdaptor_HCurve.hxx>
|
||||
#include <BRepAdaptor_HSurface.hxx>
|
||||
|
||||
|
||||
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <Bnd_BoundSortBox.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <Intf_Tool.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#include <BRepAdaptor_HSurface.hxx>
|
||||
#include <BRepClass_FaceClassifier.hxx>
|
||||
#include <BRepTopAdaptor_TopolTool.hxx>
|
||||
#include <Geom_Line.hxx>
|
||||
#include <GeomAdaptor_Curve.hxx>
|
||||
#include <GeomAdaptor_HCurve.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <IntCurvesFace_Intersector.hxx>
|
||||
#include <IntCurveSurface_HInter.hxx>
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
#include <IntCurveSurface_SequenceOfPnt.hxx>
|
||||
|
||||
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
#include <Intf_Tool.hxx>
|
||||
#include <TopAbs.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : SurfaceType
|
||||
|
159
src/IntCurvesFace/IntCurvesFace_Intersector.hxx
Normal file
159
src/IntCurvesFace/IntCurvesFace_Intersector.hxx
Normal file
@@ -0,0 +1,159 @@
|
||||
// Created on: 1996-05-31
|
||||
// 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 _IntCurvesFace_Intersector_HeaderFile
|
||||
#define _IntCurvesFace_Intersector_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <IntCurveSurface_SequenceOfPnt.hxx>
|
||||
#include <TColStd_SequenceOfInteger.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <Standard_Address.hxx>
|
||||
#include <GeomAbs_SurfaceType.hxx>
|
||||
#include <IntCurveSurface_TransitionOnCurve.hxx>
|
||||
#include <TopAbs_State.hxx>
|
||||
class BRepTopAdaptor_TopolTool;
|
||||
class BRepAdaptor_HSurface;
|
||||
class TopoDS_Face;
|
||||
class gp_Lin;
|
||||
class Adaptor3d_HCurve;
|
||||
class gp_Pnt;
|
||||
class IntCurveSurface_HInter;
|
||||
class gp_Pnt2d;
|
||||
class Bnd_Box;
|
||||
|
||||
|
||||
|
||||
class IntCurvesFace_Intersector
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Load a Face.
|
||||
//!
|
||||
//! The Tolerance <Tol> is used to determine if the
|
||||
//! first point of the segment is near the face. In
|
||||
//! that case, the parameter of the intersection point
|
||||
//! on the line can be a negative value (greater than -Tol).
|
||||
Standard_EXPORT IntCurvesFace_Intersector(const TopoDS_Face& F, const Standard_Real aTol);
|
||||
|
||||
//! Perform the intersection between the
|
||||
//! segment L and the loaded face.
|
||||
//!
|
||||
//! PInf is the smallest parameter on the line
|
||||
//! PSup is the highest parmaeter on the line
|
||||
//!
|
||||
//! For an infinite line PInf and PSup can be
|
||||
//! +/- RealLast.
|
||||
Standard_EXPORT void Perform (const gp_Lin& L, const Standard_Real PInf, const Standard_Real PSup);
|
||||
|
||||
//! same method for a HCurve from Adaptor3d.
|
||||
//! PInf an PSup can also be - and + INF.
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& HCu, const Standard_Real PInf, const Standard_Real PSup);
|
||||
|
||||
//! Return the surface type
|
||||
Standard_EXPORT GeomAbs_SurfaceType SurfaceType() const;
|
||||
|
||||
//! True is returned when the intersection have been computed.
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_Integer NbPnt() const;
|
||||
|
||||
//! Returns the U parameter of the ith intersection point
|
||||
//! on the surface.
|
||||
Standard_Real UParameter (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the V parameter of the ith intersection point
|
||||
//! on the surface.
|
||||
Standard_Real VParameter (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the parameter of the ith intersection point
|
||||
//! on the line.
|
||||
Standard_Real WParameter (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the geometric point of the ith intersection
|
||||
//! between the line and the surface.
|
||||
const gp_Pnt& Pnt (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the ith transition of the line on the surface.
|
||||
IntCurveSurface_TransitionOnCurve Transition (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the ith state of the point on the face.
|
||||
//! The values can be either TopAbs_IN
|
||||
//! ( the point is in the face)
|
||||
//! or TopAbs_ON
|
||||
//! ( the point is on a boudary of the face).
|
||||
TopAbs_State State (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the significant face used to determine
|
||||
//! the intersection.
|
||||
const TopoDS_Face& Face() const;
|
||||
|
||||
Standard_EXPORT TopAbs_State ClassifyUVPoint (const gp_Pnt2d& Puv) const;
|
||||
|
||||
Standard_EXPORT Bnd_Box Bounding() const;
|
||||
|
||||
Standard_EXPORT void Destroy();
|
||||
~IntCurvesFace_Intersector()
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void InternalCall (const IntCurveSurface_HInter& HICS, const Standard_Real pinf, const Standard_Real psup);
|
||||
|
||||
|
||||
Handle(BRepTopAdaptor_TopolTool) myTopolTool;
|
||||
Handle(BRepAdaptor_HSurface) Hsurface;
|
||||
Standard_Real Tol;
|
||||
IntCurveSurface_SequenceOfPnt SeqPnt;
|
||||
TColStd_SequenceOfInteger mySeqState;
|
||||
Standard_Boolean done;
|
||||
Standard_Integer nbpnt;
|
||||
TopoDS_Face face;
|
||||
Standard_Address PtrOnPolyhedron;
|
||||
Standard_Address PtrOnBndBounding;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <IntCurvesFace_Intersector.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurvesFace_Intersector_HeaderFile
|
@@ -1,183 +0,0 @@
|
||||
-- Created on: 1998-01-27
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1998-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 ShapeIntersector from IntCurvesFace
|
||||
|
||||
uses
|
||||
Lin from gp,
|
||||
HCurve from Adaptor3d,
|
||||
Shape from TopoDS,
|
||||
Face from TopoDS,
|
||||
Pnt from gp,
|
||||
State from TopAbs,
|
||||
TransitionOnCurve from IntCurveSurface,
|
||||
SequenceOfInteger from TColStd,
|
||||
SequenceOfReal from TColStd,
|
||||
SeqOfPtr from BRepTopAdaptor
|
||||
|
||||
is
|
||||
|
||||
-- ========================= i n i t i a l i s a t i o n s ================
|
||||
Create
|
||||
-- empty constructor
|
||||
returns ShapeIntersector from IntCurvesFace;
|
||||
|
||||
Load(me: in out; Sh : Shape from TopoDS;
|
||||
Tol: Real from Standard)
|
||||
is static;
|
||||
|
||||
|
||||
Perform(me: in out; L : Lin from gp;
|
||||
PInf : Real from Standard;
|
||||
PSup : Real from Standard)
|
||||
|
||||
---Purpose: Perform the intersection between the
|
||||
-- segment L and the loaded shape.
|
||||
--
|
||||
-- PInf is the smallest parameter on the line
|
||||
-- PSup is the highest parammter on the line
|
||||
--
|
||||
-- For an infinite line PInf and PSup can be
|
||||
-- +/- RealLast.
|
||||
|
||||
is static;
|
||||
|
||||
PerformNearest(me: in out; L : Lin from gp;
|
||||
PInf : Real from Standard;
|
||||
PSup : Real from Standard)
|
||||
|
||||
---Purpose: Perform the intersection between the
|
||||
-- segment L and the loaded shape.
|
||||
--
|
||||
-- PInf is the smallest parameter on the line
|
||||
-- PSup is the highest parammter on the line
|
||||
--
|
||||
-- For an infinite line PInf and PSup can be
|
||||
-- +/- RealLast.
|
||||
|
||||
is static;
|
||||
|
||||
Perform(me: in out; HCu : HCurve from Adaptor3d;
|
||||
PInf : Real from Standard;
|
||||
PSup : Real from Standard)
|
||||
---Purpose : same method for a HCurve from Adaptor3d.
|
||||
-- PInf an PSup can also be - and + INF.
|
||||
is static;
|
||||
|
||||
|
||||
-- ============================= r e s u l t s ============================
|
||||
-- ===
|
||||
-- === (ordered by increasing parameter on the curve)
|
||||
-- ===
|
||||
|
||||
IsDone(me)
|
||||
---Purpose: True is returned when the intersection have been computed.
|
||||
---C++: inline
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
|
||||
NbPnt(me)
|
||||
---C++: inline
|
||||
returns Integer from Standard
|
||||
is static;
|
||||
|
||||
|
||||
UParameter(me; I : Integer from Standard)
|
||||
---Purpose: Returns the U parameter of the ith intersection point
|
||||
-- on the surface.
|
||||
---C++: inline
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
VParameter(me; I : Integer from Standard)
|
||||
---Purpose: Returns the V parameter of the ith intersection point
|
||||
-- on the surface.
|
||||
---C++: inline
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
WParameter(me; I : Integer from Standard)
|
||||
---Purpose: Returns the parameter of the ith intersection point
|
||||
-- on the line.
|
||||
---C++: inline
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Pnt(me; I : Integer from Standard)
|
||||
---Purpose: Returns the geometric point of the ith intersection
|
||||
-- between the line and the surface.
|
||||
---C++: inline
|
||||
---C++: return const &
|
||||
returns Pnt from gp
|
||||
is static;
|
||||
|
||||
|
||||
Transition(me; I : Integer from Standard)
|
||||
---Purpose: Returns the ith transition of the line on the surface.
|
||||
---C++: inline
|
||||
returns TransitionOnCurve from IntCurveSurface
|
||||
is static;
|
||||
|
||||
|
||||
State(me; I : Integer from Standard)
|
||||
---Purpose: Returns the ith state of the point on the face.
|
||||
-- The values can be either TopAbs_IN
|
||||
-- ( the point is in the face)
|
||||
-- or TopAbs_ON
|
||||
-- ( the point is on a boudary of the face).
|
||||
---C++: inline
|
||||
|
||||
returns State from TopAbs
|
||||
is static;
|
||||
|
||||
Face(me; I : Integer from Standard)
|
||||
---Purpose: Returns the significant face used to determine
|
||||
-- the intersection.
|
||||
--
|
||||
---C++: inline
|
||||
---C++: return const &
|
||||
returns Face from TopoDS
|
||||
is static;
|
||||
|
||||
-- ================== I n t e r n a l F u n c t i o n s ===============
|
||||
|
||||
|
||||
SortResult(me: in out)
|
||||
---Purpose: Internal method. Sort the result on the Curve
|
||||
-- parameter.
|
||||
is static;
|
||||
|
||||
Destroy(me: in out);
|
||||
---C++: alias ~
|
||||
|
||||
|
||||
|
||||
fields
|
||||
done : Boolean from Standard;
|
||||
nbfaces : Integer from Standard;
|
||||
|
||||
PtrJetons : Address from Standard;
|
||||
PtrJetonsIndex : Address from Standard;
|
||||
PtrIntersector : SeqOfPtr from BRepTopAdaptor;
|
||||
IndexPt : SequenceOfInteger from TColStd;
|
||||
IndexFace : SequenceOfInteger from TColStd;
|
||||
IndexIntPnt : SequenceOfInteger from TColStd;
|
||||
IndexPar : SequenceOfReal from TColStd;
|
||||
end ShapeIntersector from IntCurvesFace;
|
||||
|
||||
|
@@ -14,16 +14,21 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurvesFace_ShapeIntersector.ixx>
|
||||
|
||||
#include <TopExp_Explorer.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <IntCurvesFace_Intersector.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Bnd_BoundSortBox.hxx>
|
||||
#include <Bnd_HArray1OfBox.hxx>
|
||||
#include <ElCLib.hxx>
|
||||
#include <TColStd_ListOfInteger.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <IntCurvesFace_Intersector.hxx>
|
||||
#include <IntCurvesFace_ShapeIntersector.hxx>
|
||||
#include <TColStd_ListIteratorOfListOfInteger.hxx>
|
||||
#include <TColStd_ListOfInteger.hxx>
|
||||
#include <TopExp_Explorer.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
|
||||
//-- ================================================================================
|
||||
IntCurvesFace_ShapeIntersector::IntCurvesFace_ShapeIntersector() {
|
||||
|
154
src/IntCurvesFace/IntCurvesFace_ShapeIntersector.hxx
Normal file
154
src/IntCurvesFace/IntCurvesFace_ShapeIntersector.hxx
Normal file
@@ -0,0 +1,154 @@
|
||||
// Created on: 1998-01-27
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1998-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 _IntCurvesFace_ShapeIntersector_HeaderFile
|
||||
#define _IntCurvesFace_ShapeIntersector_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Address.hxx>
|
||||
#include <BRepTopAdaptor_SeqOfPtr.hxx>
|
||||
#include <TColStd_SequenceOfInteger.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <IntCurveSurface_TransitionOnCurve.hxx>
|
||||
#include <TopAbs_State.hxx>
|
||||
class TopoDS_Shape;
|
||||
class gp_Lin;
|
||||
class Adaptor3d_HCurve;
|
||||
class gp_Pnt;
|
||||
class TopoDS_Face;
|
||||
|
||||
|
||||
|
||||
class IntCurvesFace_ShapeIntersector
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurvesFace_ShapeIntersector();
|
||||
|
||||
Standard_EXPORT void Load (const TopoDS_Shape& Sh, const Standard_Real Tol);
|
||||
|
||||
//! Perform the intersection between the
|
||||
//! segment L and the loaded shape.
|
||||
//!
|
||||
//! PInf is the smallest parameter on the line
|
||||
//! PSup is the highest parammter on the line
|
||||
//!
|
||||
//! For an infinite line PInf and PSup can be
|
||||
//! +/- RealLast.
|
||||
Standard_EXPORT void Perform (const gp_Lin& L, const Standard_Real PInf, const Standard_Real PSup);
|
||||
|
||||
//! Perform the intersection between the
|
||||
//! segment L and the loaded shape.
|
||||
//!
|
||||
//! PInf is the smallest parameter on the line
|
||||
//! PSup is the highest parammter on the line
|
||||
//!
|
||||
//! For an infinite line PInf and PSup can be
|
||||
//! +/- RealLast.
|
||||
Standard_EXPORT void PerformNearest (const gp_Lin& L, const Standard_Real PInf, const Standard_Real PSup);
|
||||
|
||||
//! same method for a HCurve from Adaptor3d.
|
||||
//! PInf an PSup can also be - and + INF.
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& HCu, const Standard_Real PInf, const Standard_Real PSup);
|
||||
|
||||
//! True is returned when the intersection have been computed.
|
||||
Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_Integer NbPnt() const;
|
||||
|
||||
//! Returns the U parameter of the ith intersection point
|
||||
//! on the surface.
|
||||
Standard_Real UParameter (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the V parameter of the ith intersection point
|
||||
//! on the surface.
|
||||
Standard_Real VParameter (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the parameter of the ith intersection point
|
||||
//! on the line.
|
||||
Standard_Real WParameter (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the geometric point of the ith intersection
|
||||
//! between the line and the surface.
|
||||
const gp_Pnt& Pnt (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the ith transition of the line on the surface.
|
||||
IntCurveSurface_TransitionOnCurve Transition (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the ith state of the point on the face.
|
||||
//! The values can be either TopAbs_IN
|
||||
//! ( the point is in the face)
|
||||
//! or TopAbs_ON
|
||||
//! ( the point is on a boudary of the face).
|
||||
TopAbs_State State (const Standard_Integer I) const;
|
||||
|
||||
//! Returns the significant face used to determine
|
||||
//! the intersection.
|
||||
const TopoDS_Face& Face (const Standard_Integer I) const;
|
||||
|
||||
//! Internal method. Sort the result on the Curve
|
||||
//! parameter.
|
||||
Standard_EXPORT void SortResult();
|
||||
|
||||
Standard_EXPORT void Destroy();
|
||||
~IntCurvesFace_ShapeIntersector()
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
Standard_Integer nbfaces;
|
||||
Standard_Address PtrJetons;
|
||||
Standard_Address PtrJetonsIndex;
|
||||
BRepTopAdaptor_SeqOfPtr PtrIntersector;
|
||||
TColStd_SequenceOfInteger IndexPt;
|
||||
TColStd_SequenceOfInteger IndexFace;
|
||||
TColStd_SequenceOfInteger IndexIntPnt;
|
||||
TColStd_SequenceOfReal IndexPar;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <IntCurvesFace_ShapeIntersector.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurvesFace_ShapeIntersector_HeaderFile
|
Reference in New Issue
Block a user