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

Defines a Box of any space dimendion. [詳解]

公開メンバ関数

 MGBox (const MGBox &box2)
 Copy constructor. [詳解]
 
 MGBox (int dim=0)
 
 MGBox (const MGInterval &xspan, const MGInterval &yspan)
 
 MGBox (const MGInterval &xspan, const MGInterval &yspan, const MGInterval &zspan)
 
 MGBox (const MGPosition &center, double *size)
 
 MGBox (const MGPosition &center, double size=0.)
 
 MGBox (const MGPosition &, const MGPosition &)
 
 MGBox (const MGBox &, const MGPosition &)
 Construct Box which contains both input box and a point. [詳解]
 
 MGBox (int dim, const MGInterval *)
 
 MGBox (int dim, const MGBox &box, int start1=0, int start2=0)
 
 ~MGBox ()
 
MGBoxoperator= (const MGBox &box2)
 Assignment. [詳解]
 
const MGIntervaloperator[] (int i) const
 Return i-th Inteval. [詳解]
 
const MGIntervaloperator() (int i) const
 
MGIntervaloperator[] (int i)
 Access to i-th Inteval. [詳解]
 
MGIntervaloperator() (int i)
 
MGBox operator+ (const MGVector &v) const
 
MGBoxoperator+= (const MGVector &)
 
MGBox operator- (const MGVector &) const
 
MGBoxoperator-= (const MGVector &)
 
MGBox operator* (double) const
 
MGBox operator* (const MGMatrix &) const
 
MGBox operator* (const MGTransf &) const
 
MGBoxoperator*= (double scalar)
 
MGBoxoperator*= (const MGMatrix &)
 
MGBoxoperator*= (const MGTransf &)
 
MGBox operator/ (double a) const
 
MGBoxoperator/= (double)
 
MGBox operator| (const MGBox &) const
 
MGBoxoperator|= (const MGBox &)
 
MGBox operator& (const MGBox &) const
 
MGBoxoperator&= (const MGBox &)
 
bool operator== (const MGBox &box2) const
 
bool operator!= (const MGBox &box2) const
 
bool operator>> (const MGPosition &) const
 
bool operator>> (const MGBox &) const
 
bool operator<< (const MGPosition &pt) const
 
bool operator<< (const MGBox &box2) const
 
bool crossing (const MGStraight &sl) const
 
bool cutting (const MGPlane &plane) const
 
double distance (const MGPosition &P) const
 Compute the distance from a point to the box. [詳解]
 
int dump (MGOfstream &) const
 Dump Function. [詳解]
 
int dump_size () const
 Calculate dump size. [詳解]
 
void expand ()
 
void expand (double len)
 
void expand (double *len)
 
void expand (const MGPosition &P)
 Expand the box so that this contains the position P. [詳解]
 
bool empty () const
 
bool finite () const
 Return true if box is finite. [詳解]
 
MGPosition high () const
 
MGPosition low () const
 
MGPosition mid () const
 
bool includes_origin () const
 
bool includes (const MGPosition &P) const
 Test if the point P is included in this box. [詳解]
 
bool is_null () const
 Test if this is null box. [詳解]
 
double len () const
 
double length () const
 Return diagonal line length. [詳解]
 
const MGIntervalref (int i) const
 Reference to i-th Interval. [詳解]
 
int restore (MGIfstream &)
 Restore Function. [詳解]
 
int sdim () const
 Return space dimension. [詳解]
 
MGBoxset_high (const MGPosition &)
 
MGBoxset_low (const MGPosition &)
 
void set_null ()
 Set this box as a null box. [詳解]
 
MGINTERVAL_TYPE type (int i) const
 Return the type of i-th interval. [詳解]
 
std::vector< MGPositionvertex () const
 

フレンド

MG_DLL_DECLR friend MGBox operator+ (const MGVector &v, const MGBox &b)
 box translation. [詳解]
 
MG_DLL_DECLR friend MGBox operator* (double scale, const MGBox &)
 
MG_DLL_DECLR friend std::ostream & operator<< (std::ostream &, const MGBox &)
 Print out Debug Function. [詳解]
 

詳解

Defines a Box of any space dimendion.

MGBox expresses n-dimensional space range using MGInterval, which is one dimension range of double values. All of the MGObject's have box.

構築子と解体子

MGBox::MGBox ( const MGBox box2)

Copy constructor.

MGBox::MGBox ( int  dim = 0)
inlineexplicit

Void constructor. 初期化なしでBoxを生成する。

MGBox::MGBox ( const MGInterval xspan,
const MGInterval yspan 
)

Construct 2D Box, given x and y intervals. x,yの各インターバルを指定して2D Boxを生成する。

MGBox::MGBox ( const MGInterval xspan,
const MGInterval yspan,
const MGInterval zspan 
)

Construct 3D Box, given x, y, and z intervals. x,y,zの各インターバルを指定して3D Boxを生成する。

MGBox::MGBox ( const MGPosition center,
double *  size 
)

Construct Box, given center point and sizes of each coordinates. 中心点と各辺の幅を指定しBoxを生成する。 The size's dimension is center.sdim().

MGBox::MGBox ( const MGPosition center,
double  size = 0. 
)

Construct Box, given center point and a size of each coordinates. 中心点と幅を指定しBoxを生成する(すべての辺にたいして同一の値)。 The size is applied to all the coordinates.

MGBox::MGBox ( const MGPosition ,
const MGPosition  
)

Construct Box, given two points. 2点からBoxを生成する。

MGBox::MGBox ( const MGBox ,
const MGPosition  
)

Construct Box which contains both input box and a point.

MGBox::MGBox ( int  dim,
const MGInterval  
)

Construct Box by providing each Interval. ****This is the fundamental constructor.****

MGBox::MGBox ( int  dim,
const MGBox box,
int  start1 = 0,
int  start2 = 0 
)

Construct Box by copying old Box, changing space dimension and ordering of old coordinates. (*this)(start1)=box(start2), and so on.

引数
dimspace dimension.
boxoriginal box.
start1space dimension subscript of the constructed box for start2.
start2space dimension subscript of the input box.
MGBox::~MGBox ( )

関数詳解

bool MGBox::crossing ( const MGStraight sl) const

Test if the straight line sl is crossing this box or not. Function's return value is true if a part of sl is included in this box, false if not.

bool MGBox::cutting ( const MGPlane plane) const

Test if the plane is cutting this box or not. Function's return value is true: if the plane is cutting the box, false if all of the vertices of the box are in one side of the plane.

double MGBox::distance ( const MGPosition P) const

Compute the distance from a point to the box.

int MGBox::dump ( MGOfstream ) const

Dump Function.

int MGBox::dump_size ( ) const

Calculate dump size.

bool MGBox::empty ( ) const

Return ture if Box is empty. Boxが empty かどうか返却する

void MGBox::expand ( )

Expand the box by MGTolerance::rc_zero(). That is, operator*=(1.+ MGTolerance::rc_zero() ) will be executed.

void MGBox::expand ( double  len)

Expand the box by len. This box will be updated so that the center of the box will not be moved and the box is widened by len for each coordinate. That is, ref(i).high() is set to ref(i).high()+len and ref(i).low() is set to ref(i).low()-len for each i.

void MGBox::expand ( double *  len)

Expand the box by len[]. This box will be updated so that the center of the box will not be moved and the box is widened by len[i] for each coordinate. That is, ref(i).high() is set to ref(i).high()+len[i] and ref(i).low() is set to ref(i).low()-len[i] for each i.

void MGBox::expand ( const MGPosition P)

Expand the box so that this contains the position P.

bool MGBox::finite ( ) const

Return true if box is finite.

MGPosition MGBox::high ( ) const

Return maximum(high), minimum(low), or middle(mid) points of the Box. Boxの対角線の両端と中心を返却する。全ての座標値が 最小の点が low () で、最大の点が high () で返却される。

bool MGBox::includes ( const MGPosition P) const
inline

Test if the point P is included in this box.

bool MGBox::includes_origin ( ) const

Test if this includes the origin(0., 0., ...). 原点が自身のBox内に含まれているか返却する。

bool MGBox::is_null ( ) const
inline

Test if this is null box.

double MGBox::len ( ) const

Return diagonal line length. ボックスの対角線長さを求める

double MGBox::length ( ) const
inline

Return diagonal line length.

MGPosition MGBox::low ( ) const
MGPosition MGBox::mid ( ) const
bool MGBox::operator!= ( const MGBox box2) const
inline
MGBox MGBox::operator& ( const MGBox ) const

Generate a box by and operation (minimum box that is common to both boxes). 自身のBoxと与えられたBoxの共通部分のBoxを生成する。

MGBox& MGBox::operator&= ( const MGBox )

Uppdate the box by and operation (minimum box that is common to both boxes). 自身のBoxと与えられたBoxの共通部分のBoxを 自身のBoxとする。

const MGInterval& MGBox::operator() ( int  i) const
inline
MGInterval& MGBox::operator() ( int  i)
inline
MGBox MGBox::operator* ( double  ) const

Generate a box by scaling the box. The mid_point of the box does not change. The width of each interval is widened(narrowed) by the multiplication of the value scalar. Boxを拡大してできるオブジェクトを生成する。

MGBox MGBox::operator* ( const MGMatrix ) const

Generate a box by multiplying matrix to the original one. 与えられたマトリックスでBoxの変換を行いオブジェクトを生成する。

MGBox MGBox::operator* ( const MGTransf ) const

Generate a box by multiplying transformation to the original one. 与えられた変換でBoxの8点のトランスフォームを行い、 それらを囲むBoxのオブジェクトを生成する。

MGBox& MGBox::operator*= ( double  scalar)

自身のBoxを拡大し自身のBoxとする。 Update the box by scaling. The mid_point of the box does not change. The width of each interval is widened(narrowed) by the multiplication of the value scalar.

MGBox& MGBox::operator*= ( const MGMatrix )

update the box by multiplying matrix. 与えられたマトリックスでBoxの変換を行い自身のBoxとする。

MGBox& MGBox::operator*= ( const MGTransf )

update the box by multiplying transformation. 与えられた変換でBoxの8点のトランスフォームを行い、 それらを囲むBoxを自身のBoxとする。

MGBox MGBox::operator+ ( const MGVector v) const

Generate a box that translates the original one. Boxを順方向に平行移動してできるオブジェクトを生成する。

MGBox& MGBox::operator+= ( const MGVector )

Update the box by translation. Boxを順方向に平行移動し自身のBoxとする。

MGBox MGBox::operator- ( const MGVector ) const

Generate a box that translates the original one. Boxを逆方向に平行移動してできるオブジェクトを生成する。

MGBox& MGBox::operator-= ( const MGVector )

Update the box by translation. Boxを逆方向に平行移動し自身のBoxとする。

MGBox MGBox::operator/ ( double  a) const

Generate a box by scaling the box. The mid_point of the box does not change. The width of each interval is widened(narrowed) by the multiplication of the value a. Boxを縮小してできるオブジェクトを生成する。

MGBox& MGBox::operator/= ( double  )

Update the box by scaling. The mid_point of the box does not change. The width of each interval is widened(narrowed) by the multiplication of the value scalar. Boxを縮小し自身のBoxとする。

bool MGBox::operator<< ( const MGPosition pt) const
inline

Returns true if the box does not includes the position. 与えられたポジションが自身のBoxの範囲外にあるかどうか返却する。

bool MGBox::operator<< ( const MGBox box2) const
inline

Returns true if the box does not include the second box. 与えられたBoxが自身のBoxを囲んでいるかどうか返却する。

MGBox& MGBox::operator= ( const MGBox box2)

Assignment.

bool MGBox::operator== ( const MGBox box2) const

Equal and not equal operations of two boxes. 自身と与えられたBoxが等しいかどうかを返却する。 一方のBoxの全ての辺がもう一方の相当する辺に重なる場合 TRUE を返却する。

bool MGBox::operator>> ( const MGPosition ) const

与えられたポジションが自身のBox内に含まれているか返却する。 ポジションがBox内にある場合 TRUE を返却する。 完全にポジションが自身のBox内にある場合、含まれるとみなす。 Returns true if the box includes the position.

bool MGBox::operator>> ( const MGBox ) const

Returns true if the box includes the second box. 自身のBoxが与えられたBoxを囲んでいるか返却する。 与えられたBoxが自身のBox内にある場合 TRUE を返却する。 与えられたBoxがNULL の場合は、FALSE 。

const MGInterval& MGBox::operator[] ( int  i) const
inline

Return i-th Inteval.

MGInterval& MGBox::operator[] ( int  i)
inline

Access to i-th Inteval.

MGBox MGBox::operator| ( const MGBox ) const

Generate a box by or operation(minimum box that includes both boxes). 自身のBoxと与えられたBoxを内包する最小のBoxを生成する。

MGBox& MGBox::operator|= ( const MGBox )

Update the box by or operation(minimum box that includes both boxes). 自身のBoxと与えられたBoxを内包する最小のBoxを 自身のBoxとする。

const MGInterval& MGBox::ref ( int  i) const

Reference to i-th Interval.

int MGBox::restore ( MGIfstream )

Restore Function.

int MGBox::sdim ( ) const
inline

Return space dimension.

MGBox& MGBox::set_high ( const MGPosition )

Update maximum coordinate values by input data. 自身のBoxの最大座標値を指定された点に変更する.

MGBox& MGBox::set_low ( const MGPosition )

Update minimum coordinate values by input data. 自身のBoxの最小座標値を指定された点に変更する.

void MGBox::set_null ( )

Set this box as a null box.

MGINTERVAL_TYPE MGBox::type ( int  i) const
inline

Return the type of i-th interval.

std::vector<MGPosition> MGBox::vertex ( ) const

vertex computes all the vertices of the box. Return array of Position as the vertices.

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

MG_DLL_DECLR friend MGBox operator* ( double  scale,
const MGBox  
)
friend

Boxを拡大してできるオブジェクトを生成する. Generates a box by scaling.

MG_DLL_DECLR friend MGBox operator+ ( const MGVector v,
const MGBox b 
)
friend

box translation.

MG_DLL_DECLR friend std::ostream& operator<< ( std::ostream &  ,
const MGBox  
)
friend

Print out Debug Function.


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