MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
CurveContinuity.h
1 /********************************************************************/
2 /* Copyright (c) 2015 DG Technologies Inc. and Yuzi Mizuno */
3 /* All rights reserved. */
4 /********************************************************************/
5 // CurveContinuity.h
6 
7 #if !defined( __MGCurveContinuity_H__)
8 #define __MGCurveContinuity_H__
9 
10 #include "mg/Unit_vector.h"
11 #include "mg/Position.h"
12 class MGCurve;
13 
18 
25 class MG_DLL_DECLR MGCurveContinuity{
26 public:
28  enum CONTINUITY{
29  DISCONT=-1,
30  G0=0,
31  G1,
32  G2,
33  };
34 
37  const MGCurve& curve1,
38  const MGCurve& curve2
39  );
40 
42  CONTINUITY get_continuity()const{return m_continuity;};
43 
45  const MGPosition& P1()const{return m_P1;};
46 
48  const MGPosition& P2()const{return m_P2;};
49 
51  double distance()const{return m_dist;};
52 
54  const MGUnit_vector& tan1()const{return m_tan1;};
55 
57  const MGUnit_vector& tan2()const{return m_tan2;};
58 
60  double tandiff()const{return m_tandiff;};
61 
63  const MGUnit_vector& normal1()const{return m_normal1;};
64 
66  const MGUnit_vector& normal2()const{return m_normal2;};
67 
69  double normaldiff()const{return m_normaldiff;};
70 
72  double curvature1()const{return m_curvature1;};
73 
75  double curvature2()const{return m_curvature2;};
76 
77 private:
79  CONTINUITY m_continuity;
80 
81  double m_param1;
82  double m_param2;
83 
84  MGPosition m_P1;
85  MGPosition m_P2;
86  double m_dist;
87 
88  MGUnit_vector m_tan1;
89  MGUnit_vector m_tan2;
90  double m_tandiff;
91 
92  double m_curvature1;
93  double m_curvature2;
94  MGUnit_vector m_normal1;
95  MGUnit_vector m_normal2;
96  double m_normaldiff;
97 };
98  // end of GEORelated group
100 #endif //__MGCurveContinuity_H__
MGCurve is an abstract class which represents a whole curve.
Definition: Curve.h:63
double tandiff() const
tan1 and tan2's angle in radian.
Definition: CurveContinuity.h:60
CONTINUITY get_continuity() const
Get the continuity of the two curves.
Definition: CurveContinuity.h:42
const MGPosition & P2() const
Get the curve2 position(start or end) that is closest to curve1.
Definition: CurveContinuity.h:48
const MGUnit_vector & normal2() const
Get curvature direction at P2().
Definition: CurveContinuity.h:66
Represent a positional data.
Definition: Position.h:28
double curvature1() const
Get curvature at P1().
Definition: CurveContinuity.h:72
Curve continuity measuring class.
Definition: CurveContinuity.h:25
double distance() const
Get the distance ot P1() and P2().
Definition: CurveContinuity.h:51
const MGUnit_vector & tan1() const
Get the tangent as P1().
Definition: CurveContinuity.h:54
const MGPosition & P1() const
Get the curve1 position(start or end) that is closest to curve2.
Definition: CurveContinuity.h:45
double normaldiff() const
Get the normal1 and normal2's angle in radian.
Definition: CurveContinuity.h:69
double curvature2() const
Get curvature at P2().
Definition: CurveContinuity.h:75
const MGUnit_vector & normal1() const
Get curvature direction at P1().
Definition: CurveContinuity.h:63
const MGUnit_vector & tan2() const
Get the tangent as P2().
Definition: CurveContinuity.h:57
Define a unit vector, is a MGVector.
Definition: Unit_vector.h:17