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

CellNB is a cell without boundaries(No Boundaries). [詳解]

MGCellNB の継承関係図
MGCellBase MGTopology MGObject MGAttribedGel MGGel MGBVertex MGCell MGEdge MGFace

公開型

enum  CELL_KIND { UNKNOWN =0, PCELL =1, BCELL =2 }
 
typedef std::vector
< MGCellBase * >::iterator 
partnerItr
 
typedef std::vector< const
MGCellBase * >::const_iterator 
const_partnerItr
 
typedef std::vector
< MGCellBase * >
::reverse_iterator 
partnerRItr
 
typedef std::vector< const
MGCellBase * >
::const_reverse_iterator 
const_partnerRItr
 

公開メンバ関数

 MGCellNB ()
 Void constructor. Constructor of pcell. [詳解]
 
 MGCellNB (const MGCellNB &cell)
 
 MGCellNB (const MGGeometry &geo)
 
 MGCellNB (MGGeometry *geo)
 
 MGCellNB (MGGeometry *geo, MGCellNB *binder)
 
virtual ~MGCellNB ()
 
virtual MGCellNBoperator= (const MGCellNB &gel2)
 
virtual MGCellNBoperator+= (const MGVector &v)
 Object transformation. [詳解]
 
virtual MGCellNBoperator-= (const MGVector &v)
 
virtual MGCellNBoperator*= (double scale)
 
virtual MGCellNBoperator*= (const MGMatrix &mat)
 
virtual MGCellNBoperator*= (const MGTransf &tr)
 
void add_partner (const MGCellBase &partner)
 
const MGBoxbox () const =0
 Obtain the box of the cell. [詳解]
 
MGPosition center () const
 Obtain the center of this cell. [詳解]
 
virtual MGPosition center_param () const =0
 Obtain the center parameter value of this cell. [詳解]
 
virtual MGCellNBclone () const =0
 
virtual MGCellNBclone_without_boundaries () const =0
 
virtual MGCellNBclone_binder (const MGCellBase &c) const =0
 
virtual MGUnit_vector direction () const
 Obtain the direction of the cell. [詳解]
 
virtual void draw3DVertex (mgVBO &vbo) const =0
 
const MGGeometryextent () const
 Get extent geometry, may be null if this does not have extent. [詳解]
 
MGGeometryextent ()
 
MGGeometryfree_extent ()
 
MGComplexfree_from_parent ()
 
virtual void free_neighbourhood (int i, int j=0)=0
 Free neighbourhood relation at j-th boundary's i-th pcell of this cell. [詳解]
 
void free_partner (const MGCellBase *cellin) const
 Free specified partner(cellin). [詳解]
 
virtual long identify_type () const =0
 Return Object's type ID (TID) [詳解]
 
bool is_bcell () const
 Ask if this is binder cell. [詳解]
 
virtual MGCellNBmake_binder () const =0
 
virtual int manifold_dimension () const =0
 Obtain manifold dimension. [詳解]
 
const MGCellBasemember_partner (int i) const
 Obtain the i-th member partner. This must be a binder cell. [詳解]
 
const std::vector< const
MGCellBase * > & 
member_partners () const
 Obtain member partners. This must be a binder cell. [詳解]
 
std::vector< const MGCellBase * > & member_partners ()
 
virtual void negate ()
 Negate the direction of the cell. [詳解]
 
int number_of_partner_members () const
 Return nummber of partners stored in m_partners. [詳解]
 
virtual std::vector< const
MGCellNB * > 
neighbours () const =0
 
virtual double parameter_error () const =0
 Return parameter space error of the cell. [詳解]
 
const MGComplexparent_complex () const
 Obtain parent complex. [詳解]
 
MGComplexparent_complex ()
 
virtual void set_extent (MGGeometry *extent=0)
 Set extent of this cell. [詳解]
 
const MGCellNBstar () const
 Obtain star cells. [詳解]
 
MGCellNBstar ()
 
virtual std::ostream & out (std::ostream &) const
 Output virtual function. [詳解]
 
virtual std::string whoami () const
 
- 基底クラス MGCellBase に属する継承公開メンバ関数
 MGCellBase ()
 Void constructor. Constructor of pcell. [詳解]
 
 MGCellBase (const MGCellBase &cell)
 
virtual ~MGCellBase ()
 
virtual MGCellBaseoperator= (const MGCellBase &gel2)
 
MGCellNBbinder () const
 Obtain binder. [詳解]
 
virtual void connect (MGCellBase &cell2)
 
virtual void drawWire_in_star (mgVBO &vbo, double span_length, int line_density=1) const
 
virtual void draw3DVertex_in_star (mgVBO &vbo) const
 
void free_partnership ()
 
bool is_pcell () const
 Ask if this is parameter cell. [詳解]
 
const MGCellNBmake_binder_with_extent () const
 
int number_of_partners () const
 
std::vector< const MGCellBase * > partners () const
 
void set_binder (MGCellNB &binder) const
 
- 基底クラス MGTopology に属する継承公開メンバ関数
 MGTopology ()
 Void constructor(初期化なしでオブジェクトを作成する。) [詳解]
 
 MGTopology (const MGTopology &topo)
 Copy constructor. [詳解]
 
virtual ~MGTopology ()
 
virtual MGTopologyoperator= (const MGTopology &gel2)
 
virtual MGisects intersection (const MGObject &obj2) const
 
virtual MGisects intersection (const MGCurve &obj2) const
 
virtual MGisects intersection (const MGFSurface &obj2) const
 
virtual MGisects intersection (const MGSurface &obj2) const
 
virtual MGisects intersection (const MGFace &obj2) const
 
virtual MGisects intersection (const MGShell &obj2) const
 
MGTopologytopology ()
 Return MGTopology pointer if this MGGel is an MGTopology, else return null. [詳解]
 
const MGTopologytopology () const
 
- 基底クラス MGObject に属する継承公開メンバ関数
 MGObject ()
 Void constructor(初期化なしでオブジェクトを作成する。) [詳解]
 
 MGObject (const MGObject &obj2)
 Copy constructor. [詳解]
 
virtual ~MGObject ()
 Virtual Destructor. [詳解]
 
virtual MGObjectoperator= (const MGObject &obj2)
 
MGAppearanceappearance ()
 
const MGAppearanceappearance () const
 
virtual void drawWire (mgVBO &vbo, double span_length, int line_density=1) const =0
 
virtual void shade (mgVBO &vbo, const MGDrawParam &para, mgVBO::ELEMENT_TARGET target=mgVBO::SHADING) const
 Shade the object in world coordinates. [詳解]
 
MGAppearanceensure_appearance ()
 
virtual void make_display_list (MGCL::VIEWMODE vmode=MGCL::DONTCARE) const
 Make a display list of this gel. [詳解]
 
bool has_common (const MGObject &obj2) const
 
const MGObjectincludes_object () const
 Test if this gel includes an object. [詳解]
 
MGObjectincludes_object ()
 Test if this gel includes an object. [詳解]
 
virtual MGisects intersection (const MGPoint &obj2) const
 
virtual MGPosition pick_closest (const MGStraight &sl) const
 
void remove_appearance ()
 Remove the MGAppearance of this MGAttribedGel. [詳解]
 
virtual MGObjectobject ()
 Return MGObject pointer if this MGGel is an MGObject, else return null. [詳解]
 
virtual const MGObjectobject () const
 
virtual const MGFSurfacefsurface () const
 Get the MGFSurface pointer if this is MGSurface or MGFace. [詳解]
 
virtual MGFSurfacefsurface ()
 
void set_appearance (const MGAppearance &appr2)
 
virtual void transform (const MGVector &v)
 Transform the gel by the argument. [詳解]
 
virtual void transform (double scale)
 translation [詳解]
 
virtual void transform (const MGMatrix &mat)
 scaling. [詳解]
 
virtual void transform (const MGTransf &tr)
 matrix transformation. [詳解]
 
- 基底クラス MGAttribedGel に属する継承公開メンバ関数
 MGAttribedGel ()
 void constructor. [詳解]
 
 MGAttribedGel (const MGAttribedGel &gel2)
 copy constructor. [詳解]
 
virtual MGAttribedGeloperator= (const MGAttribedGel &gel2)
 
virtual ~MGAttribedGel ()
 
void copy_appearance (const MGAttribedGel &gel2)
 
mgVBOdlist_name () const
 
virtual bool displayList_is_made (MGCL::VIEWMODE vmode) const
 Judge if the display list for vmode is made or not. [詳解]
 
void deleteDlistName () const
 
virtual void drawAttrib (mgVBO &vbo, bool no_color=false) const
 Process of draw or render attributes. [詳解]
 
virtual void render_attribute () const
 
virtual int get_draw_attrib_mask () const
 Obtain attribute mask for glPushAttrib(). [詳解]
 
virtual int get_render_attrib_mask () const
 
int getVBOElementsNumber () const
 Get the number of elements of m_dlistName. [詳解]
 
int getVBOShaderElementsNumber () const
 Get the number of shading elements of m_dlistName. [詳解]
 
virtual bool no_display () const
 
void remove_GLattrib (long tid)
 Removed the attribute of specified type. [詳解]
 
virtual void set_GLattrib (MGGLAttrib *attr)
 
virtual void set_display ()
 Set this group as display or no display group. [詳解]
 
virtual void set_no_display ()
 
bool visible () const
 
void set_name (const MGName &newName)
 
const MGNameget_name () const
 
void set_color (const MGColor &newColor)
 
const MGColorget_color () const
 
void setDlistName (mgVBO *vbo=0) const
 
void setDirty (bool is_dirty) const
 Set dirty flag(s) of this VBO(m_dlistName). [詳解]
 
- 基底クラス MGGel に属する継承公開メンバ関数
virtual ~MGGel ()
 Virtual Destructor. [詳解]
 
virtual MGGeloperator= (const MGGel &gel2)
 
virtual bool operator== (const MGGel &gel2) const
 Comparison. [詳解]
 
virtual bool operator!= (const MGGel &gel2) const
 
virtual bool operator< (const MGGel &gel2) const
 
virtual bool operator> (const MGGel &gel2) const
 
virtual int out_to_IGES (MGIgesOfstream &igesfile, int SubordinateEntitySwitch=0) const
 
virtual MGAttribattrib ()
 Return MGAttrib pointer if this MGGel is an MGAttrib, else return null. [詳解]
 
virtual const MGAttribattrib () const
 
virtual MGGroupgroup ()
 Return MGGroup pointer if this MGGel is an MGGroup, else return null. [詳解]
 
virtual const MGGroupgroup () const
 
virtual MGGeometrygeometry ()
 Return MGGeometry pointer if this MGGel is an MGGeometry, else return null. [詳解]
 
virtual const MGGeometrygeometry () const
 
virtual MGPointpoint ()
 Return point pointer if this MGGel is an MGPoint, else return null. [詳解]
 
virtual const MGPointpoint () const
 
virtual MGCurvecurve ()
 Return curve pointer if this MGGel is an MGCurve, else return null. [詳解]
 
virtual const MGCurvecurve () const
 
virtual MGSurfacesurf ()
 Return MGSurface pointer if this MGGel is an MGSurface, else return null. [詳解]
 
virtual const MGSurfacesurf () const
 
virtual MGFaceface ()
 Return MGFace pointer if this MGGel is an MGFace, else return null. [詳解]
 
virtual const MGFaceface () const
 
virtual MGShellshell ()
 Return MGShell pointer if this MGGel is an MGShell, else return null. [詳解]
 
virtual const MGShellshell () const
 
std::string string_content () const
 
bool type_is (const MGAbstractGels &types) const
 
virtual void display_arrows (mgSysGL &sgl) const
 
virtual void display_break_points (mgSysGL &sgl) const
 
virtual void display_control_polygon (mgSysGL &sgl) const
 
virtual void display_curvatures (mgSysGL &sgl, double scale, int density, bool use_radius) const
 

限定公開メンバ関数

bool bn_binder_tr_necessary () const
 check if boundary's binder transformation is necessary or not. [詳解]
 
virtual MGCellNBclone (MGCellMap &cmap) const
 
virtual void compute_box () const =0
 compute box of the cell in m_box. [詳解]
 
bool is_less_than (const MGCellNB &cell2) const
 Cell comparison. [詳解]
 
virtual void ReadMembers (MGIfstream &buf)
 Read Object's member data. [詳解]
 
virtual void WriteMembers (MGOfstream &buf) const
 Write Object's Member Data. [詳解]
 
MGCellNBset_cellnb (const MGCellNB &cell2)
 
- 基底クラス MGCellBase に属する継承限定公開メンバ関数
MGCellBaseset_cellbase (const MGCellBase &cb2)
 
- 基底クラス MGObject に属する継承限定公開メンバ関数
MGObjectset_object (const MGObject &gel2)
 

限定公開変数類

MGComplexm_parent_complex
 
MGGeometrym_extent
 Geometry. [詳解]
 
std::vector< const MGCellBase * > m_partners
 vector of partner cells who share this bcell(for bcell). [詳解]
 
- 基底クラス MGCellBase に属する継承限定公開変数類
MGCellNBm_binder
 
- 基底クラス MGAttribedGel に属する継承限定公開変数類
std::auto_ptr< mgVBOm_dlistName
 display name if m_dlistName!=0; [詳解]
 

詳解

CellNB is a cell without boundaries(No Boundaries).

MGCellNB ia an abstract class and the super class of MGBVertex, MGEdge, and MGCell. There are two types of cells. One is parameter cell(pcell) and the other is binder cell(bcell). They are exclusive, that is, if a cell is a parameter cell, the cell cannot be binder cell and vice versa. Parameter cell is a constituent of a complex and MGCellNB's are stored in MGComplex. Binder cell is a binder of parameter cells. Plural cells are connected through a binder.

型定義メンバ詳解

typedef std::vector<const MGCellBase*>::const_iterator MGCellNB::const_partnerItr
typedef std::vector<const MGCellBase*>::const_reverse_iterator MGCellNB::const_partnerRItr
typedef std::vector<MGCellBase*>::iterator MGCellNB::partnerItr
typedef std::vector<MGCellBase*>::reverse_iterator MGCellNB::partnerRItr

構築子と解体子

MGCellNB::MGCellNB ( )

Void constructor. Constructor of pcell.

MGCellNB::MGCellNB ( const MGCellNB cell)

Copy constructor. Result cell is not a member of any complex. Partners of cell will not be copied.

MGCellNB::MGCellNB ( const MGGeometry geo)

CellNB of whole geometry(no boundary). The second form that input MGGeometry* takes the ownership of the geo into the MGCellNB, must not delete the object and the object must be newed one.

MGCellNB::MGCellNB ( MGGeometry geo)
explicit
引数
geoGeometry of this MGCellNB. Must be a newed object and the ownership is transfered to this.
MGCellNB::MGCellNB ( MGGeometry geo,
MGCellNB binder 
)

This constructor takes the ownership of geo. Construct a parameter cell whose binder cell is 'binder'.

引数
geoGeometry of this MGCellNB. Must be a newed object and the ownership is transfered to this.
binderCan be null.
virtual MGCellNB::~MGCellNB ( )
virtual

関数詳解

void MGCellNB::add_partner ( const MGCellBase partner)

Add partner to this binder cell. Can change pcell(of no binder) to binder cell. This must be newed binder since this pointer will be registered in the partner's binder pointer.

bool MGCellNB::bn_binder_tr_necessary ( ) const
inlineprotected

check if boundary's binder transformation is necessary or not.

const MGBox& MGCellNB::box ( ) const
pure virtual

Obtain the box of the cell.

MGCellBaseを実装しています。

MGEdge, MGCell, MGBVertexで実装されています。

MGPosition MGCellNB::center ( ) const

Obtain the center of this cell.

virtual MGPosition MGCellNB::center_param ( ) const
pure virtual

Obtain the center parameter value of this cell.

MGEdge, MGCell, MGBVertexで実装されています。

virtual MGCellNB* MGCellNB::clone ( ) const
pure virtual

Make a clone of the cell. clone() does not copy the binder cell relation.

MGCellBaseを実装しています。

MGFace, MGEdge, MGCell, MGBVertexで実装されています。

virtual MGCellNB* MGCellNB::clone ( MGCellMap &  cmap) const
protectedvirtual

Generate a new MGCellBase pointer by newing the original MGCellBase. This is a proprietry routine of MGComplex copy. Copy all boundary data, (but does not copy own binder cell relation) and register boundary binder association of new and old into cmap.

MGCellBaseを実装しています。

MGCell, MGBVertexで再実装されています。

virtual MGCellNB* MGCellNB::clone_binder ( const MGCellBase c) const
pure virtual

Make a clone of this(this is a binder), and set binder and member partner relation between the new binder and the cell c.

MGFace, MGEdge, MGCell, MGBVertexで実装されています。

virtual MGCellNB* MGCellNB::clone_without_boundaries ( ) const
pure virtual

Make a clone of the cell without boundaries. clone_without_boundaries() does not copy the binder cell relation.

MGCellBaseを実装しています。

MGFace, MGEdge, MGCell, MGBVertexで実装されています。

virtual void MGCellNB::compute_box ( ) const
protectedpure virtual

compute box of the cell in m_box.

MGCell, MGBVertexで実装されています。

virtual MGUnit_vector MGCellNB::direction ( ) const
virtual

Obtain the direction of the cell.

virtual void MGCellNB::draw3DVertex ( mgVBO vbo) const
pure virtual

Draw 3D point(vertex) in world coordinates. The object is converted to point(s) and is drawn. This is valid only for topology objects or MGPoint.

MGCellBaseを実装しています。

MGEdge, MGFace, MGCell, MGBVertexで実装されています。

const MGGeometry* MGCellNB::extent ( ) const
inline

Get extent geometry, may be null if this does not have extent.

MGGeometry* MGCellNB::extent ( )
inline
MGGeometry* MGCellNB::free_extent ( )

Free(but does not delete) the extent geometry. Freed extent is returned as the function's return value.

MGComplex* MGCellNB::free_from_parent ( )

Free from membership of the parent complex. free_from_parent() does not maintain the box of the complex this cell belonged to. And so, users of free_from_parent() must do it.

virtual void MGCellNB::free_neighbourhood ( int  i,
int  j = 0 
)
pure virtual

Free neighbourhood relation at j-th boundary's i-th pcell of this cell.

MGEdge, MGCell, MGBVertexで実装されています。

void MGCellNB::free_partner ( const MGCellBase cellin) const

Free specified partner(cellin).

virtual long MGCellNB::identify_type ( ) const
pure virtual

Return Object's type ID (TID)

MGGelを実装しています。

MGFace, MGEdge, MGCell, MGBVertexで実装されています。

bool MGCellNB::is_bcell ( ) const
inlinevirtual

Ask if this is binder cell.

MGCellBaseを実装しています。

bool MGCellNB::is_less_than ( const MGCellNB cell2) const
protected

Cell comparison.

virtual MGCellNB* MGCellNB::make_binder ( ) const
pure virtual

Make a binder cell of this parameter cell. Returned is the binder pointer generated by new. The binder has no geometry, only has binder and parameter cell relationship.

MGCellBaseを実装しています。

MGFace, MGEdge, MGCell, MGBVertexで実装されています。

virtual int MGCellNB::manifold_dimension ( ) const
pure virtual

Obtain manifold dimension.

MGCellBaseを実装しています。

MGFace, MGEdge, MGCell, MGBVertexで実装されています。

const MGCellBase* MGCellNB::member_partner ( int  i) const
inline

Obtain the i-th member partner. This must be a binder cell.

const std::vector<const MGCellBase*>& MGCellNB::member_partners ( ) const
inline

Obtain member partners. This must be a binder cell.

std::vector<const MGCellBase*>& MGCellNB::member_partners ( )
inline
virtual void MGCellNB::negate ( )
virtual

Negate the direction of the cell.

MGCellBaseを実装しています。

MGFace, MGEdgeで再実装されています。

virtual std::vector<const MGCellNB*> MGCellNB::neighbours ( ) const
pure virtual

Obtain all the neighbours. The neighbours do not contain this cell except when this cell is connected to this cell itself(closed cell).

MGEdge, MGCell, MGBVertexで実装されています。

int MGCellNB::number_of_partner_members ( ) const
inline

Return nummber of partners stored in m_partners.

virtual MGCellNB& MGCellNB::operator*= ( double  scale)
virtual

MGCellBaseを実装しています。

MGEdgeで再実装されています。

virtual MGCellNB& MGCellNB::operator*= ( const MGMatrix mat)
virtual

MGCellBaseを実装しています。

MGEdgeで再実装されています。

virtual MGCellNB& MGCellNB::operator*= ( const MGTransf tr)
virtual

MGCellBaseを実装しています。

MGEdgeで再実装されています。

virtual MGCellNB& MGCellNB::operator+= ( const MGVector v)
virtual

Object transformation.

MGCellBaseを実装しています。

MGEdgeで再実装されています。

virtual MGCellNB& MGCellNB::operator-= ( const MGVector v)
virtual

MGCellBaseを実装しています。

MGEdgeで再実装されています。

virtual MGCellNB& MGCellNB::operator= ( const MGCellNB gel2)
virtual

Assignment. When the leaf object of this and cb2 are not equal, this assignment does nothing.

virtual std::ostream& MGCellNB::out ( std::ostream &  ) const
virtual

Output virtual function.

MGCellBaseを再実装しています。

MGCell, MGFace, MGEdge, MGBVertexで再実装されています。

virtual double MGCellNB::parameter_error ( ) const
pure virtual

Return parameter space error of the cell.

MGEdge, MGCell, MGBVertexで実装されています。

const MGComplex* MGCellNB::parent_complex ( ) const
inline

Obtain parent complex.

MGComplex* MGCellNB::parent_complex ( )
inline
virtual void MGCellNB::ReadMembers ( MGIfstream buf)
protectedvirtual

Read Object's member data.

MGCellBaseを再実装しています。

MGFace, MGEdge, MGCell, MGBVertexで再実装されています。

MGCellNB& MGCellNB::set_cellnb ( const MGCellNB cell2)
protected

Assignment. does not change binder and partner relation, does not change parent complex.

virtual void MGCellNB::set_extent ( MGGeometry extent = 0)
virtual

Set extent of this cell.

const MGCellNB* MGCellNB::star ( ) const
virtual

Obtain star cells.

MGCellBaseを実装しています。

MGCellNB* MGCellNB::star ( )
virtual

MGCellBaseを実装しています。

virtual std::string MGCellNB::whoami ( ) const
inlinevirtual

MGCellBaseを再実装しています。

MGFace, MGEdge, MGCell, MGBVertexで再実装されています。

virtual void MGCellNB::WriteMembers ( MGOfstream buf) const
protectedvirtual

Write Object's Member Data.

set member datas. virtual void set_members( MGGeometry* geo);

MGCellBaseを再実装しています。

MGFace, MGEdge, MGCell, MGBVertexで再実装されています。

メンバ詳解

MGGeometry* MGCellNB::m_extent
protected

Geometry.

MGComplex* MGCellNB::m_parent_complex
mutableprotected

World of this cell. =Null, or m_parent_complex's parent boundary is null this cell is ordinary world cell, not parameter world.

std::vector<const MGCellBase*> MGCellNB::m_partners
mutableprotected

vector of partner cells who share this bcell(for bcell).


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