mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
0024002: Overall code and build procedure refactoring -- automatic
Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl": - WOK-generated header files from inc and sources from drv are moved to src - CDL files removed - All packages are converted to nocdlpack
This commit is contained in:
@@ -1,2 +1,45 @@
|
||||
IntCurveSurface_HCurveTool.gxx
|
||||
IntCurveSurface_HCurveTool.lxx
|
||||
IntCurveSurface_HInter.hxx
|
||||
IntCurveSurface_HInter_0.cxx
|
||||
IntCurveSurface_Inter.gxx
|
||||
IntCurveSurface_Intersection.cxx
|
||||
IntCurveSurface_Intersection.hxx
|
||||
IntCurveSurface_IntersectionPoint.cxx
|
||||
IntCurveSurface_IntersectionPoint.hxx
|
||||
IntCurveSurface_IntersectionPoint.lxx
|
||||
IntCurveSurface_IntersectionSegment.cxx
|
||||
IntCurveSurface_IntersectionSegment.hxx
|
||||
IntCurveSurface_Polygon.gxx
|
||||
IntCurveSurface_Polygon.lxx
|
||||
IntCurveSurface_PolygonTool.gxx
|
||||
IntCurveSurface_PolygonTool.lxx
|
||||
IntCurveSurface_Polyhedron.gxx
|
||||
IntCurveSurface_Polyhedron.lxx
|
||||
IntCurveSurface_PolyhedronTool.gxx
|
||||
IntCurveSurface_PolyhedronTool.lxx
|
||||
IntCurveSurface_QuadricCurveExactInter.gxx
|
||||
IntCurveSurface_QuadricCurveFunc.gxx
|
||||
IntCurveSurface_SequenceOfPnt.hxx
|
||||
IntCurveSurface_SequenceOfSeg.hxx
|
||||
IntCurveSurface_TheCSFunctionOfHInter.hxx
|
||||
IntCurveSurface_TheCSFunctionOfHInter_0.cxx
|
||||
IntCurveSurface_TheExactHInter.hxx
|
||||
IntCurveSurface_TheExactHInter_0.cxx
|
||||
IntCurveSurface_TheHCurveTool.hxx
|
||||
IntCurveSurface_TheHCurveTool_0.cxx
|
||||
IntCurveSurface_TheInterferenceOfHInter.hxx
|
||||
IntCurveSurface_TheInterferenceOfHInter_0.cxx
|
||||
IntCurveSurface_ThePolygonOfHInter.hxx
|
||||
IntCurveSurface_ThePolygonOfHInter_0.cxx
|
||||
IntCurveSurface_ThePolygonToolOfHInter.hxx
|
||||
IntCurveSurface_ThePolygonToolOfHInter_0.cxx
|
||||
IntCurveSurface_ThePolyhedronOfHInter.hxx
|
||||
IntCurveSurface_ThePolyhedronOfHInter_0.cxx
|
||||
IntCurveSurface_ThePolyhedronToolOfHInter.hxx
|
||||
IntCurveSurface_ThePolyhedronToolOfHInter_0.cxx
|
||||
IntCurveSurface_TheQuadCurvExactHInter.hxx
|
||||
IntCurveSurface_TheQuadCurvExactHInter_0.cxx
|
||||
IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx
|
||||
IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter_0.cxx
|
||||
IntCurveSurface_TransitionOnCurve.hxx
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
-- Created on: 1993-04-07
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
package IntCurveSurface
|
||||
|
||||
---Purpose: This package provides algorithmes to intersect a Curve
|
||||
-- and a Surface.
|
||||
-- Level: Internal
|
||||
--
|
||||
-- All the methods of the classes of this package are Internal.
|
||||
-- except the methods of the classes <Intersection,
|
||||
-- IntersectionPoint,
|
||||
-- IntersectionSegment>
|
||||
--
|
||||
|
||||
|
||||
uses Standard, TCollection, TColStd, TColgp, gp,
|
||||
Bnd, Intf, IntAna,
|
||||
IntImp, IntSurf,
|
||||
GeomAbs, StdFail ,
|
||||
Adaptor3d, Geom,
|
||||
math
|
||||
|
||||
is
|
||||
|
||||
--------------------------------------------------
|
||||
enumeration TransitionOnCurve is
|
||||
Tangent,In,Out;
|
||||
---Purpose:
|
||||
--
|
||||
--
|
||||
--
|
||||
-- \ Uo ^ \ U1 ^
|
||||
-- \ | n \ | n
|
||||
-- Surf ====\======|=== ====\======|===
|
||||
-- \ . \ .
|
||||
-- \ . \ .
|
||||
-- U1 \ . Uo \ .
|
||||
--
|
||||
--
|
||||
-- ( In ) ( Out )
|
||||
--
|
||||
--
|
||||
--
|
||||
-- \ /
|
||||
-- \ /
|
||||
-- \ /
|
||||
-- \ /
|
||||
-- Surf =====-----=====
|
||||
--
|
||||
-- ( Tangent )
|
||||
-- Crb and Surf are C1
|
||||
--------------------------------------------------
|
||||
deferred class Intersection;
|
||||
--------------------------------------------------
|
||||
class IntersectionPoint;
|
||||
--------------------------------------------------
|
||||
class IntersectionSegment;
|
||||
--------------------------------------------------
|
||||
imported SequenceOfPnt;
|
||||
--------------------------------------------------
|
||||
imported SequenceOfSeg;
|
||||
--------------------------------------------------
|
||||
generic class HCurveTool;
|
||||
--------------------------------------------------
|
||||
generic class Polygon;
|
||||
--------------------------------------------------
|
||||
generic class Polyhedron;
|
||||
--------------------------------------------------
|
||||
generic class PolygonTool;
|
||||
--------------------------------------------------
|
||||
generic class PolyhedronTool;
|
||||
--------------------------------------------------
|
||||
generic class QuadricCurveFunc;
|
||||
--------------------------------------------------
|
||||
generic class QuadricCurveExactInter,
|
||||
TheQuadCurvFunc;
|
||||
--------------------------------------------------
|
||||
generic class Inter,
|
||||
ThePolygon,
|
||||
ThePolygonTool,
|
||||
ThePolyhedron,
|
||||
ThePolyhedronTool,
|
||||
TheInterference,
|
||||
TheCSFunction,
|
||||
TheExactInter,
|
||||
TheQuadCurvExactInter;
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
--class HCurveTool instantiates
|
||||
-- CurveTool from IntCurveSurface
|
||||
-- (HCurve from Adaptor3d);
|
||||
|
||||
--class HInter instantiates
|
||||
-- Inter from IntCurveSurface (
|
||||
-- HCurve from Adaptor3d,
|
||||
-- HCurveTool from IntCurveSurface,
|
||||
-- HSurface from Adaptor3d,
|
||||
-- HSurfaceTool from IntCurveSurface);
|
||||
|
||||
|
||||
class TheHCurveTool instantiates
|
||||
HCurveTool from IntCurveSurface (
|
||||
HCurve from Adaptor3d);
|
||||
|
||||
class HInter instantiates
|
||||
Inter from IntCurveSurface (
|
||||
HCurve from Adaptor3d,
|
||||
TheHCurveTool from IntCurveSurface,
|
||||
HSurface from Adaptor3d,
|
||||
HSurfaceTool from Adaptor3d);
|
||||
|
||||
end IntCurveSurface;
|
||||
@@ -1,236 +0,0 @@
|
||||
-- Created on: 1995-07-17
|
||||
-- Created by: Modelistation
|
||||
-- Copyright (c) 1995-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
generic class HCurveTool from IntCurveSurface (CurveGen as any)
|
||||
|
||||
uses
|
||||
Array1OfReal from TColStd,
|
||||
HArray1OfReal from TColStd,
|
||||
Shape from GeomAbs,
|
||||
CurveType from GeomAbs,
|
||||
Vec from gp,
|
||||
Pnt from gp,
|
||||
Circ from gp,
|
||||
Elips from gp,
|
||||
Hypr from gp,
|
||||
Parab from gp,
|
||||
Lin from gp,
|
||||
BezierCurve from Geom,
|
||||
BSplineCurve from Geom
|
||||
|
||||
raises
|
||||
|
||||
OutOfRange from Standard,
|
||||
NoSuchObject from Standard,
|
||||
DomainError from Standard
|
||||
|
||||
is
|
||||
|
||||
--
|
||||
-- Global methods - Apply to the whole curve.
|
||||
--
|
||||
|
||||
FirstParameter(myclass; C: CurveGen) returns Real
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
|
||||
LastParameter(myclass; C: CurveGen) returns Real
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
--
|
||||
-- Services to break the curves to the expected continuity
|
||||
--
|
||||
-- If for example you need the curve to be C2 and the method
|
||||
-- Continuity returns you something lower than C2 (say C1 for
|
||||
-- example).
|
||||
--
|
||||
-- First compute the number of intervals with the requested
|
||||
-- continuity with the method NbIntervals(). Note that if the
|
||||
-- continuity is higher than the one you need NbIntervals will
|
||||
-- return 1.
|
||||
--
|
||||
-- Then you get the parameters bounding the intervals with the
|
||||
-- method Intervals, using an array of length at least
|
||||
-- NbIntervals()+1.
|
||||
--
|
||||
-- If you need to create a curve with a restricted span you can
|
||||
-- use the method Trim().
|
||||
|
||||
|
||||
Continuity(myclass; C: CurveGen) returns Shape from GeomAbs
|
||||
---Purpose:
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
NbIntervals(myclass; C: CurveGen; S : Shape from GeomAbs) returns Integer
|
||||
---Purpose: Returns the number of intervals for continuity
|
||||
-- <S>. May be one if Continuity(myclass) >= <S>
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Intervals(myclass; C: CurveGen; T : in out Array1OfReal from TColStd;
|
||||
S : Shape from GeomAbs)
|
||||
---Purpose: Stores in <T> the parameters bounding the intervals
|
||||
-- of continuity <S>.
|
||||
--
|
||||
-- The array must provide enough room to accomodate
|
||||
-- for the parameters. i.e. T.Length() > NbIntervals()
|
||||
raises
|
||||
OutOfRange from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
IsClosed(myclass; C: CurveGen) returns Boolean
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
IsPeriodic(myclass; C: CurveGen) returns Boolean
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Period(myclass; C: CurveGen) returns Real
|
||||
raises
|
||||
DomainError from Standard -- if the curve is not periodic
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Value(myclass; C: CurveGen; U : Real) returns Pnt from gp
|
||||
--- Purpose : Computes the point of parameter U on the curve.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D0 (myclass; C: CurveGen; U : Real; P : out Pnt from gp)
|
||||
--- Purpose : Computes the point of parameter U on the curve.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D1 (myclass; C: CurveGen; U : Real; P : out Pnt from gp ; V : out Vec from gp)
|
||||
--- Purpose : Computes the point of parameter U on the curve with its
|
||||
-- first derivative.
|
||||
raises
|
||||
DomainError from Standard
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not C1.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D2 (myclass; C: CurveGen; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp)
|
||||
--- Purpose :
|
||||
-- Returns the point P of parameter U, the first and second
|
||||
-- derivatives V1 and V2.
|
||||
raises
|
||||
DomainError from Standard
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not C2.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
D3 (myclass; C: CurveGen; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp)
|
||||
--- Purpose :
|
||||
-- Returns the point P of parameter U, the first, the second
|
||||
-- and the third derivative.
|
||||
raises
|
||||
DomainError from Standard
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not C3.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
DN (myclass; C: CurveGen; U : Real; N : Integer) returns Vec from gp
|
||||
--- Purpose :
|
||||
-- The returned vector gives the value of the derivative for the
|
||||
-- order of derivation N.
|
||||
raises
|
||||
DomainError from Standard,
|
||||
--- Purpose : Raised if the continuity of the current interval
|
||||
-- is not CN.
|
||||
OutOfRange from Standard
|
||||
--- Purpose : Raised if N < 1.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Resolution(myclass; C: CurveGen; R3d : Real) returns Real
|
||||
---Purpose : Returns the parametric resolution corresponding
|
||||
-- to the real space resolution <R3d>.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
GetType(myclass; C: CurveGen) returns CurveType from GeomAbs
|
||||
---Purpose: Returns the type of the curve in the current
|
||||
-- interval : Line, Circle, Ellipse, Hyperbola,
|
||||
-- Parabola, BezierCurve, BSplineCurve, OtherCurve.
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
--
|
||||
-- The following methods must be called when GetType returned
|
||||
-- the corresponding type.
|
||||
--
|
||||
|
||||
Line(myclass; C: CurveGen) returns Lin from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Circle(myclass; C: CurveGen) returns Circ from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Ellipse(myclass; C: CurveGen) returns Elips from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Hyperbola(myclass; C: CurveGen) returns Hypr from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Parabola(myclass; C: CurveGen) returns Parab from gp
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
Bezier(myclass; C: CurveGen) returns BezierCurve from Geom
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
BSpline(myclass; C: CurveGen) returns BSplineCurve from Geom
|
||||
raises
|
||||
NoSuchObject from Standard
|
||||
---C++: inline
|
||||
;
|
||||
|
||||
NbSamples(myclass; C: CurveGen; U0,U1: Real from Standard)
|
||||
returns Integer from Standard;
|
||||
|
||||
SamplePars(myclass; C: CurveGen; U0,U1: Real from Standard;
|
||||
Defl: Real from Standard; NbMin: Integer from Standard;
|
||||
Pars: in out HArray1OfReal from TColStd);
|
||||
|
||||
end HCurveTool;
|
||||
|
||||
|
||||
124
src/IntCurveSurface/IntCurveSurface_HInter.hxx
Normal file
124
src/IntCurveSurface/IntCurveSurface_HInter.hxx
Normal file
@@ -0,0 +1,124 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_HInter_HeaderFile
|
||||
#define _IntCurveSurface_HInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <IntCurveSurface_Intersection.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <TColgp_Array2OfPnt.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
class Adaptor3d_HCurve;
|
||||
class IntCurveSurface_TheHCurveTool;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class IntCurveSurface_ThePolygonOfHInter;
|
||||
class IntCurveSurface_ThePolygonToolOfHInter;
|
||||
class IntCurveSurface_ThePolyhedronOfHInter;
|
||||
class IntCurveSurface_ThePolyhedronToolOfHInter;
|
||||
class IntCurveSurface_TheInterferenceOfHInter;
|
||||
class IntCurveSurface_TheCSFunctionOfHInter;
|
||||
class IntCurveSurface_TheExactHInter;
|
||||
class IntCurveSurface_TheQuadCurvExactHInter;
|
||||
class IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter;
|
||||
class Bnd_BoundSortBox;
|
||||
class gp_Lin;
|
||||
class gp_Circ;
|
||||
class gp_Elips;
|
||||
class gp_Parab;
|
||||
class gp_Hypr;
|
||||
class IntAna_IntConicQuad;
|
||||
class Bnd_Box;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_HInter : public IntCurveSurface_Intersection
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurveSurface_HInter();
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface);
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_HSurface)& Surface);
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& ThePolygon, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron);
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& ThePolygon, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron, Bnd_BoundSortBox& BndBSB);
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Perform (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U0, const Standard_Real V0, const Standard_Real U1, const Standard_Real V1);
|
||||
|
||||
Standard_EXPORT void InternalPerformCurveQuadric (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface);
|
||||
|
||||
Standard_EXPORT void InternalPerform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT void InternalPerform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_HSurface)& Surface, const IntCurveSurface_ThePolyhedronOfHInter& Polyhedron, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2, Bnd_BoundSortBox& BSB);
|
||||
|
||||
Standard_EXPORT void InternalPerform (const Handle(Adaptor3d_HCurve)& Curve, const IntCurveSurface_ThePolygonOfHInter& Polygon, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT void PerformConicSurf (const gp_Lin& Line, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT void PerformConicSurf (const gp_Circ& Circle, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT void PerformConicSurf (const gp_Elips& Ellipse, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT void PerformConicSurf (const gp_Parab& Parab, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT void PerformConicSurf (const gp_Hypr& Hyper, const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT void AppendIntAna (const Handle(Adaptor3d_HCurve)& Curve, const Handle(Adaptor3d_HSurface)& Surface, const IntAna_IntConicQuad& InterAna);
|
||||
|
||||
Standard_EXPORT void AppendPoint (const Handle(Adaptor3d_HCurve)& Curve, const Standard_Real w, const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real u, const Standard_Real v);
|
||||
|
||||
Standard_EXPORT void AppendSegment (const Handle(Adaptor3d_HCurve)& Curve, const Standard_Real u0, const Standard_Real u1, const Handle(Adaptor3d_HSurface)& Surface);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void DoSurface (const Handle(Adaptor3d_HSurface)& surface, const Standard_Real u0, const Standard_Real u1, const Standard_Real v0, const Standard_Real v1, TColgp_Array2OfPnt& pntsOnSurface, Bnd_Box& boxSurface, Standard_Real& gap);
|
||||
|
||||
Standard_EXPORT void DoNewBounds (const Handle(Adaptor3d_HSurface)& surface, const Standard_Real u0, const Standard_Real u1, const Standard_Real v0, const Standard_Real v1, const TColgp_Array2OfPnt& pntsOnSurface, const TColStd_Array1OfReal& X, const TColStd_Array1OfReal& Y, const TColStd_Array1OfReal& Z, TColStd_Array1OfReal& Bounds);
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_HInter_HeaderFile
|
||||
73
src/IntCurveSurface/IntCurveSurface_HInter_0.cxx
Normal file
73
src/IntCurveSurface/IntCurveSurface_HInter_0.cxx
Normal file
@@ -0,0 +1,73 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_HInter.hxx>
|
||||
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolygonToolOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
#include <IntCurveSurface_TheInterferenceOfHInter.hxx>
|
||||
#include <IntCurveSurface_TheCSFunctionOfHInter.hxx>
|
||||
#include <IntCurveSurface_TheExactHInter.hxx>
|
||||
#include <IntCurveSurface_TheQuadCurvExactHInter.hxx>
|
||||
#include <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
|
||||
#include <Bnd_BoundSortBox.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Elips.hxx>
|
||||
#include <gp_Parab.hxx>
|
||||
#include <gp_Hypr.hxx>
|
||||
#include <IntAna_IntConicQuad.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
|
||||
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheCurveTool IntCurveSurface_TheHCurveTool
|
||||
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#define TheSurface Handle(Adaptor3d_HSurface)
|
||||
#define TheSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define TheSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define TheSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define IntCurveSurface_ThePolygon IntCurveSurface_ThePolygonOfHInter
|
||||
#define IntCurveSurface_ThePolygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#define IntCurveSurface_ThePolygonTool IntCurveSurface_ThePolygonToolOfHInter
|
||||
#define IntCurveSurface_ThePolygonTool_hxx <IntCurveSurface_ThePolygonToolOfHInter.hxx>
|
||||
#define IntCurveSurface_ThePolyhedron IntCurveSurface_ThePolyhedronOfHInter
|
||||
#define IntCurveSurface_ThePolyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#define IntCurveSurface_ThePolyhedronTool IntCurveSurface_ThePolyhedronToolOfHInter
|
||||
#define IntCurveSurface_ThePolyhedronTool_hxx <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
#define IntCurveSurface_TheInterference IntCurveSurface_TheInterferenceOfHInter
|
||||
#define IntCurveSurface_TheInterference_hxx <IntCurveSurface_TheInterferenceOfHInter.hxx>
|
||||
#define IntCurveSurface_TheCSFunction IntCurveSurface_TheCSFunctionOfHInter
|
||||
#define IntCurveSurface_TheCSFunction_hxx <IntCurveSurface_TheCSFunctionOfHInter.hxx>
|
||||
#define IntCurveSurface_TheExactInter IntCurveSurface_TheExactHInter
|
||||
#define IntCurveSurface_TheExactInter_hxx <IntCurveSurface_TheExactHInter.hxx>
|
||||
#define IntCurveSurface_TheQuadCurvExactInter IntCurveSurface_TheQuadCurvExactHInter
|
||||
#define IntCurveSurface_TheQuadCurvExactInter_hxx <IntCurveSurface_TheQuadCurvExactHInter.hxx>
|
||||
#define IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactInter IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter
|
||||
#define IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactInter_hxx <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
|
||||
#define IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactInter IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter
|
||||
#define IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactInter_hxx <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
|
||||
#define IntCurveSurface_Inter IntCurveSurface_HInter
|
||||
#define IntCurveSurface_Inter_hxx <IntCurveSurface_HInter.hxx>
|
||||
#include <IntCurveSurface_Inter.gxx>
|
||||
|
||||
@@ -1,290 +0,0 @@
|
||||
-- Created on: 1993-04-07
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
generic class Inter from IntCurveSurface (
|
||||
TheCurve as any;
|
||||
TheCurveTool as any;
|
||||
TheSurface as any;
|
||||
TheSurfaceTool as any)
|
||||
|
||||
inherits Intersection from IntCurveSurface
|
||||
|
||||
---Purpose: This class provides the intersections between a
|
||||
-- surface S(u,v) and a curve C(w) on their natural
|
||||
-- domains (S: (uo,vo)->(u1,v1)) and (C: wo->w1).
|
||||
--
|
||||
-- The class <Intersection from IntCurveSurface>
|
||||
-- describes the methods which are used to read
|
||||
-- the results.
|
||||
|
||||
uses
|
||||
Box from Bnd,
|
||||
Lin from gp,
|
||||
Elips from gp,
|
||||
Circ from gp,
|
||||
Parab from gp,
|
||||
Hypr from gp,
|
||||
IntConicQuad from IntAna,
|
||||
IntersectionPoint from IntCurveSurface,
|
||||
IntersectionSegment from IntCurveSurface,
|
||||
SurfaceType from GeomAbs,
|
||||
--modified by NIZHNY-MKK Tue Jul 26 14:31:08 2005
|
||||
Array2OfPnt from TColgp,
|
||||
Array1OfReal from TColStd,
|
||||
BoundSortBox from Bnd
|
||||
|
||||
------------------------------------------------------------
|
||||
class ThePolygon instantiates
|
||||
Polygon from IntCurveSurface (
|
||||
TheCurve,
|
||||
TheCurveTool);
|
||||
------------------------------------------------------------
|
||||
class ThePolygonTool instantiates
|
||||
PolygonTool from IntCurveSurface (
|
||||
Pnt from gp,
|
||||
ThePolygon,
|
||||
Box from Bnd);
|
||||
------------------------------------------------------------
|
||||
class ThePolyhedron instantiates
|
||||
Polyhedron from IntCurveSurface (
|
||||
TheSurface,
|
||||
TheSurfaceTool);
|
||||
------------------------------------------------------------
|
||||
class ThePolyhedronTool instantiates
|
||||
PolyhedronTool from IntCurveSurface (
|
||||
ThePolyhedron);
|
||||
------------------------------------------------------------
|
||||
class TheInterference instantiates
|
||||
InterferencePolygonPolyhedron from Intf (
|
||||
ThePolygon,
|
||||
ThePolygonTool,
|
||||
ThePolyhedron,
|
||||
ThePolyhedronTool);
|
||||
------------------------------------------------------------
|
||||
-- find a root (u,v,w) from a starting point (u0,v0,w0) of the problem :
|
||||
-- XS(u,v) = XC(w)
|
||||
-- YS(u,v) = YC(w)
|
||||
-- ZS(u,v) = ZC(w)
|
||||
-- where (XS,YS,ZS) is the point of parameters (u,v) on the
|
||||
-- biparametric surface and (XC,YC,ZC) the point of parameter w on
|
||||
-- the parametric curve.
|
||||
--
|
||||
class TheCSFunction instantiates
|
||||
ZerCSParFunc from IntImp (
|
||||
TheSurface,
|
||||
TheSurfaceTool,
|
||||
TheCurve,
|
||||
TheCurveTool);
|
||||
|
||||
class TheExactInter instantiates
|
||||
IntCS from IntImp (
|
||||
TheSurface,
|
||||
TheSurfaceTool,
|
||||
TheCurve,
|
||||
TheCurveTool,
|
||||
TheCSFunction);
|
||||
------------------------------------------------------------
|
||||
-- find a root (u,v,w) from a starting point (w0) of the problem :
|
||||
-- Q(X(w),Y(w),Z(w)) = 0
|
||||
--
|
||||
-- where Q(X,Y,Z) = 0 is the implicit expression of a quadric
|
||||
-- and (X(w),Y(w),Z(w)) the point of parameter w on a parametric
|
||||
-- curve.
|
||||
--
|
||||
class TheQuadCurvExactInter instantiates
|
||||
QuadricCurveExactInter from IntCurveSurface(
|
||||
TheSurface,
|
||||
TheSurfaceTool,
|
||||
TheCurve,
|
||||
TheCurveTool);
|
||||
--------------------------------------------------------------
|
||||
|
||||
is
|
||||
|
||||
Create
|
||||
---Purpose: Empty Constructor
|
||||
returns Inter from IntCurveSurface;
|
||||
|
||||
Perform(me : in out;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface)
|
||||
---Purpose: Compute the Intersection between the curve and the
|
||||
-- surface
|
||||
is static;
|
||||
|
||||
|
||||
Perform(me : in out;
|
||||
Curve : TheCurve;
|
||||
Polygon : ThePolygon;
|
||||
Surface : TheSurface)
|
||||
---Purpose: Compute the Intersection between the curve and
|
||||
-- the surface. The Curve is already sampled and
|
||||
-- its polygon : <Polygon> is given.
|
||||
is static;
|
||||
|
||||
Perform(me : in out;
|
||||
Curve : TheCurve;
|
||||
ThePolygon: ThePolygon;
|
||||
Surface : TheSurface;
|
||||
Polyhedron: ThePolyhedron)
|
||||
---Purpose: Compute the Intersection between the curve and
|
||||
-- the surface. The Curve is already sampled and
|
||||
-- its polygon : <Polygon> is given. The Surface is
|
||||
-- also sampled and <Polyhedron> is given.
|
||||
is static;
|
||||
|
||||
Perform(me : in out;
|
||||
Curve : TheCurve;
|
||||
ThePolygon: ThePolygon;
|
||||
Surface : TheSurface;
|
||||
Polyhedron: ThePolyhedron;
|
||||
BndBSB : in out BoundSortBox from Bnd)
|
||||
---Purpose: Compute the Intersection between the curve and
|
||||
-- the surface. The Curve is already sampled and
|
||||
-- its polygon : <Polygon> is given. The Surface is
|
||||
-- also sampled and <Polyhedron> is given.
|
||||
is static;
|
||||
|
||||
Perform(me : in out;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface;
|
||||
Polyhedron: ThePolyhedron)
|
||||
---Purpose: Compute the Intersection between the curve and
|
||||
-- the surface. The Surface is already sampled and
|
||||
-- its polyhedron : <Polyhedron> is given.
|
||||
is static;
|
||||
|
||||
|
||||
------------------------------------------------------------
|
||||
------ Implementation functions :
|
||||
------------------------------------------------------------
|
||||
|
||||
Perform(me : in out;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface;
|
||||
U0,V0,U1,V1: Real from Standard)
|
||||
---Purpose: Compute the Intersection between the curve and the
|
||||
-- surface
|
||||
is static protected;
|
||||
|
||||
InternalPerformCurveQuadric(me : in out;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface)
|
||||
is static protected;
|
||||
|
||||
InternalPerform(me : in out;
|
||||
Curve : TheCurve;
|
||||
Polygon : ThePolygon;
|
||||
Surface : TheSurface;
|
||||
Polyhedron : ThePolyhedron;
|
||||
U1,V1,U2,V2 : Real from Standard)
|
||||
is static protected;
|
||||
|
||||
InternalPerform(me : in out;
|
||||
Curve : TheCurve;
|
||||
Polygon : ThePolygon;
|
||||
Surface : TheSurface;
|
||||
Polyhedron : ThePolyhedron;
|
||||
U1,V1,U2,V2 : Real from Standard;
|
||||
BSB : in out BoundSortBox from Bnd)
|
||||
is static protected;
|
||||
|
||||
InternalPerform(me : in out;
|
||||
Curve : TheCurve;
|
||||
Polygon : ThePolygon;
|
||||
Surface : TheSurface;
|
||||
U1,V1,U2,V2 : Real from Standard)
|
||||
is static protected;
|
||||
|
||||
PerformConicSurf(me : in out;
|
||||
Line : Lin from gp;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface;
|
||||
U1,V1,U2,V2 : Real from Standard)
|
||||
is static protected;
|
||||
|
||||
PerformConicSurf(me : in out;
|
||||
Circle : Circ from gp;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface;
|
||||
U1,V1,U2,V2 : Real from Standard)
|
||||
is static protected;
|
||||
|
||||
PerformConicSurf(me : in out;
|
||||
Ellipse : Elips from gp;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface;
|
||||
U1,V1,U2,V2 : Real from Standard)
|
||||
is static protected;
|
||||
|
||||
PerformConicSurf(me : in out;
|
||||
Parab : Parab from gp;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface;
|
||||
U1,V1,U2,V2 : Real from Standard)
|
||||
is static protected;
|
||||
|
||||
PerformConicSurf(me : in out;
|
||||
Hyper : Hypr from gp;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface;
|
||||
U1,V1,U2,V2 : Real from Standard)
|
||||
is static protected;
|
||||
|
||||
AppendIntAna(me : in out;
|
||||
Curve : TheCurve;
|
||||
Surface : TheSurface;
|
||||
InterAna : IntConicQuad from IntAna)
|
||||
is static protected;
|
||||
|
||||
AppendPoint(me : in out;
|
||||
Curve : TheCurve;
|
||||
w : Real from Standard;
|
||||
Surface : TheSurface;
|
||||
u,v : Real from Standard)
|
||||
is static protected;
|
||||
|
||||
AppendSegment(me : in out;
|
||||
Curve : TheCurve;
|
||||
u0,u1 : Real from Standard;
|
||||
Surface : TheSurface)
|
||||
is static protected;
|
||||
|
||||
--modified by NIZHNY-MKK Tue Jul 26 14:31:11 2005.BEGIN
|
||||
|
||||
DoSurface(me : in out;
|
||||
surface : TheSurface;
|
||||
u0,u1,v0,v1 : Real from Standard;
|
||||
pntsOnSurface: in out Array2OfPnt from TColgp;
|
||||
boxSurface : in out Box from Bnd;
|
||||
gap : in out Real from Standard)
|
||||
is private;
|
||||
|
||||
DoNewBounds(me : in out;
|
||||
surface : TheSurface;
|
||||
u0,u1,v0,v1 : Real from Standard;
|
||||
pntsOnSurface: Array2OfPnt from TColgp;
|
||||
X,Y,Z : Array1OfReal from TColStd;
|
||||
Bounds : in out Array1OfReal from TColStd)
|
||||
is private;
|
||||
--modified by NIZHNY-MKK Tue Jul 26 14:40:22 2005.END
|
||||
|
||||
end Inter;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
-- Created on: 1993-04-07
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
deferred class Intersection from IntCurveSurface
|
||||
|
||||
---Level: Public
|
||||
|
||||
uses
|
||||
IntersectionPoint from IntCurveSurface,
|
||||
IntersectionSegment from IntCurveSurface,
|
||||
SequenceOfPnt from IntCurveSurface,
|
||||
SequenceOfSeg from IntCurveSurface
|
||||
|
||||
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
|
||||
|
||||
is
|
||||
|
||||
Initialize
|
||||
---Purpose: Empty Constructor;
|
||||
is protected;
|
||||
|
||||
IsDone(me)
|
||||
---Purpose: returns the <done> field.
|
||||
returns Boolean from Standard is static;
|
||||
|
||||
NbPoints(me)
|
||||
---Purpose: returns the number of IntersectionPoint
|
||||
-- if IsDone returns True.
|
||||
-- else NotDone is raised.
|
||||
returns Integer from Standard
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
Point(me; Index: Integer from Standard)
|
||||
---Purpose: returns the IntersectionPoint of range <Index>
|
||||
-- raises NotDone if the computation has failed or if
|
||||
-- the computation has not been done
|
||||
-- raises OutOfRange if Index is not in the range <1..NbPoints>
|
||||
---C++: return const &
|
||||
returns IntersectionPoint from IntCurveSurface
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
NbSegments(me)
|
||||
---Purpose: returns the number of IntersectionSegment
|
||||
-- if IsDone returns True.
|
||||
-- else NotDone is raised.
|
||||
returns Integer from Standard
|
||||
raises NotDone from StdFail
|
||||
is static;
|
||||
|
||||
Segment(me; Index: Integer from Standard)
|
||||
---Purpose: returns the IntersectionSegment of range <Index>
|
||||
-- raises NotDone if the computation has failed or if
|
||||
-- the computation has not been done
|
||||
-- raises OutOfRange if Index is not in the range <1..NbSegment>
|
||||
---C++: return const &
|
||||
returns IntersectionSegment from IntCurveSurface
|
||||
raises NotDone from StdFail,
|
||||
OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
SetValues(me:in out; Inter: Intersection from IntCurveSurface)
|
||||
---Purpose: Internal method
|
||||
-- copy the <Inter> fields to <me>
|
||||
is static protected;
|
||||
|
||||
Append(me:in out; Inter: Intersection from IntCurveSurface;
|
||||
FirstParamOnCurve: Real from Standard;
|
||||
LastParamOnCurve : Real from Standard)
|
||||
---Purpose: Internal method
|
||||
-- Append the IntersectionPoints and
|
||||
-- IntersectionSegments of <Inter> to <me>.
|
||||
is static protected;
|
||||
|
||||
Append(me:in out; Pt: IntersectionPoint from IntCurveSurface)
|
||||
---Purpose: Internal method
|
||||
-- Append the IntersectionPoints of <Inter> to <me>
|
||||
is static protected;
|
||||
|
||||
Append(me:in out; Seg: IntersectionSegment from IntCurveSurface)
|
||||
---Purpose: Internal method
|
||||
-- Append the IntersectionPoints of <Inter> to <me>
|
||||
is static protected;
|
||||
|
||||
ResetFields(me:in out)
|
||||
---Purpose: Internal method
|
||||
-- Reset all the fields of <me>
|
||||
-- Clear the sequences of IntersectionPoints and Segments
|
||||
-- Set the field <done> to Standard_False.
|
||||
is static protected;
|
||||
|
||||
Dump(me)
|
||||
---Purpose: Dump all the fields.
|
||||
is static;
|
||||
|
||||
|
||||
fields
|
||||
done : Boolean from Standard is protected;
|
||||
lpnt : SequenceOfPnt from IntCurveSurface;
|
||||
lseg : SequenceOfSeg from IntCurveSurface;
|
||||
end Intersection;
|
||||
|
||||
@@ -14,11 +14,13 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_Intersection.ixx>
|
||||
|
||||
#include <IntCurveSurface_Intersection.hxx>
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
#include <IntCurveSurface_IntersectionSegment.hxx>
|
||||
#include <IntCurveSurface_TransitionOnCurve.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
#define PARAMEQUAL(a,b) (Abs((a)-(b))< (1e-8))
|
||||
|
||||
|
||||
123
src/IntCurveSurface/IntCurveSurface_Intersection.hxx
Normal file
123
src/IntCurveSurface/IntCurveSurface_Intersection.hxx
Normal file
@@ -0,0 +1,123 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_Intersection_HeaderFile
|
||||
#define _IntCurveSurface_Intersection_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <IntCurveSurface_SequenceOfPnt.hxx>
|
||||
#include <IntCurveSurface_SequenceOfSeg.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_OutOfRange;
|
||||
class IntCurveSurface_IntersectionPoint;
|
||||
class IntCurveSurface_IntersectionSegment;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_Intersection
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! returns the <done> field.
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
//! returns the number of IntersectionPoint
|
||||
//! if IsDone returns True.
|
||||
//! else NotDone is raised.
|
||||
Standard_EXPORT Standard_Integer NbPoints() const;
|
||||
|
||||
//! returns the IntersectionPoint of range <Index>
|
||||
//! raises NotDone if the computation has failed or if
|
||||
//! the computation has not been done
|
||||
//! raises OutOfRange if Index is not in the range <1..NbPoints>
|
||||
Standard_EXPORT const IntCurveSurface_IntersectionPoint& Point (const Standard_Integer Index) const;
|
||||
|
||||
//! returns the number of IntersectionSegment
|
||||
//! if IsDone returns True.
|
||||
//! else NotDone is raised.
|
||||
Standard_EXPORT Standard_Integer NbSegments() const;
|
||||
|
||||
//! returns the IntersectionSegment of range <Index>
|
||||
//! raises NotDone if the computation has failed or if
|
||||
//! the computation has not been done
|
||||
//! raises OutOfRange if Index is not in the range <1..NbSegment>
|
||||
Standard_EXPORT const IntCurveSurface_IntersectionSegment& Segment (const Standard_Integer Index) const;
|
||||
|
||||
//! Dump all the fields.
|
||||
Standard_EXPORT void Dump() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
//! Empty Constructor;
|
||||
Standard_EXPORT IntCurveSurface_Intersection();
|
||||
|
||||
//! Internal method
|
||||
//! copy the <Inter> fields to <me>
|
||||
Standard_EXPORT void SetValues (const IntCurveSurface_Intersection& Inter);
|
||||
|
||||
//! Internal method
|
||||
//! Append the IntersectionPoints and
|
||||
//! IntersectionSegments of <Inter> to <me>.
|
||||
Standard_EXPORT void Append (const IntCurveSurface_Intersection& Inter, const Standard_Real FirstParamOnCurve, const Standard_Real LastParamOnCurve);
|
||||
|
||||
//! Internal method
|
||||
//! Append the IntersectionPoints of <Inter> to <me>
|
||||
Standard_EXPORT void Append (const IntCurveSurface_IntersectionPoint& Pt);
|
||||
|
||||
//! Internal method
|
||||
//! Append the IntersectionPoints of <Inter> to <me>
|
||||
Standard_EXPORT void Append (const IntCurveSurface_IntersectionSegment& Seg);
|
||||
|
||||
//! Internal method
|
||||
//! Reset all the fields of <me>
|
||||
//! Clear the sequences of IntersectionPoints and Segments
|
||||
//! Set the field <done> to Standard_False.
|
||||
Standard_EXPORT void ResetFields();
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
IntCurveSurface_SequenceOfPnt lpnt;
|
||||
IntCurveSurface_SequenceOfSeg lseg;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_Intersection_HeaderFile
|
||||
@@ -1,106 +0,0 @@
|
||||
-- Created on: 1993-04-07
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class IntersectionPoint from IntCurveSurface
|
||||
|
||||
---Purpose: Definition of an interserction point between a
|
||||
-- curve and a surface.
|
||||
|
||||
---Level: Public
|
||||
|
||||
|
||||
uses
|
||||
Pnt from gp,
|
||||
TransitionOnCurve from IntCurveSurface
|
||||
|
||||
is
|
||||
|
||||
Create
|
||||
---Purpose: Empty Constructor.
|
||||
returns IntersectionPoint from IntCurveSurface;
|
||||
|
||||
Create(P : Pnt from gp;
|
||||
USurf : Real from Standard;
|
||||
VSurf : Real from Standard;
|
||||
UCurv : Real from Standard;
|
||||
TrCurv: TransitionOnCurve from IntCurveSurface)
|
||||
---Purpose: Create an IntersectionPoint.
|
||||
returns IntersectionPoint from IntCurveSurface;
|
||||
|
||||
SetValues(me: in out;
|
||||
P : Pnt from gp;
|
||||
USurf : Real from Standard;
|
||||
VSurf : Real from Standard;
|
||||
UCurv : Real from Standard;
|
||||
TrCurv: TransitionOnCurve from IntCurveSurface)
|
||||
---Purpose: Set the fields of the current IntersectionPoint.
|
||||
is static;
|
||||
|
||||
Values(me;
|
||||
P : out Pnt from gp;
|
||||
USurf : out Real from Standard;
|
||||
VSurf : out Real from Standard;
|
||||
UCurv : out Real from Standard;
|
||||
TrCurv: out TransitionOnCurve from IntCurveSurface)
|
||||
---Purpose: Get the fields of the current IntersectionPoint.
|
||||
is static;
|
||||
|
||||
Pnt(me)
|
||||
---Purpose: returns the geometric point.
|
||||
---C++: return const &
|
||||
---C++: inline
|
||||
returns Pnt from gp
|
||||
is static;
|
||||
|
||||
U(me)
|
||||
---Purpose: returns the U parameter on the surface.
|
||||
---C++: inline
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
V(me)
|
||||
---Purpose: returns the V parameter on the surface.
|
||||
---C++: inline
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
W(me)
|
||||
---Purpose: returns the parameter on the curve.
|
||||
---C++: inline
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
Transition(me)
|
||||
---Purpose: returns the Transition of the point.
|
||||
---C++: inline
|
||||
returns TransitionOnCurve from IntCurveSurface
|
||||
is static;
|
||||
|
||||
|
||||
Dump(me)
|
||||
---Purpose: Dump all the fields.
|
||||
is static;
|
||||
|
||||
fields
|
||||
|
||||
myP : Pnt from gp;
|
||||
myUSurf : Real from Standard;
|
||||
myVSurf : Real from Standard;
|
||||
myUCurv : Real from Standard;
|
||||
myTrOnCurv: TransitionOnCurve from IntCurveSurface;
|
||||
|
||||
end IntersectionPoint;
|
||||
|
||||
@@ -14,8 +14,9 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_IntersectionPoint.ixx>
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
|
||||
//================================================================================
|
||||
IntCurveSurface_IntersectionPoint::IntCurveSurface_IntersectionPoint() { }
|
||||
|
||||
98
src/IntCurveSurface/IntCurveSurface_IntersectionPoint.hxx
Normal file
98
src/IntCurveSurface/IntCurveSurface_IntersectionPoint.hxx
Normal file
@@ -0,0 +1,98 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_IntersectionPoint_HeaderFile
|
||||
#define _IntCurveSurface_IntersectionPoint_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <IntCurveSurface_TransitionOnCurve.hxx>
|
||||
class gp_Pnt;
|
||||
|
||||
|
||||
//! Definition of an interserction point between a
|
||||
//! curve and a surface.
|
||||
class IntCurveSurface_IntersectionPoint
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
//! Empty Constructor.
|
||||
Standard_EXPORT IntCurveSurface_IntersectionPoint();
|
||||
|
||||
//! Create an IntersectionPoint.
|
||||
Standard_EXPORT IntCurveSurface_IntersectionPoint(const gp_Pnt& P, const Standard_Real USurf, const Standard_Real VSurf, const Standard_Real UCurv, const IntCurveSurface_TransitionOnCurve TrCurv);
|
||||
|
||||
//! Set the fields of the current IntersectionPoint.
|
||||
Standard_EXPORT void SetValues (const gp_Pnt& P, const Standard_Real USurf, const Standard_Real VSurf, const Standard_Real UCurv, const IntCurveSurface_TransitionOnCurve TrCurv);
|
||||
|
||||
//! Get the fields of the current IntersectionPoint.
|
||||
Standard_EXPORT void Values (gp_Pnt& P, Standard_Real& USurf, Standard_Real& VSurf, Standard_Real& UCurv, IntCurveSurface_TransitionOnCurve& TrCurv) const;
|
||||
|
||||
//! returns the geometric point.
|
||||
const gp_Pnt& Pnt() const;
|
||||
|
||||
//! returns the U parameter on the surface.
|
||||
Standard_Real U() const;
|
||||
|
||||
//! returns the V parameter on the surface.
|
||||
Standard_Real V() const;
|
||||
|
||||
//! returns the parameter on the curve.
|
||||
Standard_Real W() const;
|
||||
|
||||
//! returns the Transition of the point.
|
||||
IntCurveSurface_TransitionOnCurve Transition() const;
|
||||
|
||||
//! Dump all the fields.
|
||||
Standard_EXPORT void Dump() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
gp_Pnt myP;
|
||||
Standard_Real myUSurf;
|
||||
Standard_Real myVSurf;
|
||||
Standard_Real myUCurv;
|
||||
IntCurveSurface_TransitionOnCurve myTrOnCurv;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
#include <IntCurveSurface_IntersectionPoint.lxx>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_IntersectionPoint_HeaderFile
|
||||
@@ -1,77 +0,0 @@
|
||||
-- Created on: 1993-04-07
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
class IntersectionSegment from IntCurveSurface
|
||||
|
||||
|
||||
---Purpose: A IntersectionSegment describes a segment of curve
|
||||
-- (w1,w2) where distance(C(w),Surface) is less than a
|
||||
-- given tolerances.
|
||||
|
||||
---Level: Public
|
||||
|
||||
uses
|
||||
|
||||
IntersectionPoint from IntCurveSurface
|
||||
|
||||
is
|
||||
|
||||
Create
|
||||
returns IntersectionSegment from IntCurveSurface;
|
||||
|
||||
Create(P1: IntersectionPoint from IntCurveSurface;
|
||||
P2: IntersectionPoint from IntCurveSurface)
|
||||
returns IntersectionSegment from IntCurveSurface;
|
||||
|
||||
SetValues(me: in out;
|
||||
P1: IntersectionPoint from IntCurveSurface;
|
||||
P2: IntersectionPoint from IntCurveSurface)
|
||||
is static;
|
||||
|
||||
Values(me;
|
||||
P1: out IntersectionPoint from IntCurveSurface;
|
||||
P2: out IntersectionPoint from IntCurveSurface)
|
||||
is static;
|
||||
|
||||
FirstPoint(me;
|
||||
P1: out IntersectionPoint from IntCurveSurface)
|
||||
is static;
|
||||
|
||||
SecondPoint(me;
|
||||
P2: out IntersectionPoint from IntCurveSurface)
|
||||
is static;
|
||||
|
||||
|
||||
FirstPoint(me)
|
||||
returns IntersectionPoint from IntCurveSurface
|
||||
---C++: return const &
|
||||
is static;
|
||||
|
||||
SecondPoint(me)
|
||||
returns IntersectionPoint from IntCurveSurface
|
||||
---C++: return const &
|
||||
is static;
|
||||
|
||||
Dump(me)
|
||||
is static;
|
||||
|
||||
fields
|
||||
|
||||
myP1 : IntersectionPoint from IntCurveSurface;
|
||||
myP2 : IntersectionPoint from IntCurveSurface;
|
||||
|
||||
end IntersectionSegment;
|
||||
|
||||
@@ -14,8 +14,9 @@
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_IntersectionSegment.ixx>
|
||||
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
#include <IntCurveSurface_IntersectionSegment.hxx>
|
||||
|
||||
IntCurveSurface_IntersectionSegment::IntCurveSurface_IntersectionSegment()
|
||||
{ }
|
||||
|
||||
81
src/IntCurveSurface/IntCurveSurface_IntersectionSegment.hxx
Normal file
81
src/IntCurveSurface/IntCurveSurface_IntersectionSegment.hxx
Normal file
@@ -0,0 +1,81 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_IntersectionSegment_HeaderFile
|
||||
#define _IntCurveSurface_IntersectionSegment_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
class IntCurveSurface_IntersectionPoint;
|
||||
|
||||
|
||||
//! A IntersectionSegment describes a segment of curve
|
||||
//! (w1,w2) where distance(C(w),Surface) is less than a
|
||||
//! given tolerances.
|
||||
class IntCurveSurface_IntersectionSegment
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurveSurface_IntersectionSegment();
|
||||
|
||||
Standard_EXPORT IntCurveSurface_IntersectionSegment(const IntCurveSurface_IntersectionPoint& P1, const IntCurveSurface_IntersectionPoint& P2);
|
||||
|
||||
Standard_EXPORT void SetValues (const IntCurveSurface_IntersectionPoint& P1, const IntCurveSurface_IntersectionPoint& P2);
|
||||
|
||||
Standard_EXPORT void Values (IntCurveSurface_IntersectionPoint& P1, IntCurveSurface_IntersectionPoint& P2) const;
|
||||
|
||||
Standard_EXPORT void FirstPoint (IntCurveSurface_IntersectionPoint& P1) const;
|
||||
|
||||
Standard_EXPORT void SecondPoint (IntCurveSurface_IntersectionPoint& P2) const;
|
||||
|
||||
Standard_EXPORT const IntCurveSurface_IntersectionPoint& FirstPoint() const;
|
||||
|
||||
Standard_EXPORT const IntCurveSurface_IntersectionPoint& SecondPoint() const;
|
||||
|
||||
Standard_EXPORT void Dump() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
IntCurveSurface_IntersectionPoint myP1;
|
||||
IntCurveSurface_IntersectionPoint myP2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_IntersectionSegment_HeaderFile
|
||||
@@ -1,174 +0,0 @@
|
||||
-- Created on: 1992-10-19
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1992-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
generic class Polygon from IntCurveSurface (
|
||||
TheCurve as any;
|
||||
TheCurveTool as any)
|
||||
|
||||
---Purpose: Describe a polyline as a topology to compute the
|
||||
-- interference beetween two polylines 2 dimension.
|
||||
|
||||
|
||||
uses Pnt from gp,
|
||||
Box from Bnd,
|
||||
Array1OfPnt from TColgp,
|
||||
Array1OfReal from TColStd,
|
||||
HArray1OfReal from TColStd
|
||||
|
||||
|
||||
raises OutOfRange from Standard
|
||||
|
||||
|
||||
is
|
||||
|
||||
Create (Curve : TheCurve;
|
||||
NbPnt : Integer from Standard)
|
||||
|
||||
returns Polygon from IntCurveSurface;
|
||||
|
||||
Create (Curve : TheCurve;
|
||||
U1,U2 : Real from Standard;
|
||||
NbPnt : Integer from Standard)
|
||||
|
||||
returns Polygon from IntCurveSurface;
|
||||
|
||||
Create (Curve : TheCurve;
|
||||
Upars : Array1OfReal from TColStd)
|
||||
|
||||
returns Polygon from IntCurveSurface;
|
||||
|
||||
Init (me:in out;
|
||||
Curve : TheCurve)
|
||||
|
||||
is static protected;
|
||||
|
||||
Init (me:in out;
|
||||
Curve : TheCurve;
|
||||
Upars : Array1OfReal from TColStd)
|
||||
|
||||
is static protected;
|
||||
|
||||
|
||||
Bounding (me)
|
||||
returns Box from Bnd
|
||||
---C++: return const &
|
||||
---C++: inline
|
||||
is static;
|
||||
---Purpose: Give the bounding box of the polygon.
|
||||
|
||||
DeflectionOverEstimation(me)
|
||||
returns Real from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
|
||||
SetDeflectionOverEstimation(me: in out; x:Real from Standard)
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
Closed (me : in out; clos : Boolean from Standard)
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
Closed (me)
|
||||
returns Boolean from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
NbSegments (me)
|
||||
returns Integer
|
||||
---C++: inline
|
||||
is static;
|
||||
---Purpose: Give the number of Segments in the polyline.
|
||||
|
||||
BeginOfSeg (me;
|
||||
Index : in Integer)
|
||||
returns Pnt from gp
|
||||
raises OutOfRange from Standard
|
||||
---C++: return const &
|
||||
---C++: inline
|
||||
is static;
|
||||
---Purpose: Give the point of range Index in the Polygon.
|
||||
|
||||
EndOfSeg (me;
|
||||
Index : in Integer)
|
||||
returns Pnt from gp
|
||||
raises OutOfRange from Standard
|
||||
---C++: return const &
|
||||
---C++: inline
|
||||
is static;
|
||||
---Purpose: Give the point of range Index in the Polygon.
|
||||
|
||||
-- Implementation :
|
||||
|
||||
|
||||
InfParameter(me)
|
||||
|
||||
---Purpose: Returns the parameter (On the curve)
|
||||
-- of the first point of the Polygon
|
||||
|
||||
returns Real from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
SupParameter(me)
|
||||
|
||||
---Purpose: Returns the parameter (On the curve)
|
||||
-- of the last point of the Polygon
|
||||
|
||||
|
||||
returns Real from Standard
|
||||
---C++: inline
|
||||
is static;
|
||||
|
||||
|
||||
ApproxParamOnCurve(me;
|
||||
Index : in Integer from Standard;
|
||||
ParamOnLine : in Real from Standard)
|
||||
|
||||
returns Real from Standard
|
||||
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
---Purpose: Give an approximation of the parameter on the curve
|
||||
-- according to the discretization of the Curve.
|
||||
|
||||
|
||||
|
||||
|
||||
-- Test needings :
|
||||
|
||||
|
||||
|
||||
Dump (me)
|
||||
is static;
|
||||
|
||||
|
||||
fields TheBnd : Box from Bnd;
|
||||
TheDeflection : Real from Standard;
|
||||
NbPntIn : Integer from Standard;
|
||||
ThePnts : Array1OfPnt from TColgp;
|
||||
ClosedPolygon : Boolean from Standard;
|
||||
|
||||
--- To compute an approximate parameter on the Curve
|
||||
--
|
||||
Binf : Real from Standard;
|
||||
Bsup : Real from Standard;
|
||||
|
||||
myParams : HArray1OfReal from TColStd;
|
||||
|
||||
end Polygon;
|
||||
@@ -1,76 +0,0 @@
|
||||
-- Created on: 1991-08-02
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1991-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
generic class PolygonTool from IntCurveSurface(
|
||||
ThePoint as any;
|
||||
ThePolygon as any;
|
||||
TheBoundingBox as any)
|
||||
|
||||
---Purpose:
|
||||
|
||||
raises OutOfRange from Standard
|
||||
|
||||
|
||||
is
|
||||
|
||||
|
||||
Bounding (myclass; thePolygon : ThePolygon)
|
||||
returns TheBoundingBox;
|
||||
---Purpose: Give the bounding box of the polygon.
|
||||
---C++: inline
|
||||
---C++: return const &
|
||||
|
||||
DeflectionOverEstimation
|
||||
(myclass; thePolygon : ThePolygon)
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
Closed (myclass; thePolygon : ThePolygon)
|
||||
---C++: inline
|
||||
returns Boolean from Standard;
|
||||
|
||||
NbSegments (myclass; thePolygon : ThePolygon)
|
||||
---C++: inline
|
||||
returns Integer from Standard;
|
||||
|
||||
BeginOfSeg (myclass; thePolygon : ThePolygon;
|
||||
Index : in Integer)
|
||||
---C++: inline
|
||||
returns ThePoint
|
||||
raises OutOfRange from Standard;
|
||||
---C++: return const &
|
||||
---Purpose: Give the point of range Index in the Polygon.
|
||||
|
||||
EndOfSeg (myclass; thePolygon : ThePolygon;
|
||||
Index : in Integer)
|
||||
---C++: inline
|
||||
returns ThePoint
|
||||
raises OutOfRange from Standard;
|
||||
---C++: return const &
|
||||
---Purpose: Give the point of range Index in the Polygon.
|
||||
|
||||
|
||||
Dump (myclass; thePolygon : ThePolygon);
|
||||
|
||||
end PolygonTool;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,286 +0,0 @@
|
||||
-- Created on: 1993-02-03
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
generic class Polyhedron from IntCurveSurface (
|
||||
ThePSurface as any;
|
||||
ThePSurfaceTool as any)
|
||||
|
||||
|
||||
---Purpose: This class provides a linear approximation of the PSurface.
|
||||
--
|
||||
|
||||
|
||||
|
||||
uses XYZ from gp,
|
||||
Pnt from gp,
|
||||
Array2OfPnt from TColgp,
|
||||
Array2OfReal from TColStd,
|
||||
Box from Bnd,
|
||||
HArray1OfBox from Bnd,
|
||||
Array1OfReal from TColStd
|
||||
|
||||
|
||||
raises OutOfRange from Standard
|
||||
|
||||
|
||||
is
|
||||
|
||||
Create(Surface : ThePSurface;
|
||||
nbdU,nbdV : Integer from Standard;
|
||||
U1,V1,U2,V2 : Real from Standard)
|
||||
-- Create a polyhedron on a sub-domain.
|
||||
-- the numbre of samples on each parametric direction is given.
|
||||
returns Polyhedron from IntCurveSurface;
|
||||
|
||||
Create(Surface : ThePSurface;
|
||||
Upars, Vpars : Array1OfReal from TColStd)
|
||||
-- Create a polyhedron on a sub-domain.
|
||||
-- the numbre of samples on each parametric direction is given.
|
||||
returns Polyhedron from IntCurveSurface;
|
||||
|
||||
|
||||
Destroy(me: in out);
|
||||
---C++: alias ~
|
||||
|
||||
DeflectionOverEstimation
|
||||
(me : in out; flec : Real from Standard)
|
||||
is static;
|
||||
|
||||
DeflectionOnTriangle(me; Surface : ThePSurface;
|
||||
Index : Integer from Standard)
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
UMinSingularity(me : in out; Sing : Boolean from Standard)
|
||||
is static;
|
||||
|
||||
UMaxSingularity(me : in out; Sing : Boolean from Standard)
|
||||
is static;
|
||||
|
||||
VMinSingularity(me : in out; Sing : Boolean from Standard)
|
||||
is static;
|
||||
|
||||
VMaxSingularity(me : in out; Sing : Boolean from Standard)
|
||||
is static;
|
||||
|
||||
Size(me;nbdu, nbdv : in out Integer)
|
||||
---Purpose: get the size of the discretization.
|
||||
is static;
|
||||
|
||||
|
||||
Init(me:in out;
|
||||
Surface : ThePSurface;
|
||||
U1,V1,U2,V2 : Real from Standard)
|
||||
-- Implementation function.
|
||||
is static protected;
|
||||
|
||||
Init(me:in out;
|
||||
Surface : ThePSurface;
|
||||
Upars, Vpars : Array1OfReal from TColStd)
|
||||
-- Implementation function.
|
||||
is static protected;
|
||||
|
||||
|
||||
NbTriangles (me)
|
||||
---Purpose: Give the number of triangles in this double array of
|
||||
---triangles (nbdu*nbdv*2).
|
||||
returns Integer
|
||||
is static;
|
||||
|
||||
|
||||
Triangle(me; Index : in Integer;
|
||||
P1,P2,P3 : out Integer)
|
||||
---Purpose: Give the 3 points of the triangle of addresse Index in
|
||||
-- the double array of triangles.
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
|
||||
|
||||
TriConnex (me;
|
||||
Triang : in Integer;
|
||||
Pivot,Pedge : in Integer;
|
||||
TriCon : out Integer;
|
||||
OtherP : out Integer)
|
||||
---Purpose: Give the addresse Tricon of the triangle connexe to the
|
||||
-- triangle of address Triang by the edge Pivot Pedge and
|
||||
-- the third point of this connexe triangle. When we are
|
||||
-- on a free edge TriCon==0 but the function return the
|
||||
-- value of the triangle in the other side of Pivot on
|
||||
-- the free edge. Used to turn around a vertex.
|
||||
returns Integer from Standard
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
|
||||
NbPoints (me)
|
||||
---Purpose: Give the number of point in the double array of
|
||||
-- triangles ((nbdu+1)*(nbdv+1)).
|
||||
returns Integer from Standard
|
||||
is static;
|
||||
|
||||
Point (me : in out ;
|
||||
thePnt : in Pnt from gp;
|
||||
lig, col : in Integer;
|
||||
U,V : in Real from Standard)
|
||||
---Purpose: Set the value of a field of the double array of
|
||||
-- points.
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Point (me;
|
||||
Index : in Integer;
|
||||
U,V : out Real from Standard)
|
||||
---Purpose: Give the point of index i in the MaTriangle.
|
||||
---C++: return const &
|
||||
returns Pnt from gp
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
Point (me;
|
||||
Index : in Integer)
|
||||
---Purpose: Give the point of index i in the MaTriangle.
|
||||
---C++: return const &
|
||||
returns Pnt from gp
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Point (me;
|
||||
Index : in Integer;
|
||||
P : out Pnt from gp)
|
||||
---Purpose: Give the point of index i in the MaTriangle.
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Bounding (me)
|
||||
---Purpose: Give the bounding box of the MaTriangle.
|
||||
---C++: return const &
|
||||
returns Box from Bnd
|
||||
is static;
|
||||
|
||||
FillBounding (me : in out)
|
||||
---Purpose: Compute the array of boxes. The box <n> corresponding
|
||||
-- to the triangle <n>.
|
||||
is static;
|
||||
|
||||
|
||||
ComponentsBounding
|
||||
(me)
|
||||
returns HArray1OfBox from Bnd
|
||||
is static;
|
||||
---Purpose: Give the array of boxes. The box <n> corresponding
|
||||
-- to the triangle <n>.
|
||||
---C++: return const &
|
||||
|
||||
|
||||
DeflectionOverEstimation
|
||||
(me)
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
HasUMinSingularity
|
||||
(me)
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
HasUMaxSingularity
|
||||
(me)
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
HasVMinSingularity
|
||||
(me)
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
HasVMaxSingularity
|
||||
(me)
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
PlaneEquation (me;
|
||||
Triang : in Integer from Standard;
|
||||
NormalVector : out XYZ from gp;
|
||||
PolarDistance : out Real from Standard)
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
---Purpose: Give the plane equation of the triangle of addresse Triang.
|
||||
|
||||
|
||||
Contain (me;
|
||||
Triang : in Integer from Standard;
|
||||
ThePnt : in Pnt from gp)
|
||||
returns Boolean
|
||||
raises OutOfRange from Standard
|
||||
is static;
|
||||
---Purpose: Give the plane equation of the triangle of addresse Triang.
|
||||
|
||||
Parameters(me; Index : Integer from Standard;
|
||||
U,V : out Real from Standard)
|
||||
raises OutOfRange from Standard;
|
||||
|
||||
-- Modified by Sergey KHROMOV - Fri Dec 7 10:04:01 2001 Begin
|
||||
IsOnBound(me; Index1: Integer from Standard;
|
||||
Index2: Integer from Standard)
|
||||
---Purpose: This method returns true if the edge based on points with
|
||||
-- indices Index1 and Index2 represents a boundary edge. It is
|
||||
-- necessary to take into account the boundary deflection for
|
||||
-- this edge.
|
||||
returns Boolean from Standard;
|
||||
|
||||
GetBorderDeflection(me)
|
||||
---Purpose: This method returns a border deflection.
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
ComputeBorderDeflection(me; Surface : ThePSurface;
|
||||
Parameter: Real from Standard;
|
||||
PMin : Real from Standard;
|
||||
PMax : Real from Standard;
|
||||
isUIso : Boolean from Standard)
|
||||
---Purpose: This method computes and returns a deflection of isoline
|
||||
-- of given parameter on Surface.
|
||||
returns Real from Standard
|
||||
is private;
|
||||
|
||||
-- Modified by Sergey KHROMOV - Fri Dec 7 10:04:08 2001 End
|
||||
|
||||
-- Test needings :
|
||||
|
||||
Dump (me)
|
||||
is static;
|
||||
|
||||
fields
|
||||
nbdeltaU : Integer from Standard;
|
||||
nbdeltaV : Integer from Standard;
|
||||
TheBnd : Box from Bnd;
|
||||
TheComponentsBnd : HArray1OfBox from Bnd;
|
||||
TheDeflection : Real from Standard;
|
||||
C_MyPnts : Address from Standard;
|
||||
C_MyU : Address from Standard;
|
||||
C_MyV : Address from Standard;
|
||||
UMinSingular : Boolean from Standard;
|
||||
UMaxSingular : Boolean from Standard;
|
||||
VMinSingular : Boolean from Standard;
|
||||
VMaxSingular : Boolean from Standard;
|
||||
-- Modified by Sergey KHROMOV - Fri Dec 7 12:00:42 2001 Begin
|
||||
TheBorderDeflection: Real from Standard;
|
||||
C_MyIsOnBounds : Address from Standard;
|
||||
-- Modified by Sergey KHROMOV - Fri Dec 7 12:00:43 2001 End
|
||||
end Polyhedron;
|
||||
@@ -1,133 +0,0 @@
|
||||
-- Created on: 1993-03-12
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
generic class PolyhedronTool from IntCurveSurface
|
||||
(ThePolyhedron as any) -- as Polyhedron from IntCurveSurface
|
||||
|
||||
---Purpose: Describe the signature of a polyhedral surface with
|
||||
-- only triangular facets and the necessary informations
|
||||
-- to compute the interferences.
|
||||
|
||||
|
||||
uses XYZ from gp,
|
||||
Pnt from gp,
|
||||
Box from Bnd,
|
||||
HArray1OfBox from Bnd
|
||||
|
||||
|
||||
raises OutOfRange from Standard
|
||||
|
||||
|
||||
is
|
||||
|
||||
|
||||
Bounding (myclass; thePolyh : ThePolyhedron)
|
||||
---Purpose: Give the bounding box of the PolyhedronTool.
|
||||
---C++: return const &
|
||||
---C++: inline
|
||||
returns Box from Bnd;
|
||||
|
||||
|
||||
ComponentsBounding
|
||||
(myclass; thePolyh : ThePolyhedron)
|
||||
---Purpose: Give the array of boxes. The box <n> corresponding
|
||||
-- to the triangle <n>.
|
||||
---C++: return const &
|
||||
---C++: inline
|
||||
returns HArray1OfBox from Bnd;
|
||||
|
||||
|
||||
DeflectionOverEstimation
|
||||
(myclass; thePolyh : ThePolyhedron)
|
||||
---Purpose: Give the tolerance of the polygon.
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
|
||||
|
||||
|
||||
-- Structure needings :
|
||||
|
||||
NbTriangles (myclass; thePolyh : ThePolyhedron)
|
||||
returns Integer from Standard;
|
||||
---Purpose: Give the number of triangles in this polyedral surface.
|
||||
---C++: inline
|
||||
|
||||
|
||||
Triangle (myclass; thePolyh : ThePolyhedron;
|
||||
Index : in Integer from Standard;
|
||||
P1,P2,P3 : out Integer from Standard)
|
||||
raises OutOfRange from Standard;
|
||||
---Purpose: Give the indices of the 3 points of the triangle of
|
||||
-- address Index in the PolyhedronTool.
|
||||
---C++: inline
|
||||
|
||||
|
||||
Point (myclass; thePolyh : ThePolyhedron;
|
||||
Index : in Integer)
|
||||
returns Pnt from gp
|
||||
raises OutOfRange from Standard;
|
||||
---Purpose: Give the point of index i in the polyedral surface.
|
||||
---C++: return const &
|
||||
---C++: inline
|
||||
|
||||
|
||||
TriConnex (myclass; thePolyh : ThePolyhedron;
|
||||
Triang : in Integer;
|
||||
Pivot,Pedge : in Integer;
|
||||
TriCon : out Integer;
|
||||
OtherP : out Integer)
|
||||
returns Integer
|
||||
raises OutOfRange from Standard;
|
||||
---Purpose: Give the addresse Tricon of the triangle connexe to
|
||||
-- the triangle of address Triang by the edge Pivot Pedge
|
||||
-- and the third point of this connexe triangle. When we
|
||||
-- are on a free edge TriCon==0 but the function return
|
||||
-- the value of the triangle in the other side of Pivot
|
||||
-- on the free edge. Used to turn around a vertex.
|
||||
---C++: inline
|
||||
|
||||
|
||||
-- Modified by Sergey KHROMOV - Fri Dec 7 13:25:47 2001 Begin
|
||||
|
||||
IsOnBound(myclass; thePolyh: ThePolyhedron;
|
||||
Index1 : Integer from Standard;
|
||||
Index2 : Integer from Standard)
|
||||
---Purpose: This method returns true if the edge based on points with
|
||||
-- indices Index1 and Index2 represents a boundary edge. It is
|
||||
-- necessary to take into account the boundary deflection for
|
||||
-- this edge.
|
||||
---C++: inline
|
||||
returns Boolean from Standard;
|
||||
|
||||
GetBorderDeflection(myclass; thePolyh : ThePolyhedron)
|
||||
---Purpose: This method returns a border deflection of the polyhedron.
|
||||
---C++: inline
|
||||
returns Real from Standard;
|
||||
|
||||
-- Modified by Sergey KHROMOV - Fri Dec 7 13:25:53 2001 End
|
||||
|
||||
|
||||
Dump (myclass; thePolyh: ThePolyhedron);
|
||||
|
||||
end PolyhedronTool;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
-- Created on: 1993-08-18
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
generic class QuadricCurveExactInter from IntCurveSurface (
|
||||
TheSurface as any;
|
||||
TheSurfaceTool as any;
|
||||
TheCurve as any;
|
||||
TheCurveTool as any)
|
||||
|
||||
|
||||
---Purpose: ---------------------------------------------------------
|
||||
-- --
|
||||
-- find a root (u,v,w) from a starting point (w0) of the problem :--
|
||||
-- Q(X(w),Y(w),Z(w)) = 0 --
|
||||
-- --
|
||||
-- where Q(X,Y,Z) = 0 is the implicit expression of a quadric --
|
||||
-- and (X(w),Y(w),Z(w)) the point of parameter w on a parametric --
|
||||
-- curve. --
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
uses
|
||||
Quadric from IntSurf,
|
||||
SequenceOfReal from TColStd
|
||||
|
||||
------------------------------------------------------------
|
||||
class TheQuadCurvFunc instantiates QuadricCurveFunc from IntCurveSurface (
|
||||
Quadric from IntSurf,
|
||||
TheCurve,
|
||||
TheCurveTool);
|
||||
|
||||
---Purpose: Provides the signed distance function : Q(w)
|
||||
-- and its first derivative dQ(w)/dw
|
||||
------------------------------------------------------------
|
||||
|
||||
is
|
||||
|
||||
Create(S: TheSurface; C: TheCurve)
|
||||
---Purpose:
|
||||
returns QuadricCurveExactInter from IntCurveSurface;
|
||||
|
||||
|
||||
IsDone(me)
|
||||
---Purpose:
|
||||
returns Boolean from Standard
|
||||
is static;
|
||||
|
||||
|
||||
NbRoots(me)
|
||||
---Purpose:
|
||||
returns Integer from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Root(me; Index: Integer from Standard)
|
||||
---Purpose:
|
||||
returns Real from Standard
|
||||
is static;
|
||||
|
||||
|
||||
NbIntervals(me)
|
||||
---Purpose:
|
||||
returns Integer from Standard
|
||||
is static;
|
||||
|
||||
|
||||
Intervals(me; Index: Integer from Standard;
|
||||
U1,U2: out Real from Standard)
|
||||
---Purpose: U1 and U2 are the parameters of
|
||||
-- a segment on the curve.
|
||||
is static;
|
||||
|
||||
|
||||
|
||||
fields
|
||||
|
||||
nbpnts : Integer from Standard;
|
||||
pnts : SequenceOfReal from TColStd;
|
||||
nbintv : Integer from Standard;
|
||||
intv : SequenceOfReal from TColStd;
|
||||
|
||||
end QuadricCurveExactInter;
|
||||
@@ -1,84 +0,0 @@
|
||||
-- Created on: 1993-08-19
|
||||
-- Created by: Laurent BUCHARD
|
||||
-- Copyright (c) 1993-1999 Matra Datavision
|
||||
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
--
|
||||
-- This file is part of Open CASCADE Technology software library.
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or modify it under
|
||||
-- the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
-- by the Free Software Foundation, with special exception defined in the file
|
||||
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
-- distribution for complete text of the license and disclaimer of any warranty.
|
||||
--
|
||||
-- Alternatively, this file may be used under the terms of Open CASCADE
|
||||
-- commercial license or contractual agreement.
|
||||
|
||||
generic class QuadricCurveFunc from IntCurveSurface (
|
||||
TheQuadric as any; -- as Quadric from IntCurveSurface
|
||||
TheCurve as any;
|
||||
TheCurveTool as any)
|
||||
|
||||
inherits FunctionWithDerivative from math
|
||||
|
||||
|
||||
|
||||
---Purpose: Implements the function Q(w) and its first
|
||||
-- derivative used by FunctionAllRoots to find the
|
||||
-- areas where the distance between the quadric and
|
||||
-- the parametric curves is less than a given
|
||||
-- tolerance.
|
||||
--
|
||||
-- where Q(X,Y,Z) = 0 is the implicit expression of a
|
||||
-- quadric and (X(w),Y(w),Z(w)) the point of parameter w on
|
||||
-- a parametric curve.
|
||||
--
|
||||
|
||||
is
|
||||
|
||||
Create(Q: TheQuadric; C:TheCurve)
|
||||
|
||||
---Purpose: Create the function.
|
||||
--
|
||||
returns QuadricCurveFunc from IntCurveSurface;
|
||||
|
||||
|
||||
|
||||
Value(me: in out; Param: Real from Standard; F: out Real from Standard)
|
||||
|
||||
---Purpose: Computes the value of the signed distance between
|
||||
-- the implicit surface and the point at parameter
|
||||
-- Param on the parametrised curve.
|
||||
-- Value always returns True.
|
||||
|
||||
returns Boolean from Standard
|
||||
is redefined static;
|
||||
|
||||
|
||||
Derivative(me: in out; Param: Real from Standard;
|
||||
D: out Real from Standard)
|
||||
|
||||
---Purpose: Computes the derivative of the previous function at
|
||||
-- parameter Param.
|
||||
-- Derivative always returns True.
|
||||
|
||||
returns Boolean from Standard
|
||||
is redefined static;
|
||||
|
||||
|
||||
Values(me: in out; Param: Real from Standard; F,D: out Real from Standard)
|
||||
|
||||
---Purpose: Computes the value and the derivative of the function.
|
||||
-- returns True.
|
||||
|
||||
returns Boolean from Standard
|
||||
is redefined static;
|
||||
|
||||
|
||||
fields
|
||||
|
||||
myQuadric : TheQuadric;
|
||||
myCurve : TheCurve;
|
||||
|
||||
end QuadricCurveFunc;
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_TheCSFunctionOfHInter_HeaderFile
|
||||
#define _IntCurveSurface_TheCSFunctionOfHInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <math_FunctionSetWithDerivatives.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HCurve;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class IntCurveSurface_TheHCurveTool;
|
||||
class math_Matrix;
|
||||
class gp_Pnt;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_TheCSFunctionOfHInter : public math_FunctionSetWithDerivatives
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheCSFunctionOfHInter(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
Standard_EXPORT Standard_Integer NbVariables() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbEquations() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D);
|
||||
|
||||
Standard_EXPORT const gp_Pnt& Point() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Root() const;
|
||||
|
||||
Standard_EXPORT const Handle(Adaptor3d_HSurface)& AuxillarSurface() const;
|
||||
|
||||
Standard_EXPORT const Handle(Adaptor3d_HCurve)& AuxillarCurve() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Handle(Adaptor3d_HSurface) surface;
|
||||
Handle(Adaptor3d_HCurve) curve;
|
||||
gp_Pnt p;
|
||||
Standard_Real f;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_TheCSFunctionOfHInter_HeaderFile
|
||||
@@ -0,0 +1,38 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_TheCSFunctionOfHInter.hxx>
|
||||
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheCurveTool IntCurveSurface_TheHCurveTool
|
||||
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#define IntImp_ZerCSParFunc IntCurveSurface_TheCSFunctionOfHInter
|
||||
#define IntImp_ZerCSParFunc_hxx <IntCurveSurface_TheCSFunctionOfHInter.hxx>
|
||||
#include <IntImp_ZerCSParFunc.gxx>
|
||||
|
||||
94
src/IntCurveSurface/IntCurveSurface_TheExactHInter.hxx
Normal file
94
src/IntCurveSurface/IntCurveSurface_TheExactHInter.hxx
Normal file
@@ -0,0 +1,94 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_TheExactHInter_HeaderFile
|
||||
#define _IntCurveSurface_TheExactHInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <IntCurveSurface_TheCSFunctionOfHInter.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class StdFail_NotDone;
|
||||
class Standard_DomainError;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class Adaptor3d_HCurve;
|
||||
class IntCurveSurface_TheHCurveTool;
|
||||
class IntCurveSurface_TheCSFunctionOfHInter;
|
||||
class math_FunctionSetRoot;
|
||||
class gp_Pnt;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_TheExactHInter
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheExactHInter(const Standard_Real U, const Standard_Real V, const Standard_Real W, const IntCurveSurface_TheCSFunctionOfHInter& F, const Standard_Real TolTangency, const Standard_Real MarginCoef = 0.0);
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheExactHInter(const IntCurveSurface_TheCSFunctionOfHInter& F, const Standard_Real TolTangency);
|
||||
|
||||
Standard_EXPORT void Perform (const Standard_Real U, const Standard_Real V, const Standard_Real W, math_FunctionSetRoot& Rsnld, const Standard_Real u0, const Standard_Real v0, const Standard_Real u1, const Standard_Real v1, const Standard_Real w0, const Standard_Real w1);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsEmpty() const;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& Point() const;
|
||||
|
||||
Standard_EXPORT Standard_Real ParameterOnCurve() const;
|
||||
|
||||
Standard_EXPORT void ParameterOnSurface (Standard_Real& U, Standard_Real& V) const;
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheCSFunctionOfHInter& Function();
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Boolean done;
|
||||
Standard_Boolean empty;
|
||||
IntCurveSurface_TheCSFunctionOfHInter myFunction;
|
||||
Standard_Real w;
|
||||
Standard_Real u;
|
||||
Standard_Real v;
|
||||
Standard_Real tol;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_TheExactHInter_HeaderFile
|
||||
43
src/IntCurveSurface/IntCurveSurface_TheExactHInter_0.cxx
Normal file
43
src/IntCurveSurface/IntCurveSurface_TheExactHInter_0.cxx
Normal file
@@ -0,0 +1,43 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_TheExactHInter.hxx>
|
||||
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#include <IntCurveSurface_TheCSFunctionOfHInter.hxx>
|
||||
#include <math_FunctionSetRoot.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheCurveTool IntCurveSurface_TheHCurveTool
|
||||
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#define TheFunction IntCurveSurface_TheCSFunctionOfHInter
|
||||
#define TheFunction_hxx <IntCurveSurface_TheCSFunctionOfHInter.hxx>
|
||||
#define IntImp_IntCS IntCurveSurface_TheExactHInter
|
||||
#define IntImp_IntCS_hxx <IntCurveSurface_TheExactHInter.hxx>
|
||||
#include <IntImp_IntCS.gxx>
|
||||
|
||||
138
src/IntCurveSurface/IntCurveSurface_TheHCurveTool.hxx
Normal file
138
src/IntCurveSurface/IntCurveSurface_TheHCurveTool.hxx
Normal file
@@ -0,0 +1,138 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_TheHCurveTool_HeaderFile
|
||||
#define _IntCurveSurface_TheHCurveTool_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <GeomAbs_Shape.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Elips.hxx>
|
||||
#include <gp_Hypr.hxx>
|
||||
#include <gp_Parab.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class Standard_NoSuchObject;
|
||||
class Standard_DomainError;
|
||||
class Adaptor3d_HCurve;
|
||||
class gp_Pnt;
|
||||
class gp_Vec;
|
||||
class Geom_BezierCurve;
|
||||
class Geom_BSplineCurve;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_TheHCurveTool
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
static Standard_Real FirstParameter (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Standard_Real LastParameter (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static GeomAbs_Shape Continuity (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Standard_Integer NbIntervals (const Handle(Adaptor3d_HCurve)& C, const GeomAbs_Shape S);
|
||||
|
||||
static void Intervals (const Handle(Adaptor3d_HCurve)& C, TColStd_Array1OfReal& T, const GeomAbs_Shape S);
|
||||
|
||||
static Standard_Boolean IsClosed (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Standard_Boolean IsPeriodic (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Standard_Real Period (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Pnt Value (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U);
|
||||
|
||||
static void D0 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P);
|
||||
|
||||
static void D1 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V);
|
||||
|
||||
static void D2 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2);
|
||||
|
||||
static void D3 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3);
|
||||
|
||||
static gp_Vec DN (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, const Standard_Integer N);
|
||||
|
||||
static Standard_Real Resolution (const Handle(Adaptor3d_HCurve)& C, const Standard_Real R3d);
|
||||
|
||||
static GeomAbs_CurveType GetType (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Lin Line (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Circ Circle (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Elips Ellipse (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Hypr Hyperbola (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static gp_Parab Parabola (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Handle(Geom_BezierCurve) Bezier (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
static Handle(Geom_BSplineCurve) BSpline (const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
Standard_EXPORT static Standard_Integer NbSamples (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U0, const Standard_Real U1);
|
||||
|
||||
Standard_EXPORT static void SamplePars (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U0, const Standard_Real U1, const Standard_Real Defl, const Standard_Integer NbMin, Handle(TColStd_HArray1OfReal)& Pars);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define CurveGen Handle(Adaptor3d_HCurve)
|
||||
#define CurveGen_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define IntCurveSurface_HCurveTool IntCurveSurface_TheHCurveTool
|
||||
#define IntCurveSurface_HCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
|
||||
|
||||
#include <IntCurveSurface_HCurveTool.lxx>
|
||||
|
||||
#undef CurveGen
|
||||
#undef CurveGen_hxx
|
||||
#undef IntCurveSurface_HCurveTool
|
||||
#undef IntCurveSurface_HCurveTool_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_TheHCurveTool_HeaderFile
|
||||
34
src/IntCurveSurface/IntCurveSurface_TheHCurveTool_0.cxx
Normal file
34
src/IntCurveSurface/IntCurveSurface_TheHCurveTool_0.cxx
Normal file
@@ -0,0 +1,34 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <Geom_BezierCurve.hxx>
|
||||
#include <Geom_BSplineCurve.hxx>
|
||||
|
||||
|
||||
#define CurveGen Handle(Adaptor3d_HCurve)
|
||||
#define CurveGen_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define IntCurveSurface_HCurveTool IntCurveSurface_TheHCurveTool
|
||||
#define IntCurveSurface_HCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#include <IntCurveSurface_HCurveTool.gxx>
|
||||
|
||||
106
src/IntCurveSurface/IntCurveSurface_TheInterferenceOfHInter.hxx
Normal file
106
src/IntCurveSurface/IntCurveSurface_TheInterferenceOfHInter.hxx
Normal file
@@ -0,0 +1,106 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_TheInterferenceOfHInter_HeaderFile
|
||||
#define _IntCurveSurface_TheInterferenceOfHInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Intf_Interference.hxx>
|
||||
#include <Intf_Array1OfLin.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class IntCurveSurface_ThePolygonOfHInter;
|
||||
class IntCurveSurface_ThePolygonToolOfHInter;
|
||||
class IntCurveSurface_ThePolyhedronOfHInter;
|
||||
class IntCurveSurface_ThePolyhedronToolOfHInter;
|
||||
class gp_Lin;
|
||||
class Bnd_BoundSortBox;
|
||||
class gp_Pnt;
|
||||
class gp_XYZ;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_TheInterferenceOfHInter : public Intf_Interference
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter();
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const gp_Lin& theLin, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const Intf_Array1OfLin& theLins, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
Standard_EXPORT void Perform (const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
Standard_EXPORT void Perform (const gp_Lin& theLin, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
Standard_EXPORT void Perform (const Intf_Array1OfLin& theLins, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const gp_Lin& theLin, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheInterferenceOfHInter(const Intf_Array1OfLin& theLins, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
|
||||
|
||||
Standard_EXPORT void Perform (const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
|
||||
|
||||
Standard_EXPORT void Perform (const gp_Lin& theLin, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
|
||||
|
||||
Standard_EXPORT void Perform (const Intf_Array1OfLin& theLins, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
|
||||
|
||||
Standard_EXPORT void Interference (const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, Bnd_BoundSortBox& theBoundSB);
|
||||
|
||||
Standard_EXPORT void Interference (const IntCurveSurface_ThePolygonOfHInter& thePolyg, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT void Intersect (const gp_Pnt& BegO, const gp_Pnt& EndO, const Standard_Boolean Infinite, const Standard_Integer TTri, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
Standard_EXPORT void Intersect (const gp_Pnt& BegO, const gp_Pnt& EndO, const Standard_Boolean Infinite, const Standard_Integer TTri, const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const gp_XYZ& TriNormal, const Standard_Real TriDp, const Standard_Real dBegTri, const Standard_Real dEndTri);
|
||||
|
||||
|
||||
Standard_Boolean BeginOfClosedPolygon;
|
||||
Standard_Integer iLin;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_TheInterferenceOfHInter_HeaderFile
|
||||
@@ -0,0 +1,40 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_TheInterferenceOfHInter.hxx>
|
||||
|
||||
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolygonToolOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <Bnd_BoundSortBox.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_XYZ.hxx>
|
||||
|
||||
|
||||
#define Polygon3d IntCurveSurface_ThePolygonOfHInter
|
||||
#define Polygon3d_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#define ToolPolygon3d IntCurveSurface_ThePolygonToolOfHInter
|
||||
#define ToolPolygon3d_hxx <IntCurveSurface_ThePolygonToolOfHInter.hxx>
|
||||
#define Polyhedron IntCurveSurface_ThePolyhedronOfHInter
|
||||
#define Polyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#define ToolPolyh IntCurveSurface_ThePolyhedronToolOfHInter
|
||||
#define ToolPolyh_hxx <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
#define Intf_InterferencePolygonPolyhedron IntCurveSurface_TheInterferenceOfHInter
|
||||
#define Intf_InterferencePolygonPolyhedron_hxx <IntCurveSurface_TheInterferenceOfHInter.hxx>
|
||||
#include <Intf_InterferencePolygonPolyhedron.gxx>
|
||||
|
||||
124
src/IntCurveSurface/IntCurveSurface_ThePolygonOfHInter.hxx
Normal file
124
src/IntCurveSurface/IntCurveSurface_ThePolygonOfHInter.hxx
Normal file
@@ -0,0 +1,124 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_ThePolygonOfHInter_HeaderFile
|
||||
#define _IntCurveSurface_ThePolygonOfHInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColgp_Array1OfPnt.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class Adaptor3d_HCurve;
|
||||
class IntCurveSurface_TheHCurveTool;
|
||||
class Bnd_Box;
|
||||
class gp_Pnt;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_ThePolygonOfHInter
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurveSurface_ThePolygonOfHInter(const Handle(Adaptor3d_HCurve)& Curve, const Standard_Integer NbPnt);
|
||||
|
||||
Standard_EXPORT IntCurveSurface_ThePolygonOfHInter(const Handle(Adaptor3d_HCurve)& Curve, const Standard_Real U1, const Standard_Real U2, const Standard_Integer NbPnt);
|
||||
|
||||
Standard_EXPORT IntCurveSurface_ThePolygonOfHInter(const Handle(Adaptor3d_HCurve)& Curve, const TColStd_Array1OfReal& Upars);
|
||||
|
||||
const Bnd_Box& Bounding() const;
|
||||
|
||||
Standard_Real DeflectionOverEstimation() const;
|
||||
|
||||
void SetDeflectionOverEstimation (const Standard_Real x);
|
||||
|
||||
void Closed (const Standard_Boolean clos);
|
||||
|
||||
Standard_Boolean Closed() const;
|
||||
|
||||
Standard_Integer NbSegments() const;
|
||||
|
||||
const gp_Pnt& BeginOfSeg (const Standard_Integer Index) const;
|
||||
|
||||
const gp_Pnt& EndOfSeg (const Standard_Integer Index) const;
|
||||
|
||||
Standard_Real InfParameter() const;
|
||||
|
||||
Standard_Real SupParameter() const;
|
||||
|
||||
Standard_EXPORT Standard_Real ApproxParamOnCurve (const Standard_Integer Index, const Standard_Real ParamOnLine) const;
|
||||
|
||||
Standard_EXPORT void Dump() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Init (const Handle(Adaptor3d_HCurve)& Curve);
|
||||
|
||||
Standard_EXPORT void Init (const Handle(Adaptor3d_HCurve)& Curve, const TColStd_Array1OfReal& Upars);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Bnd_Box TheBnd;
|
||||
Standard_Real TheDeflection;
|
||||
Standard_Integer NbPntIn;
|
||||
TColgp_Array1OfPnt ThePnts;
|
||||
Standard_Boolean ClosedPolygon;
|
||||
Standard_Real Binf;
|
||||
Standard_Real Bsup;
|
||||
Handle(TColStd_HArray1OfReal) myParams;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheCurveTool IntCurveSurface_TheHCurveTool
|
||||
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#define IntCurveSurface_Polygon IntCurveSurface_ThePolygonOfHInter
|
||||
#define IntCurveSurface_Polygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
|
||||
#include <IntCurveSurface_Polygon.lxx>
|
||||
|
||||
#undef TheCurve
|
||||
#undef TheCurve_hxx
|
||||
#undef TheCurveTool
|
||||
#undef TheCurveTool_hxx
|
||||
#undef IntCurveSurface_Polygon
|
||||
#undef IntCurveSurface_Polygon_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_ThePolygonOfHInter_HeaderFile
|
||||
33
src/IntCurveSurface/IntCurveSurface_ThePolygonOfHInter_0.cxx
Normal file
33
src/IntCurveSurface/IntCurveSurface_ThePolygonOfHInter_0.cxx
Normal file
@@ -0,0 +1,33 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
|
||||
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheCurveTool IntCurveSurface_TheHCurveTool
|
||||
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#define IntCurveSurface_Polygon IntCurveSurface_ThePolygonOfHInter
|
||||
#define IntCurveSurface_Polygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#include <IntCurveSurface_Polygon.gxx>
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_ThePolygonToolOfHInter_HeaderFile
|
||||
#define _IntCurveSurface_ThePolygonToolOfHInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class gp_Pnt;
|
||||
class IntCurveSurface_ThePolygonOfHInter;
|
||||
class Bnd_Box;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_ThePolygonToolOfHInter
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
static const Bnd_Box& Bounding (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
|
||||
|
||||
static Standard_Real DeflectionOverEstimation (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
|
||||
|
||||
static Standard_Boolean Closed (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
|
||||
|
||||
static Standard_Integer NbSegments (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
|
||||
|
||||
static const gp_Pnt& BeginOfSeg (const IntCurveSurface_ThePolygonOfHInter& thePolygon, const Standard_Integer Index);
|
||||
|
||||
static const gp_Pnt& EndOfSeg (const IntCurveSurface_ThePolygonOfHInter& thePolygon, const Standard_Integer Index);
|
||||
|
||||
Standard_EXPORT static void Dump (const IntCurveSurface_ThePolygonOfHInter& thePolygon);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define ThePoint gp_Pnt
|
||||
#define ThePoint_hxx <gp_Pnt.hxx>
|
||||
#define ThePolygon IntCurveSurface_ThePolygonOfHInter
|
||||
#define ThePolygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#define TheBoundingBox Bnd_Box
|
||||
#define TheBoundingBox_hxx <Bnd_Box.hxx>
|
||||
#define IntCurveSurface_PolygonTool IntCurveSurface_ThePolygonToolOfHInter
|
||||
#define IntCurveSurface_PolygonTool_hxx <IntCurveSurface_ThePolygonToolOfHInter.hxx>
|
||||
|
||||
#include <IntCurveSurface_PolygonTool.lxx>
|
||||
|
||||
#undef ThePoint
|
||||
#undef ThePoint_hxx
|
||||
#undef ThePolygon
|
||||
#undef ThePolygon_hxx
|
||||
#undef TheBoundingBox
|
||||
#undef TheBoundingBox_hxx
|
||||
#undef IntCurveSurface_PolygonTool
|
||||
#undef IntCurveSurface_PolygonTool_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_ThePolygonToolOfHInter_HeaderFile
|
||||
@@ -0,0 +1,34 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_ThePolygonToolOfHInter.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
|
||||
|
||||
#define ThePoint gp_Pnt
|
||||
#define ThePoint_hxx <gp_Pnt.hxx>
|
||||
#define ThePolygon IntCurveSurface_ThePolygonOfHInter
|
||||
#define ThePolygon_hxx <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#define TheBoundingBox Bnd_Box
|
||||
#define TheBoundingBox_hxx <Bnd_Box.hxx>
|
||||
#define IntCurveSurface_PolygonTool IntCurveSurface_ThePolygonToolOfHInter
|
||||
#define IntCurveSurface_PolygonTool_hxx <IntCurveSurface_ThePolygonToolOfHInter.hxx>
|
||||
#include <IntCurveSurface_PolygonTool.gxx>
|
||||
|
||||
171
src/IntCurveSurface/IntCurveSurface_ThePolyhedronOfHInter.hxx
Normal file
171
src/IntCurveSurface/IntCurveSurface_ThePolyhedronOfHInter.hxx
Normal file
@@ -0,0 +1,171 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_ThePolyhedronOfHInter_HeaderFile
|
||||
#define _IntCurveSurface_ThePolyhedronOfHInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <Bnd_HArray1OfBox.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Address.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class gp_Pnt;
|
||||
class Bnd_Box;
|
||||
class gp_XYZ;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_ThePolyhedronOfHInter
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurveSurface_ThePolyhedronOfHInter(const Handle(Adaptor3d_HSurface)& Surface, const Standard_Integer nbdU, const Standard_Integer nbdV, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT IntCurveSurface_ThePolyhedronOfHInter(const Handle(Adaptor3d_HSurface)& Surface, const TColStd_Array1OfReal& Upars, const TColStd_Array1OfReal& Vpars);
|
||||
|
||||
Standard_EXPORT void Destroy();
|
||||
~IntCurveSurface_ThePolyhedronOfHInter()
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
|
||||
Standard_EXPORT void DeflectionOverEstimation (const Standard_Real flec);
|
||||
|
||||
Standard_EXPORT Standard_Real DeflectionOnTriangle (const Handle(Adaptor3d_HSurface)& Surface, const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT void UMinSingularity (const Standard_Boolean Sing);
|
||||
|
||||
Standard_EXPORT void UMaxSingularity (const Standard_Boolean Sing);
|
||||
|
||||
Standard_EXPORT void VMinSingularity (const Standard_Boolean Sing);
|
||||
|
||||
Standard_EXPORT void VMaxSingularity (const Standard_Boolean Sing);
|
||||
|
||||
Standard_EXPORT void Size (Standard_Integer& nbdu, Standard_Integer& nbdv) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbTriangles() const;
|
||||
|
||||
Standard_EXPORT void Triangle (const Standard_Integer Index, Standard_Integer& P1, Standard_Integer& P2, Standard_Integer& P3) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer TriConnex (const Standard_Integer Triang, const Standard_Integer Pivot, const Standard_Integer Pedge, Standard_Integer& TriCon, Standard_Integer& OtherP) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbPoints() const;
|
||||
|
||||
Standard_EXPORT void Point (const gp_Pnt& thePnt, const Standard_Integer lig, const Standard_Integer col, const Standard_Real U, const Standard_Real V);
|
||||
|
||||
Standard_EXPORT const gp_Pnt& Point (const Standard_Integer Index, Standard_Real& U, Standard_Real& V) const;
|
||||
|
||||
Standard_EXPORT const gp_Pnt& Point (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT void Point (const Standard_Integer Index, gp_Pnt& P) const;
|
||||
|
||||
Standard_EXPORT const Bnd_Box& Bounding() const;
|
||||
|
||||
Standard_EXPORT void FillBounding();
|
||||
|
||||
Standard_EXPORT const Handle(Bnd_HArray1OfBox)& ComponentsBounding() const;
|
||||
|
||||
Standard_EXPORT Standard_Real DeflectionOverEstimation() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean HasUMinSingularity() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean HasUMaxSingularity() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean HasVMinSingularity() const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean HasVMaxSingularity() const;
|
||||
|
||||
Standard_EXPORT void PlaneEquation (const Standard_Integer Triang, gp_XYZ& NormalVector, Standard_Real& PolarDistance) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Contain (const Standard_Integer Triang, const gp_Pnt& ThePnt) const;
|
||||
|
||||
Standard_EXPORT void Parameters (const Standard_Integer Index, Standard_Real& U, Standard_Real& V) const;
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsOnBound (const Standard_Integer Index1, const Standard_Integer Index2) const;
|
||||
|
||||
Standard_Real GetBorderDeflection() const;
|
||||
|
||||
Standard_EXPORT void Dump() const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
Standard_EXPORT void Init (const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real U1, const Standard_Real V1, const Standard_Real U2, const Standard_Real V2);
|
||||
|
||||
Standard_EXPORT void Init (const Handle(Adaptor3d_HSurface)& Surface, const TColStd_Array1OfReal& Upars, const TColStd_Array1OfReal& Vpars);
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Real ComputeBorderDeflection (const Handle(Adaptor3d_HSurface)& Surface, const Standard_Real Parameter, const Standard_Real PMin, const Standard_Real PMax, const Standard_Boolean isUIso) const;
|
||||
|
||||
|
||||
Standard_Integer nbdeltaU;
|
||||
Standard_Integer nbdeltaV;
|
||||
Bnd_Box TheBnd;
|
||||
Handle(Bnd_HArray1OfBox) TheComponentsBnd;
|
||||
Standard_Real TheDeflection;
|
||||
Standard_Address C_MyPnts;
|
||||
Standard_Address C_MyU;
|
||||
Standard_Address C_MyV;
|
||||
Standard_Boolean UMinSingular;
|
||||
Standard_Boolean UMaxSingular;
|
||||
Standard_Boolean VMinSingular;
|
||||
Standard_Boolean VMaxSingular;
|
||||
Standard_Real TheBorderDeflection;
|
||||
Standard_Address C_MyIsOnBounds;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define IntCurveSurface_Polyhedron IntCurveSurface_ThePolyhedronOfHInter
|
||||
#define IntCurveSurface_Polyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
|
||||
#include <IntCurveSurface_Polyhedron.lxx>
|
||||
|
||||
#undef ThePSurface
|
||||
#undef ThePSurface_hxx
|
||||
#undef ThePSurfaceTool
|
||||
#undef ThePSurfaceTool_hxx
|
||||
#undef IntCurveSurface_Polyhedron
|
||||
#undef IntCurveSurface_Polyhedron_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_ThePolyhedronOfHInter_HeaderFile
|
||||
@@ -0,0 +1,34 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <gp_XYZ.hxx>
|
||||
|
||||
|
||||
#define ThePSurface Handle(Adaptor3d_HSurface)
|
||||
#define ThePSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define ThePSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define ThePSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define IntCurveSurface_Polyhedron IntCurveSurface_ThePolyhedronOfHInter
|
||||
#define IntCurveSurface_Polyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#include <IntCurveSurface_Polyhedron.gxx>
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_ThePolyhedronToolOfHInter_HeaderFile
|
||||
#define _IntCurveSurface_ThePolyhedronToolOfHInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Bnd_HArray1OfBox.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class IntCurveSurface_ThePolyhedronOfHInter;
|
||||
class Bnd_Box;
|
||||
class gp_Pnt;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_ThePolyhedronToolOfHInter
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
static const Bnd_Box& Bounding (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
static const Handle(Bnd_HArray1OfBox)& ComponentsBounding (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
static Standard_Real DeflectionOverEstimation (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
static Standard_Integer NbTriangles (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
static void Triangle (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const Standard_Integer Index, Standard_Integer& P1, Standard_Integer& P2, Standard_Integer& P3);
|
||||
|
||||
static const gp_Pnt& Point (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const Standard_Integer Index);
|
||||
|
||||
static Standard_Integer TriConnex (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const Standard_Integer Triang, const Standard_Integer Pivot, const Standard_Integer Pedge, Standard_Integer& TriCon, Standard_Integer& OtherP);
|
||||
|
||||
static Standard_Boolean IsOnBound (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh, const Standard_Integer Index1, const Standard_Integer Index2);
|
||||
|
||||
static Standard_Real GetBorderDeflection (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
Standard_EXPORT static void Dump (const IntCurveSurface_ThePolyhedronOfHInter& thePolyh);
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define ThePolyhedron IntCurveSurface_ThePolyhedronOfHInter
|
||||
#define ThePolyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#define IntCurveSurface_PolyhedronTool IntCurveSurface_ThePolyhedronToolOfHInter
|
||||
#define IntCurveSurface_PolyhedronTool_hxx <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
|
||||
#include <IntCurveSurface_PolyhedronTool.lxx>
|
||||
|
||||
#undef ThePolyhedron
|
||||
#undef ThePolyhedron_hxx
|
||||
#undef IntCurveSurface_PolyhedronTool
|
||||
#undef IntCurveSurface_PolyhedronTool_hxx
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_ThePolyhedronToolOfHInter_HeaderFile
|
||||
@@ -0,0 +1,30 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
|
||||
|
||||
#define ThePolyhedron IntCurveSurface_ThePolyhedronOfHInter
|
||||
#define ThePolyhedron_hxx <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#define IntCurveSurface_PolyhedronTool IntCurveSurface_ThePolyhedronToolOfHInter
|
||||
#define IntCurveSurface_PolyhedronTool_hxx <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
#include <IntCurveSurface_PolyhedronTool.gxx>
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_TheQuadCurvExactHInter_HeaderFile
|
||||
#define _IntCurveSurface_TheQuadCurvExactHInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_SequenceOfReal.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class Adaptor3d_HSurface;
|
||||
class Adaptor3d_HSurfaceTool;
|
||||
class Adaptor3d_HCurve;
|
||||
class IntCurveSurface_TheHCurveTool;
|
||||
class IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_TheQuadCurvExactHInter
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheQuadCurvExactHInter(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsDone() const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbRoots() const;
|
||||
|
||||
Standard_EXPORT Standard_Real Root (const Standard_Integer Index) const;
|
||||
|
||||
Standard_EXPORT Standard_Integer NbIntervals() const;
|
||||
|
||||
Standard_EXPORT void Intervals (const Standard_Integer Index, Standard_Real& U1, Standard_Real& U2) const;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
Standard_Integer nbpnts;
|
||||
TColStd_SequenceOfReal pnts;
|
||||
Standard_Integer nbintv;
|
||||
TColStd_SequenceOfReal intv;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_TheQuadCurvExactHInter_HeaderFile
|
||||
@@ -0,0 +1,39 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_TheQuadCurvExactHInter.hxx>
|
||||
|
||||
#include <Adaptor3d_HSurface.hxx>
|
||||
#include <Adaptor3d_HSurfaceTool.hxx>
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#include <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
|
||||
|
||||
|
||||
#define TheSurface Handle(Adaptor3d_HSurface)
|
||||
#define TheSurface_hxx <Adaptor3d_HSurface.hxx>
|
||||
#define TheSurfaceTool Adaptor3d_HSurfaceTool
|
||||
#define TheSurfaceTool_hxx <Adaptor3d_HSurfaceTool.hxx>
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheCurveTool IntCurveSurface_TheHCurveTool
|
||||
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#define IntCurveSurface_TheQuadCurvFunc IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter
|
||||
#define IntCurveSurface_TheQuadCurvFunc_hxx <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
|
||||
#define IntCurveSurface_QuadricCurveExactInter IntCurveSurface_TheQuadCurvExactHInter
|
||||
#define IntCurveSurface_QuadricCurveExactInter_hxx <IntCurveSurface_TheQuadCurvExactHInter.hxx>
|
||||
#include <IntCurveSurface_QuadricCurveExactInter.gxx>
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter_HeaderFile
|
||||
#define _IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter_HeaderFile
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <math_FunctionWithDerivative.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class Adaptor3d_HCurve;
|
||||
class IntSurf_Quadric;
|
||||
class IntCurveSurface_TheHCurveTool;
|
||||
|
||||
|
||||
|
||||
class IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter : public math_FunctionWithDerivative
|
||||
{
|
||||
public:
|
||||
|
||||
DEFINE_STANDARD_ALLOC
|
||||
|
||||
|
||||
Standard_EXPORT IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter(const IntSurf_Quadric& Q, const Handle(Adaptor3d_HCurve)& C);
|
||||
|
||||
Standard_EXPORT Standard_Boolean Value (const Standard_Real Param, Standard_Real& F) Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Derivative (const Standard_Real Param, Standard_Real& D) Standard_OVERRIDE;
|
||||
|
||||
Standard_EXPORT Standard_Boolean Values (const Standard_Real Param, Standard_Real& F, Standard_Real& D) Standard_OVERRIDE;
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
|
||||
IntSurf_Quadric myQuadric;
|
||||
Handle(Adaptor3d_HCurve) myCurve;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endif // _IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter_HeaderFile
|
||||
@@ -0,0 +1,33 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#include <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
|
||||
|
||||
#include <Adaptor3d_HCurve.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
|
||||
|
||||
#define TheQuadric IntSurf_Quadric
|
||||
#define TheQuadric_hxx <IntSurf_Quadric.hxx>
|
||||
#define TheCurve Handle(Adaptor3d_HCurve)
|
||||
#define TheCurve_hxx <Adaptor3d_HCurve.hxx>
|
||||
#define TheCurveTool IntCurveSurface_TheHCurveTool
|
||||
#define TheCurveTool_hxx <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#define IntCurveSurface_QuadricCurveFunc IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter
|
||||
#define IntCurveSurface_QuadricCurveFunc_hxx <IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx>
|
||||
#include <IntCurveSurface_QuadricCurveFunc.gxx>
|
||||
|
||||
45
src/IntCurveSurface/IntCurveSurface_TransitionOnCurve.hxx
Normal file
45
src/IntCurveSurface/IntCurveSurface_TransitionOnCurve.hxx
Normal file
@@ -0,0 +1,45 @@
|
||||
// Created on: 1993-04-07
|
||||
// Created by: Laurent BUCHARD
|
||||
// Copyright (c) 1993-1999 Matra Datavision
|
||||
// Copyright (c) 1999-2014 OPEN CASCADE SAS
|
||||
//
|
||||
// This file is part of Open CASCADE Technology software library.
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or modify it under
|
||||
// the terms of the GNU Lesser General Public License version 2.1 as published
|
||||
// by the Free Software Foundation, with special exception defined in the file
|
||||
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
|
||||
// distribution for complete text of the license and disclaimer of any warranty.
|
||||
//
|
||||
// Alternatively, this file may be used under the terms of Open CASCADE
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
#ifndef _IntCurveSurface_TransitionOnCurve_HeaderFile
|
||||
#define _IntCurveSurface_TransitionOnCurve_HeaderFile
|
||||
|
||||
|
||||
//! \ Uo ^ \ U1 ^
|
||||
//! \ | n \ | n
|
||||
//! Surf ====\======|=== ====\======|===
|
||||
//! \ . \ .
|
||||
//! \ . \ .
|
||||
//! U1 \ . Uo \ .
|
||||
//!
|
||||
//! ( In ) ( Out )
|
||||
//!
|
||||
//! \ /
|
||||
//! \ /
|
||||
//! \ /
|
||||
//! \ /
|
||||
//! Surf =====-----=====
|
||||
//!
|
||||
//! ( Tangent )
|
||||
//! Crb and Surf are C1
|
||||
enum IntCurveSurface_TransitionOnCurve
|
||||
{
|
||||
IntCurveSurface_Tangent,
|
||||
IntCurveSurface_In,
|
||||
IntCurveSurface_Out
|
||||
};
|
||||
|
||||
#endif // _IntCurveSurface_TransitionOnCurve_HeaderFile
|
||||
Reference in New Issue
Block a user