1 -- Created on: 1992-03-09
2 -- Created by: Isabelle GRIGNON
3 -- Copyright (c) 1992-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
23 deferred generic class PathPointTool from IntWalk
26 ---Purpose: Template class to describe the necessary ressources
27 -- for a point used as a starting point for a marching
29 -- The 'marching algorithm' determines the intersection
30 -- between an implicit surface and a parametrized surface.
31 -- these points are necessary on an arc of the surface
37 raises OutOfRange from Standard,
38 UndefinedDerivative from StdFail
42 Value3d(myclass; PStart: PathPoint)
44 ---Purpose: Returns the 3d coordinates of the starting point.
49 Value2d(myclass; PStart: PathPoint; U, V: out Real from Standard);
51 ---Purpose: Returns the <U, V> parameters which are associated
53 -- it's the parameters which start the marching algorithm
56 IsPassingPnt(myclass; PStart: PathPoint)
58 ---Purpose: Returns True if the point is a point on a non-oriented
59 -- arc, which means that the intersection line does not
60 -- stop at such a point but just go through such a point.
61 -- IsPassingPnt is True when IsOnArc is True
63 returns Boolean from Standard;
66 IsTangent(myclass; PStart: PathPoint )
68 ---Purpose: Returns True if the surfaces are tangent at this point.
69 -- IsTangent can be True when IsOnArc is True
70 -- if IsPassingPnt is True and IsTangent is True,this point
71 -- is a stopped point.
73 returns Boolean from Standard;
76 Direction3d(myclass; PStart: PathPoint)
78 ---Purpose: returns the tangent at the intersection in 3d space
80 -- an exception is raised if IsTangent is true.
84 raises UndefinedDerivative from StdFail;
87 Direction2d(myclass; PStart: PathPoint)
89 ---Purpose: returns the tangent at the intersection in the
90 -- parametric space of the parametrized surface.This tangent
91 -- is associated to the value2d
92 -- la tangente a un sens signifiant (indique le sens de chemin
94 -- an exception is raised if IsTangent is true.
98 raises UndefinedDerivative from StdFail;
101 Multiplicity(myclass; PStart: PathPoint)
103 ---Purpose: Returns the multiplicity of the point i-e
104 -- the number of auxillar parameters associated to the
105 -- point which the principal parameters are given by Value2d
107 returns Integer from Standard;
110 Parameters(myclass; PStart: PathPoint;
111 Mult: Integer from Standard;
112 U, V: out Real from Standard)
114 ---Purpose: Parametric coordinates associated to the multiplicity.
115 -- An exception is raised if Mult<=0 or Mult>multiplicity.
117 raises OutOfRange from Standard;