summaryrefslogtreecommitdiff
path: root/inc/IntCurve_IntConicConic_1.hxx
blob: 194ef8ca3bc9f7885f23f510c068c7471ec31c14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// File:	IntCurve_IntConicConic_1.hxx
// Created:	Wed May  6 16:13:16 1992
// Author:	Laurent BUCHARD
//		<lbr@topsn3>


#ifndef IntCurve_IntConicConic_1_HeaderFile
#define IntCurve_IntConicConic_1_HeaderFile

#include <IntCurve_IntConicConic_Tool.hxx>


//======================================================================
//===   I n t e r s e c t i o n    C e r c l e    C e r c l e      =====
//======================================================================

//----------------------------------------------------------------------
void CircleCircleGeometricIntersection(const gp_Circ2d& C1
				       ,const gp_Circ2d& C2
				       ,const Standard_Real Tol
				       ,PeriodicInterval& C1_Res1
				       ,PeriodicInterval& C1_Res2
				       ,Standard_Integer& nbsol);
//----------------------------------------------------------------------
void CircleCircleDomainIntersection(const gp_Circ2d& C1
				    ,const gp_Circ2d& C2
				    ,const Standard_Real Tol
				    ,PeriodicInterval& Res1
				    ,PeriodicInterval& C1_Res2
				    ,Standard_Integer& nbsol);
//----------------------------------------------------------------------
void ProjectOnC2AndIntersectWithC2Domain(const gp_Circ2d& Circle1
					 ,const gp_Circ2d& Circle2
					 ,PeriodicInterval& C1DomainAndRes
					 ,PeriodicInterval& C2Domain
					 ,PeriodicInterval* SolutionC1
					 ,PeriodicInterval* SolutionC2
					 ,Standard_Integer &NbSolTotal
					 ,const Standard_Boolean IdentCircles);



//======================================================================
//===   I n t e r s e c t i o n    L i g n e      C e r c l e      =====
//======================================================================
void LineCircleGeometricIntersection(const gp_Lin2d& Line
				     ,const gp_Circ2d& Circle
				     ,const Standard_Real Tol
				     ,PeriodicInterval& C1Int
				     ,PeriodicInterval& C2Int
				     ,Standard_Integer& nbsol);


void ProjectOnLAndIntersectWithLDomain(const gp_Circ2d& Circle
				       ,const gp_Lin2d& Line
				       ,PeriodicInterval& CDomainAndRes
				       ,Interval& LDomain
				       ,PeriodicInterval* CircleSolution
				       ,Interval* LineSolution
				       ,Standard_Integer &NbSolTotal);


//======================================================================
//===   I n t e r s e c t i o n    L i g n e      L i g n e        =====
//======================================================================

void DomainIntersection(const IntRes2d_Domain& Domain
			,const Standard_Real U1inf
			,const Standard_Real U1sup
			,Standard_Real& Res1inf
			,Standard_Real& Res1sup);

void LineLineGeometricIntersection(const gp_Lin2d& L1
				   ,const gp_Lin2d& L2
				   ,const Standard_Real Tol
				   ,Standard_Real& U1
				   ,Standard_Real& U2
				   ,Standard_Real& SinDemiAngle
				   ,Standard_Integer& nbsol);


#endif