MGCL V10  V10
MGCL V10
 全て クラス 名前空間 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
MGSBRepVecTP クラス

Defines Tangent Plane Line B-Representation Class. [詳解]

公開メンバ関数

 MGSBRepVecTP ()
 Default Constructor, will be set as no TPs' are specified. [詳解]
 
 MGSBRepVecTP (const MGSBRepVecTP &vectp2)
 
 MGSBRepVecTP (const MGSBRepTP &tp2)
 Conversion constructor from ordinary MGSBRepTP. [詳解]
 
MGSBRepVecTPoperator= (const MGSBRepVecTP &vectp2)
 
void change_range (bool along_u, double t0, double t1)
 change the parameter range to (t0,t1). [詳解]
 
void change_range (bool along_u, const MGInterval &prange)
 change the parameter range to prange. [詳解]
 
bool eval (int i, double t, MGVector &normal) const
 
double get_perimeters_max_cos (const MGPvector< MGLBRep > &deris, double taumax[4], double cosmax[4]) const
 
double get_perimeters_max_sin (const MGSurface &srf, double taumax[4], double sinmax[4], bool *eval=0) const
 
bool specified (int i) const
 
void set_TP_null (int i)
 Set i-th perimeter's TP as a null, as an unspecified one. [詳解]
 
void set_TP (int i, MGPvector< MGLBRep > &vectp, const MGInterval &prange)
 
void set_TP (int i, std::vector< MGLBRep * > &vectp, const MGInterval &prange)
 
const MGPvector< MGLBRep > & vecTP (int i) const
 Return i-th perimeter's TP. [詳解]
 
MGPvector< MGLBRep > & vecTP (int i)
 
MGPvector< MGLBRep > * vecTP ()
 

フレンド

MG_DLL_DECLR friend std::ostream & operator<< (std::ostream &ostrm, const MGSBRepVecTP &vectp)
 String stream Function. [詳解]
 

詳解

Defines Tangent Plane Line B-Representation Class.

Tangent plane is a line b-representation of (unit)normal vector of tangent plane along a surface perimeter. MGSBRepVecTP has a vector of 4 newed object pointer ofMGLBRep representing the normal vetor B-rep along the 4 perimeter of surface. And regarding to their ownership MGSBRepVecTP acts just like std::auto_ptr. That is, all of the ownership will be transfered to the copied, or assigned object. See the copy oroperator=() below.

構築子と解体子

MGSBRepVecTP::MGSBRepVecTP ( )
inline

Default Constructor, will be set as no TPs' are specified.

MGSBRepVecTP::MGSBRepVecTP ( const MGSBRepVecTP vectp2)

Copy Constructor. all of the ownership of m_TP of tp2 will be transfered to this object.

MGSBRepVecTP::MGSBRepVecTP ( const MGSBRepTP tp2)

Conversion constructor from ordinary MGSBRepTP.

関数詳解

void MGSBRepVecTP::change_range ( bool  along_u,
double  t0,
double  t1 
)

change the parameter range to (t0,t1).

引数
along_uthe objective range is along u parameter or v.
t0target range, from t0,
t1to t1.
void MGSBRepVecTP::change_range ( bool  along_u,
const MGInterval prange 
)

change the parameter range to prange.

引数
along_uthe objective range is along u parameter or v.
prangetarget range.
bool MGSBRepVecTP::eval ( int  i,
double  t,
MGVector normal 
) const

evaluate TP at the perimeter i's parameter t. Function's return value is: true if t was inside the parameter range of a tangent plane of m_TP[i]. false if t was outside the parameter range of the m_TP[i] for all i.

引数
iperimeter numeber.
tparameter vaule of perimeter i.
normalevaluated normal will be returned.
double MGSBRepVecTP::get_perimeters_max_cos ( const MGPvector< MGLBRep > &  deris,
double  taumax[4],
double  cosmax[4] 
) const

Compute the maximum (absolute) cos value of between vector deris[i](t) and vector this->TP(i)(t) for i=0,1,2,3, where t is a common parameter of the data point obtained from deris[i]'s knot vector. Function's return value is the max out of cosmax[.].

引数
deristhe size must be 4
taumaxparameter on which the maximum value attains will be stored
cosmaxthe maximum value will be stored
double MGSBRepVecTP::get_perimeters_max_sin ( const MGSurface srf,
double  taumax[4],
double  sinmax[4],
bool *  eval = 0 
) const

Compute the maximum (absolute) sin value of between vector srf.normal(uv(t)) and vector this->TP(i)(t) for i=0,1,2,3, where perim[i] is the same as srf.perimeter_curve(i), and t is a common parameter of deris[i] and TP(i). Function's return value is the max out of sinmax[.].

引数
srfsurface which must corresponds to this object
taumaxparameters on which the maximum value attains will be stored.
sinmaxthe maximum value will be stored.
evalindicates perimeters to evalate if eval!=null When eval[i] is true, perimeter i is evaluated for 0<=i<=3.
MGSBRepVecTP& MGSBRepVecTP::operator= ( const MGSBRepVecTP vectp2)

Assignment. all of the ownership of m_TP of tp2 will be transfered to this object.

void MGSBRepVecTP::set_TP ( int  i,
MGPvector< MGLBRep > &  vectp,
const MGInterval prange 
)

Set i-th perimeter's TP(copy version). vectp[i] must be newed objects, and all of the ownership will be transferer to this instance.

引数
iperimeter numeber.
vectpTP data.
prangeWhole perimeter's parameter range.
void MGSBRepVecTP::set_TP ( int  i,
std::vector< MGLBRep * > &  vectp,
const MGInterval prange 
)

Set i-th perimeter's TP(std::vector version). vectp[i] must be newed objects, and all of the ownership will be transferer to this instance.

引数
iperimeter number.
vectpTP data.
prangeWhole perimeter's parameter range.
void MGSBRepVecTP::set_TP_null ( int  i)

Set i-th perimeter's TP as a null, as an unspecified one.

bool MGSBRepVecTP::specified ( int  i) const
inline

Return true if at least one TP is specified at i-th perimeter. i=0, 2 are v=min and max u-parameter line. i=1, 3 are u=max and min v-parameter line.

const MGPvector<MGLBRep>& MGSBRepVecTP::vecTP ( int  i) const
inline

Return i-th perimeter's TP.

MGPvector<MGLBRep>& MGSBRepVecTP::vecTP ( int  i)
inline
MGPvector<MGLBRep>* MGSBRepVecTP::vecTP ( )
inline

フレンドと関連関数の詳解

MG_DLL_DECLR friend std::ostream& operator<< ( std::ostream &  ostrm,
const MGSBRepVecTP vectp 
)
friend

String stream Function.


このクラス詳解は次のファイルから抽出されました: