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

MGEdge is an instance of MGCellNB, represents a boundary element of 2D manifold. [詳解]

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

公開メンバ関数

 MGEdge ()
 void constructor. [詳解]
 
 MGEdge (const MGEdge &e, bool copy_boundary=true, bool no_binder=false)
 Copy constructor. [詳解]
 
 MGEdge (MGGeometry *geo, MGPVertex *boundaries[2], MGCellNB *binder)
 
 MGEdge (const MGCurve &crv)
 
 MGEdge (MGCurve *crv)
 
 MGEdge (const MGCurve &crv, const MGInterval &range)
 
 MGEdge (MGCurve *crv, const MGInterval &range)
 
 MGEdge (const MGSurface &surf, const MGCurve &pcrv, const MGInterval &prange, const MGCurve &wcrv)
 
 ~MGEdge ()
 
MGEdgeoperator= (const MGGel &gel2)
 
MGEdgeoperator= (const MGEdge &gel2)
 
MGEdge operator+ (const MGVector &v) const
 
MGEdge operator- (const MGVector &v) const
 
MGEdge operator* (double s) const
 
MGEdge operator* (const MGMatrix &mat) const
 
MGEdge operator* (const MGTransf &tr) const
 
MGEdge operator/ (double s) const
 
bool operator== (const MGEdge &gel2) const
 Comparison of two objects. [詳解]
 
bool operator== (const MGGel &gel2) const
 Comparison. [詳解]
 
bool operator< (const MGEdge &gel2) const
 
bool operator< (const MGGel &gel2) const
 
bool operator!= (const MGGel &gel2) const
 
bool operator!= (const MGEdge &gel2) const
 
MGEdgeoperator+= (const MGVector &v)
 Object transformation. [詳解]
 
MGEdgeoperator-= (const MGVector &v)
 
MGEdgeoperator*= (double scale)
 
MGEdgeoperator*= (const MGMatrix &mat)
 
MGEdgeoperator*= (const MGTransf &tr)
 
std::ostream & out (std::ostream &ostrm) const
 Output virtual function. [詳解]
 
bool active_end () const
 Test if active at start or end. [詳解]
 
bool active_start () const
 
const MGEdgeaft_edge (bool at_end=true, int *vertexID=0) const
 
MGEdgeaft_edge (bool at_end=true, int *vertexID=0)
 
MGEdgebinder_edge () const
 
const MGBoxbox () const
 Obtain the box of the cell. [詳解]
 
MGPosition center_param () const
 Obtain the center parameter value of this cell. [詳解]
 
MGEdgeclone () const
 
MGEdgeclone_without_boundaries () const
 clone_without_boundaries() does not copy the binder cell relation. [詳解]
 
MGEdgeclone_binder (const MGCellBase &e) const
 
void compute_continuity (const MGEdge &edge2, double diatance[7], double tangent[4], double normal[4]) const
 
void connect (MGCellBase &cell2)
 
void connect (MGEdge &cell2)
 
void connect_at_id (int id1, MGEdge *e2, int id2)
 
void connect_at_start (MGPVertex &pvert)
 Connect the start of this to the pvert's edge at pvert. [詳解]
 
void connect_at_end (MGPVertex &pvert)
 Connect the end of this to the pvert's edge at pvert. [詳解]
 
MGCurvebase_curve ()
 
const MGCurvebase_curve () const
 
MGCurvecurve_limitted () const
 
void delete_binder_edge ()
 If this parameter edge has the binder edge, free from this and delete it. [詳解]
 
void disconnect_at_id (int id)
 
void drawWire (mgVBO &vbo, double span_length, int line_density=1) const
 
void draw3DVertex (mgVBO &vbo) const
 
MGComplex::const_pcellItr edge_iterator () const
 
MGComplex::pcellItr edge_iterator ()
 
int edge_num () const
 
MGPosition end_point () const
 Obtain the end point of the edge. [詳解]
 
MGVector eval (double t, int nderiv=0) const
 
MGVector eval_star (double t, int nderi=0) const
 
bool equal_direction_to_binder () const
 
const MGFaceface () const
 Get the star face pointer. [詳解]
 
MGFaceface ()
 Return MGFace pointer if this MGGel is an MGFace, else return null. [詳解]
 
const MGEdgefirst_partner () const
 Get the 1st partner edge of this edge. [詳解]
 
void free_end_neighbourhood ()
 Free neighbourhood relationship at the end of the edge. [詳解]
 
void free_neighbourhood (int i, int j=0)
 
void free_start_neighbourhood ()
 Free neighbourhood relationship at the start of the edge. [詳解]
 
long identify_type () const
 Return Object's type ID (TID) [詳解]
 
bool is_connected_and_same_direction (bool start, const MGEdge &edge2) const
 
bool is_end_point (double t) const
 test if parameter t is the one of the end point of the loop. [詳解]
 
bool is_start_point (double t) const
 test if parameter t is the one of the start point of the loop. [詳解]
 
bool is_free () const
 
void join (bool start, MGEdge *e2)
 
const MGLooploop () const
 Return parent loop pointer. [詳解]
 
MGLooploop ()
 
MGCellNBmake_binder () const
 
MGEdgemake_binder_with_curve () const
 
int manifold_dimension () const
 Obtain manifold dimension. [詳解]
 
const MGEdgemember_partner_edge (int i) const
 Obtain the i-th member partner edge. This must be a binder edge. [詳解]
 
MGPosition mid_point () const
 
void negate ()
 Negate the direction of the cell. [詳解]
 
std::vector< const MGCellNB * > neighbours () const
 
bool on_surface_perimeter () const
 Test if the edge is a part of a surface perimeter. [詳解]
 
bool on_surface_perimeter (const MGFace &f) const
 
bool on_surface_perimeter (const MGSurface &sf) const
 
double parameter_error () const
 Return parameter space error of the cell. [詳解]
 
double param_bcell (double tp, const double *guess=0) const
 
double param_pcell (double tb, const double *guess=0) const
 
double param_e () const
 Obtain end parameter value of the edge. [詳解]
 
double param_s () const
 Obtain start parameter value of the edge. [詳解]
 
double param_span () const
 Obtain parameter span of this edge. [詳解]
 
std::vector< const MGEdge * > partner_edges () const
 
MGPosition pick_closest (const MGStraight &sl) const
 
void polygonize (double error)
 
const MGEdgepre_edge (bool at_start=true) const
 
MGEdgepre_edge (bool at_start=true)
 
MGInterval range () const
 Get parameter range of the edge. [詳解]
 
MGEdgeset_binder_edge (const MGCurve &wcrv) const
 
MGEdgeset_binder_edge (const MGCurve &wcrv, const MGInterval &range) const
 
MGEdgeset_binder_edge (MGCurve *wcrv) const
 
MGEdgeset_binder_edge (MGCurve *wcrv, const MGInterval &range) const
 
void set_end (double t)
 
void set_start (double t)
 Parameter value of the start point. [詳解]
 
void set_only_param_range (double ts, double te)
 Parameter value of the start point. [詳解]
 
void set_i_th_binder (int i, MGBVertex &binder) const
 
const MGSurfacestar_surface () const
 
MGPosition start_point () const
 Obtain the end point of the edge. [詳解]
 
int surface_perimeter () const
 
int surface_perimeter (const MGSurface &sf) const
 
int surface_perimeter (const MGFace &face) const
 
void trim_end (double t)
 Trim the loop. Result is from start to t1. [詳解]
 
void trim_start (double t)
 Trim the loop. Result is from t1 to end. [詳解]
 
MGTrimmedCurve trimmed_curve () const
 Get trimmed curve representation of the edge. [詳解]
 
const MGPVertexvertex (int id) const
 Get the vertex at the start or end. [詳解]
 
const MGPVertexvertex_start () const
 
const MGPVertexvertex_end () const
 
MGPVertexvertex (int id)
 
MGPVertexvertex_start ()
 
MGPVertexvertex_end ()
 
MGCurveworld_curve ()
 
const MGCurveworld_curve () const
 
std::string whoami () const
 
- 基底クラス MGCellNB に属する継承公開メンバ関数
 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)
 
void add_partner (const MGCellBase &partner)
 
MGPosition center () const
 Obtain the center of this cell. [詳解]
 
virtual MGUnit_vector direction () const
 Obtain the direction of the cell. [詳解]
 
const MGGeometryextent () const
 Get extent geometry, may be null if this does not have extent. [詳解]
 
MGGeometryextent ()
 
MGGeometryfree_extent ()
 
MGComplexfree_from_parent ()
 
void free_partner (const MGCellBase *cellin) const
 Free specified partner(cellin). [詳解]
 
bool is_bcell () const
 Ask if this is binder cell. [詳解]
 
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 ()
 
int number_of_partner_members () const
 Return nummber of partners stored in m_partners. [詳解]
 
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 ()
 
- 基底クラス MGCellBase に属する継承公開メンバ関数
 MGCellBase ()
 Void constructor. Constructor of pcell. [詳解]
 
 MGCellBase (const MGCellBase &cell)
 
virtual ~MGCellBase ()
 
virtual MGCellBaseoperator= (const MGCellBase &gel2)
 
MGCellNBbinder () const
 Obtain binder. [詳解]
 
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 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
 
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 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 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
 

限定公開メンバ関数

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

フレンド

MG_DLL_DECLR friend MGEdge operator* (double s, const MGEdge &e)
 

その他の継承メンバ

- 基底クラス MGCellNB に属する継承公開型
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 に属する継承限定公開変数類
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; [詳解]
 

詳解

MGEdge is an instance of MGCellNB, represents a boundary element of 2D manifold.

MGEdge constitues an MGLoop that is a boundary of MGFace. MGEdge can be a parameter cell or a binder cell. The coordinates of a parameter cell MGEdge is (u,v) surface parameter, and the ones of binder cell MGEdge is (x,y,z) of the world.

構築子と解体子

MGEdge::MGEdge ( )

void constructor.

MGEdge::MGEdge ( const MGEdge e,
bool  copy_boundary = true,
bool  no_binder = false 
)

Copy constructor.

MGEdge::MGEdge ( MGGeometry geo,
MGPVertex boundaries[2],
MGCellNB binder 
)

Fundamental constructor. Construct an edge from geometry of manifold dimension 1. The constructor takes the ownership of geo and MGPVertex* in boundaries.

MGEdge::MGEdge ( const MGCurve crv)

Make an edge of a boundary that has active start and end vertex if the curve is not infinite straight line. The second form that input MGCurve* takes the ownership of the crv into the MGEdge, must not delete the object and the object must be newed one.

MGEdge::MGEdge ( MGCurve crv)
explicit
MGEdge::MGEdge ( const MGCurve crv,
const MGInterval range 
)

Make an edge of a boundary(MGBoundary1D that has active start and end vertex). range is the parameter range of crv. The second form that input MGCurve* takes the ownership of the crv into the MGEdge, must not delete the object and the object must be newed one.

MGEdge::MGEdge ( MGCurve crv,
const MGInterval range 
)
MGEdge::MGEdge ( const MGSurface surf,
const MGCurve pcrv,
const MGInterval prange,
const MGCurve wcrv 
)

Make an edge with a binder of a boundary (MGBoundary1D that has active start and end vertex).

引数
surfParent surface of which this edge makes a boundary
pcrvParameter curve of the surface surf.
prangeparam range of pcrv.
wcrvWorld coordinate curve of the surface surf. wcrv will be trimmed by prange of pcrv.
MGEdge::~MGEdge ( )

関数詳解

bool MGEdge::active_end ( ) const
inline

Test if active at start or end.

bool MGEdge::active_start ( ) const
inline
const MGEdge* MGEdge::aft_edge ( bool  at_end = true,
int *  vertexID = 0 
) const

Get after edge in the loop sequence. The aft_edge is the first neighbour edge.

MGEdge* MGEdge::aft_edge ( bool  at_end = true,
int *  vertexID = 0 
)
MGCurve* MGEdge::base_curve ( )

Return curve pointer of this edge. Null when this does not have geometry. The expression is of parameter space of face.

const MGCurve* MGEdge::base_curve ( ) const
MGEdge* MGEdge::binder_edge ( ) const

Obtain binder edge pointer. Null when this does not have binder.

const MGBox& MGEdge::box ( ) const
virtual

Obtain the box of the cell.

MGCellNBを実装しています。

MGPosition MGEdge::center_param ( ) const
virtual

Obtain the center parameter value of this cell.

MGCellNBを実装しています。

MGEdge* MGEdge::clone ( ) const
virtual

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

MGCellNBを実装しています。

MGEdge* MGEdge::clone_binder ( const MGCellBase e) const
virtual

Make a clone of this(this is a binder), and set binder and parameter cell relation between the new binder and the parameter cell e.

MGCellNBを実装しています。

MGEdge* MGEdge::clone_without_boundaries ( ) const
virtual

clone_without_boundaries() does not copy the binder cell relation.

MGCellNBを実装しています。

void MGEdge::compute_continuity ( const MGEdge edge2,
double  diatance[7],
double  tangent[4],
double  normal[4] 
) const

Compute the continuities between this edge(edge1) and the edge2. This edge and edge2 must be parameter edges of each face. In distance, tangent, and normal, the following output will be set: distance[0-6] as: [0] edge1's curve parameter that has the maximum distance with edge2. [1] edge2's curve parameter that has the maximum distance with edge1. [2] the evaluated maximum distance between edge1 and edge2 at distance[0] and [1] [3] edge1's curve parameter that has the minimum distance with edge2. [4] edge2's curve parameter that has the minimum distance with edge1. [5] the evaluated minimum distance between edge1 and edge2 at distance[3] and [4] [6] mean distance between edge1 and edge2. tangent[0-3] as: [0] edge1's curve parameter that has the maximum tangent difference with edge2. [1] edge2's curve parameter that has the maximum tangent difference with edge1. [2] the evaluated maximum tangent difference between edge1 and edge2 at tangent[0] and [1]. [3] mean tangent difference between edge1 and edge2. normal[0-3] as: [0] edge1's curve parameter that has the maximum normal difference with edge2. [1] edge2's curve parameter that has the maximum normal difference with edge1. [2] the evaluated maximum normal difference between edge1 and edge2 at normal[0] and [1]. [3] mean normal difference between edge1 and edge2.

void MGEdge::connect ( MGCellBase cell2)
virtual

Connect this edge to cell2(is an MGEdge). Both edges are parameter edges of faces. This cell is a boundary of an MGFace A, and cell2 is also is a boundary of another MGFace B. connet() binds two faces A and B through this edge and the cell2 edge.

MGCellBaseを再実装しています。

void MGEdge::connect ( MGEdge cell2)
void MGEdge::connect_at_end ( MGPVertex pvert)
inline

Connect the end of this to the pvert's edge at pvert.

void MGEdge::connect_at_id ( int  id1,
MGEdge e2,
int  id2 
)

Connect the start(id1=0) or end(id1=1) of this to the start(id2=0) or the end(id2=1) of e2. If both edges of this and e2 are members of a complex, they must be the same. e2 must be a newed object, and the owneship is transfered to the system.

void MGEdge::connect_at_start ( MGPVertex pvert)
inline

Connect the start of this to the pvert's edge at pvert.

MGCurve* MGEdge::curve_limitted ( ) const

Return curve pointer cut by start and end parameter range. Output is newed curve object, must be deleted. Null when this does not have geometry. The expression is of parameter space of face if this is parameter edge of a face. curve_limitted() does not return MGTrimmedCurve, returns real curve.

void MGEdge::delete_binder_edge ( )

If this parameter edge has the binder edge, free from this and delete it.

void MGEdge::disconnect_at_id ( int  id)

Disconnect the start(id=0) or end(id=1) neighbourhood relation. disconnect does not free membership of this edge from its parent complex.

void MGEdge::draw3DVertex ( mgVBO vbo) const
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.

引数
vboThe target graphic object.

MGCellNBを実装しています。

void MGEdge::drawWire ( mgVBO vbo,
double  span_length,
int  line_density = 1 
) const
virtual

Draw 3D curve in world coordinates. The object is converted to curve(s) and is drawn.

引数
vboThe target graphic object.
span_lengthLine segment span length.
line_densityline density to draw a surface in wire mode.

MGObjectを実装しています。

MGComplex::const_pcellItr MGEdge::edge_iterator ( ) const
MGComplex::pcellItr MGEdge::edge_iterator ( )
int MGEdge::edge_num ( ) const
MGPosition MGEdge::end_point ( ) const
inline

Obtain the end point of the edge.

bool MGEdge::equal_direction_to_binder ( ) const

Test if SurfCurve of the edge has equal direction to binder edge's direction. Returned is true if eaual, false if not.

MGVector MGEdge::eval ( double  t,
int  nderiv = 0 
) const

Evaluate the nderiv's derivative at parameter t. Evaluate of the curve's data.

MGVector MGEdge::eval_star ( double  t,
int  nderi = 0 
) const

Evaluation of the star curves of the edge at the point t. When nderi=0, get a position of the surface at the boundary point t. The star curve is SurfCurve(face's surface, edge's curve). (The star curve has the same world coordinate with the binder curve's, but their direction may be opposite. The star curve has always the same direction as the loop.)

引数
tParameter value of this parameter edge's curve.
nderiOrder of derivative.
const MGFace* MGEdge::face ( ) const
virtual

Get the star face pointer.

MGGelを再実装しています。

MGFace* MGEdge::face ( )
virtual

Return MGFace pointer if this MGGel is an MGFace, else return null.

MGGelを再実装しています。

const MGEdge* MGEdge::first_partner ( ) const

Get the 1st partner edge of this edge.

void MGEdge::free_end_neighbourhood ( )

Free neighbourhood relationship at the end of the edge.

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

Free neighbourhood relation at j-th boundary's i-th pcell of this cell. If start, j=0. If end, j=1. i must be always 0, since one boundary has only one cell.

MGCellNBを実装しています。

void MGEdge::free_start_neighbourhood ( )

Free neighbourhood relationship at the start of the edge.

long MGEdge::identify_type ( ) const
virtual

Return Object's type ID (TID)

MGCellNBを実装しています。

bool MGEdge::is_connected_and_same_direction ( bool  start,
const MGEdge edge2 
) const

Test if this edge's start point(when start=true) and edge2 is connected and their directions are the same. When start=false, this edge's end point is tested.

bool MGEdge::is_end_point ( double  t) const

test if parameter t is the one of the end point of the loop.

bool MGEdge::is_free ( ) const
inline

Test if this is a free edge. Free edges are ones that do not have partner edges.

bool MGEdge::is_start_point ( double  t) const

test if parameter t is the one of the start point of the loop.

void MGEdge::join ( bool  start,
MGEdge e2 
)

Connect this and e2. If start==true, start of this edge to end of e2; If start==false, end of this edge to start of e2; e2 must be a newed object, and the ownership is transfered to the system.

const MGLoop* MGEdge::loop ( ) const

Return parent loop pointer.

MGLoop* MGEdge::loop ( )
MGCellNB* MGEdge::make_binder ( ) const
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.

MGCellNBを実装しています。

MGEdge* MGEdge::make_binder_with_curve ( ) const

Make a binder associated with the world curve rep. Returned is the binder edge pointer. If the parameter edge had already the binder, make_binder_with_curve only returns the pointer. *** This edge must be a member of a loop that is a boundary of a face.

int MGEdge::manifold_dimension ( ) const
inlinevirtual

Obtain manifold dimension.

MGCellNBを実装しています。

const MGEdge* MGEdge::member_partner_edge ( int  i) const

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

MGPosition MGEdge::mid_point ( ) const

Compute the mid point of this edge. Mid point is the point of the paramete mid=(param_s()+param_e())*.5

void MGEdge::negate ( )
virtual

Negate the direction of the cell.

MGCellNBを再実装しています。

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

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

MGCellNBを実装しています。

bool MGEdge::on_surface_perimeter ( ) const
inline

Test if the edge is a part of a surface perimeter.

bool MGEdge::on_surface_perimeter ( const MGFace f) const
inline
bool MGEdge::on_surface_perimeter ( const MGSurface sf) const
inline
bool MGEdge::operator!= ( const MGGel gel2) const
inlinevirtual

MGGelを再実装しています。

bool MGEdge::operator!= ( const MGEdge gel2) const
inline
MGEdge MGEdge::operator* ( double  s) const

Edgeのスケーリングを行い,Edgeを作成する。 Scaling of the Edge by a double.

MGEdge MGEdge::operator* ( const MGMatrix mat) const

与えられた変換でEdgeの変換を行い,Edgeを作成する。 Transformation of the Edge by a matrix.

MGEdge MGEdge::operator* ( const MGTransf tr) const

与えられた変換によってトランスフォームをおこないEdgeを生成する。 Transformation of the Edge by a MGTransf.

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

MGCellNBを再実装しています。

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

MGCellNBを再実装しています。

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

MGCellNBを再実装しています。

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

Edge に平行移動を行ないオブジェクトを生成する。 Translation of the Edge

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

Object transformation.

MGCellNBを再実装しています。

MGEdge MGEdge::operator- ( const MGVector v) const

Edgeに逆方向の平行移動を行ないオブジェクトを生成する。 Translation of the Edge

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

MGCellNBを再実装しています。

MGEdge MGEdge::operator/ ( double  s) const
inline

Complexのスケーリングを行い,Complexを作成する。 Scaling of the Complex by a double.

bool MGEdge::operator< ( const MGEdge gel2) const
bool MGEdge::operator< ( const MGGel gel2) const
virtual

MGGelを再実装しています。

MGEdge& MGEdge::operator= ( const MGGel gel2)
virtual

Assignment. When the leaf object of this and cell2 are not equal, this assignment does nothing. does not change binder and partner relation, does not change parent complex.

MGGelを再実装しています。

MGEdge& MGEdge::operator= ( const MGEdge gel2)
bool MGEdge::operator== ( const MGEdge gel2) const

Comparison of two objects.

bool MGEdge::operator== ( const MGGel gel2) const
virtual

Comparison.

MGGelを再実装しています。

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

Output virtual function.

MGCellNBを再実装しています。

double MGEdge::param_bcell ( double  tp,
const double *  guess = 0 
) const

Obtain the parameter of the binder edge's curve that represent the same point as sp. sp is a parameter value of this parameter edge. Let S() is the star(surface) of this edge, and fp() is the curve of this cell which is a boundary of S(). And fb() is the binder curve of this edge. Then S(fp(sp))=fb(param_bcell(sp)). This is a parameter edge and have the binder, and the parameter sp is a parameter of this cell's curve. If this does not have a binder, return -1.

double MGEdge::param_e ( ) const

Obtain end parameter value of the edge.

double MGEdge::param_pcell ( double  tb,
const double *  guess = 0 
) const

This must be a parameter edge. Obtain the parameter of this parameter edge's curve that represent the same point as the binder edge's paramter tb. Let S() is the star(surface) of this edge, and fp() is the curve of this cell which is a boundary of S(). And fb() is the binder curve. Then S(fp(param_pcell(tb)))=fb(tb). This edge must have the binder edge, and the parameter tb is the parameter of the binder edge's curve. If this does not have a binder, return -1.

double MGEdge::param_s ( ) const

Obtain start parameter value of the edge.

double MGEdge::param_span ( ) const
inline

Obtain parameter span of this edge.

double MGEdge::parameter_error ( ) const
virtual

Return parameter space error of the cell.

MGCellNBを実装しています。

std::vector<const MGEdge*> MGEdge::partner_edges ( ) const

Obtain partner edges. Partners represent same world's(same cell's parameter) coordinates. Parameter edges' partners are parameter edges. Binder edges' partners are binder edges. The partners do not include this edge except when star cell is connected to the star cell itself(closed only by the star cell).

MGPosition MGEdge::pick_closest ( const MGStraight sl) const
virtual

Compute the parameter value of the closest point from the straight to this object. sl is the eye projection line whose direction is from yon to hither, and if sl had multiple intersection points, The closest point to the eye will be selected.

MGObjectを再実装しています。

void MGEdge::polygonize ( double  error)

Approximate the parameter edge by a polyline and replace this edge expression by the polyline. Polyline approximation is so done that the correspoinding binder edge can be appximated by the polyline connecting each binder edge's point that corresponds to the each this edge's point. (1) This must be a parameter cell edge. (2) This edge must be a member of a loop which is a boundary of a face. (3) If this edge did not have a binder edge, polygonize generates the binder edge. (The tolerance used to generate the binder is MGTolerance::line_zero(), not input error.) Input error is tolerance allowed between the polygon and the original curve.

const MGEdge* MGEdge::pre_edge ( bool  at_start = true) const

Get previous edge in the loop sequence. The pre_edge is the first neighbour edge.

MGEdge* MGEdge::pre_edge ( bool  at_start = true)
MGInterval MGEdge::range ( ) const

Get parameter range of the edge.

void MGEdge::ReadMembers ( MGIfstream buf)
protectedvirtual

Read Object's member data.

MGCellNBを再実装しています。

MGEdge* MGEdge::set_binder_edge ( const MGCurve wcrv) const

Set binder cell edge to this parameter cell. This curve's coordinates are of parameter space of a face. And input crv's coordinates are world coordinate of the face. range is the parameter range of wcrv. Parameter range of the wcrv is from start to end of the wcrv when no range is specified. Function return value is the binder's pointer generated.

MGEdge* MGEdge::set_binder_edge ( const MGCurve wcrv,
const MGInterval range 
) const
MGEdge* MGEdge::set_binder_edge ( MGCurve wcrv) const

These forms give the ownership of wcrv to the edge. That is, wcrv must be newed one and users must not delete it. Others are same as above "set_binder_edge(const MGCurve& wcrv)" form. Function return value is the binder's pointer generated.

MGEdge* MGEdge::set_binder_edge ( MGCurve wcrv,
const MGInterval range 
) const
void MGEdge::set_end ( double  t)

Set start point(boundary) data. If this is connected to other edges at end, the connectin will be freed.

void MGEdge::set_i_th_binder ( int  i,
MGBVertex binder 
) const

Set binder relation to m_vertex[i]. i is 0 for the start of the edge, and is 1 for the end.

void MGEdge::set_only_param_range ( double  ts,
double  te 
)

Parameter value of the start point.

Set only parameter range of this edge. Does not change the edge connection like set_start or set_end.

void MGEdge::set_start ( double  t)

Parameter value of the start point.

Set start point(boundary) data. If this is connected to other edges at start, the connectin will be freed.

const MGSurface* MGEdge::star_surface ( ) const

Obtain star surface. Star cell of this must be a face. If not, return null. If does not have star surface, returns null.

MGPosition MGEdge::start_point ( ) const
inline

Obtain the end point of the edge.

int MGEdge::surface_perimeter ( ) const

Get the perimeter number where this edge is on. If this is not on any perimeter, -1 will be returned.

int MGEdge::surface_perimeter ( const MGSurface sf) const
int MGEdge::surface_perimeter ( const MGFace face) const
void MGEdge::trim_end ( double  t)
inline

Trim the loop. Result is from start to t1.

void MGEdge::trim_start ( double  t)
inline

Trim the loop. Result is from t1 to end.

MGTrimmedCurve MGEdge::trimmed_curve ( ) const

Get trimmed curve representation of the edge.

const MGPVertex* MGEdge::vertex ( int  id) const
inline

Get the vertex at the start or end.

MGPVertex* MGEdge::vertex ( int  id)
inline
const MGPVertex* MGEdge::vertex_end ( ) const
inline
MGPVertex* MGEdge::vertex_end ( )
inline
const MGPVertex* MGEdge::vertex_start ( ) const
inline
MGPVertex* MGEdge::vertex_start ( )
inline
std::string MGEdge::whoami ( ) const
inlinevirtual

MGCellNBを再実装しています。

MGCurve* MGEdge::world_curve ( )

Return world curve pointer of this edge. That is, curve pointer of this edge's binder edge. May be null when no binder, or the binder does not have an extent.

const MGCurve* MGEdge::world_curve ( ) const
void MGEdge::WriteMembers ( MGOfstream buf) const
protectedvirtual

Write Object's Member Data.

MGCellNBを再実装しています。

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

MG_DLL_DECLR friend MGEdge operator* ( double  s,
const MGEdge e 
)
friend

Edgeのスケーリングを行い,Edgeを作成する。 Scaling of the Edge by a double.


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