MGCL V10
V10
MGCL V10
|
MGEdge is an instance of MGCellNB, represents a boundary element of 2D manifold. [詳解]
公開メンバ関数 | |
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 () | |
MGEdge & | operator= (const MGGel &gel2) |
MGEdge & | operator= (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 |
MGEdge & | operator+= (const MGVector &v) |
Object transformation. [詳解] | |
MGEdge & | operator-= (const MGVector &v) |
MGEdge & | operator*= (double scale) |
MGEdge & | operator*= (const MGMatrix &mat) |
MGEdge & | operator*= (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 MGEdge * | aft_edge (bool at_end=true, int *vertexID=0) const |
MGEdge * | aft_edge (bool at_end=true, int *vertexID=0) |
MGEdge * | binder_edge () const |
const MGBox & | box () const |
Obtain the box of the cell. [詳解] | |
MGPosition | center_param () const |
Obtain the center parameter value of this cell. [詳解] | |
MGEdge * | clone () const |
MGEdge * | clone_without_boundaries () const |
clone_without_boundaries() does not copy the binder cell relation. [詳解] | |
MGEdge * | clone_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. [詳解] | |
MGCurve * | base_curve () |
const MGCurve * | base_curve () const |
MGCurve * | curve_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 MGFace * | face () const |
Get the star face pointer. [詳解] | |
MGFace * | face () |
Return MGFace pointer if this MGGel is an MGFace, else return null. [詳解] | |
const MGEdge * | first_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 MGLoop * | loop () const |
Return parent loop pointer. [詳解] | |
MGLoop * | loop () |
MGCellNB * | make_binder () const |
MGEdge * | make_binder_with_curve () const |
int | manifold_dimension () const |
Obtain manifold dimension. [詳解] | |
const MGEdge * | member_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 MGEdge * | pre_edge (bool at_start=true) const |
MGEdge * | pre_edge (bool at_start=true) |
MGInterval | range () const |
Get parameter range of the edge. [詳解] | |
MGEdge * | set_binder_edge (const MGCurve &wcrv) const |
MGEdge * | set_binder_edge (const MGCurve &wcrv, const MGInterval &range) const |
MGEdge * | set_binder_edge (MGCurve *wcrv) const |
MGEdge * | set_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 MGSurface * | star_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 MGPVertex * | vertex (int id) const |
Get the vertex at the start or end. [詳解] | |
const MGPVertex * | vertex_start () const |
const MGPVertex * | vertex_end () const |
MGPVertex * | vertex (int id) |
MGPVertex * | vertex_start () |
MGPVertex * | vertex_end () |
MGCurve * | world_curve () |
const MGCurve * | world_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 MGCellNB & | operator= (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 MGGeometry * | extent () const |
Get extent geometry, may be null if this does not have extent. [詳解] | |
MGGeometry * | extent () |
MGGeometry * | free_extent () |
MGComplex * | free_from_parent () |
void | free_partner (const MGCellBase *cellin) const |
Free specified partner(cellin). [詳解] | |
bool | is_bcell () const |
Ask if this is binder cell. [詳解] | |
const MGCellBase * | member_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 MGComplex * | parent_complex () const |
Obtain parent complex. [詳解] | |
MGComplex * | parent_complex () |
virtual void | set_extent (MGGeometry *extent=0) |
Set extent of this cell. [詳解] | |
const MGCellNB * | star () const |
Obtain star cells. [詳解] | |
MGCellNB * | star () |
基底クラス MGCellBase に属する継承公開メンバ関数 | |
MGCellBase () | |
Void constructor. Constructor of pcell. [詳解] | |
MGCellBase (const MGCellBase &cell) | |
virtual | ~MGCellBase () |
virtual MGCellBase & | operator= (const MGCellBase &gel2) |
MGCellNB * | binder () 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 MGCellNB * | make_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 MGTopology & | operator= (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 |
MGTopology * | topology () |
Return MGTopology pointer if this MGGel is an MGTopology, else return null. [詳解] | |
const MGTopology * | topology () const |
基底クラス MGObject に属する継承公開メンバ関数 | |
MGObject () | |
Void constructor(初期化なしでオブジェクトを作成する。) [詳解] | |
MGObject (const MGObject &obj2) | |
Copy constructor. [詳解] | |
virtual | ~MGObject () |
Virtual Destructor. [詳解] | |
virtual MGObject & | operator= (const MGObject &obj2) |
MGAppearance * | appearance () |
const MGAppearance * | appearance () const |
virtual void | shade (mgVBO &vbo, const MGDrawParam ¶, mgVBO::ELEMENT_TARGET target=mgVBO::SHADING) const |
Shade the object in world coordinates. [詳解] | |
MGAppearance * | ensure_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 MGObject * | includes_object () const |
Test if this gel includes an object. [詳解] | |
MGObject * | includes_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 MGObject * | object () |
Return MGObject pointer if this MGGel is an MGObject, else return null. [詳解] | |
virtual const MGObject * | object () const |
virtual const MGFSurface * | fsurface () const |
Get the MGFSurface pointer if this is MGSurface or MGFace. [詳解] | |
virtual MGFSurface * | fsurface () |
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 MGAttribedGel & | operator= (const MGAttribedGel &gel2) |
virtual | ~MGAttribedGel () |
void | copy_appearance (const MGAttribedGel &gel2) |
mgVBO * | dlist_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 MGName * | get_name () const |
void | set_color (const MGColor &newColor) |
const MGColor * | get_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 MGAttrib * | attrib () |
Return MGAttrib pointer if this MGGel is an MGAttrib, else return null. [詳解] | |
virtual const MGAttrib * | attrib () const |
virtual MGGroup * | group () |
Return MGGroup pointer if this MGGel is an MGGroup, else return null. [詳解] | |
virtual const MGGroup * | group () const |
virtual MGGeometry * | geometry () |
Return MGGeometry pointer if this MGGel is an MGGeometry, else return null. [詳解] | |
virtual const MGGeometry * | geometry () const |
virtual MGPoint * | point () |
Return point pointer if this MGGel is an MGPoint, else return null. [詳解] | |
virtual const MGPoint * | point () const |
virtual MGCurve * | curve () |
Return curve pointer if this MGGel is an MGCurve, else return null. [詳解] | |
virtual const MGCurve * | curve () const |
virtual MGSurface * | surf () |
Return MGSurface pointer if this MGGel is an MGSurface, else return null. [詳解] | |
virtual const MGSurface * | surf () const |
virtual MGShell * | shell () |
Return MGShell pointer if this MGGel is an MGShell, else return null. [詳解] | |
virtual const MGShell * | shell () 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. [詳解] | |
MGCellNB & | set_cellnb (const MGCellNB &cell2) |
基底クラス MGCellBase に属する継承限定公開メンバ関数 | |
MGCellBase & | set_cellbase (const MGCellBase &cb2) |
基底クラス MGObject に属する継承限定公開メンバ関数 | |
MGObject & | set_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 に属する継承限定公開変数類 | |
MGComplex * | m_parent_complex |
MGGeometry * | m_extent |
Geometry. [詳解] | |
std::vector< const MGCellBase * > | m_partners |
vector of partner cells who share this bcell(for bcell). [詳解] | |
基底クラス MGCellBase に属する継承限定公開変数類 | |
MGCellNB * | m_binder |
基底クラス MGAttribedGel に属する継承限定公開変数類 | |
std::auto_ptr< mgVBO > | m_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.
|
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).
surf | Parent surface of which this edge makes a boundary |
pcrv | Parameter curve of the surface surf. |
prange | param range of pcrv. |
wcrv | World coordinate curve of the surface surf. wcrv will be trimmed by prange of pcrv. |
MGEdge::~MGEdge | ( | ) |
|
inline |
Test if active at start or end.
|
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.
|
virtual |
Obtain the center parameter value of this cell.
MGCellNBを実装しています。
|
virtual |
|
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を実装しています。
|
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.
|
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 | ) |
|
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.
|
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.
|
virtual |
|
virtual |
Draw 3D curve in world coordinates. The object is converted to curve(s) and is drawn.
vbo | The target graphic object. |
span_length | Line segment span length. |
line_density | line 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 |
|
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.)
t | Parameter value of this parameter edge's curve. |
nderi | Order of derivative. |
|
virtual |
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.
|
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.
|
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.
|
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 | ( | ) |
|
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.
|
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
|
virtual |
Negate the direction of the cell.
MGCellNBを再実装しています。
|
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を実装しています。
|
inline |
Test if the edge is a part of a surface perimeter.
|
inline |
|
inline |
|
inline |
MGEdge MGEdge::operator* | ( | double | s | ) | const |
Edgeのスケーリングを行い,Edgeを作成する。 Scaling of the Edge by a double.
与えられた変換でEdgeの変換を行い,Edgeを作成する。 Transformation of the Edge by a matrix.
与えられた変換によってトランスフォームをおこないEdgeを生成する。 Transformation of the Edge by a MGTransf.
Edge に平行移動を行ないオブジェクトを生成する。 Translation of the Edge
Edgeに逆方向の平行移動を行ないオブジェクトを生成する。 Translation of the Edge
|
inline |
Complexのスケーリングを行い,Complexを作成する。 Scaling of the Complex by a double.
bool MGEdge::operator< | ( | const MGEdge & | gel2 | ) | const |
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を再実装しています。
bool MGEdge::operator== | ( | const MGEdge & | gel2 | ) | const |
Comparison of two objects.
|
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.
|
inline |
Obtain parameter span of this edge.
|
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).
|
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.
|
protectedvirtual |
Read Object's member data.
MGCellNBを再実装しています。
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 |
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.
|
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 |
|
inline |
Trim the loop. Result is from start to t1.
|
inline |
Trim the loop. Result is from t1 to end.
MGTrimmedCurve MGEdge::trimmed_curve | ( | ) | const |
Get trimmed curve representation of the edge.
|
inline |
Get the vertex at the start or end.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
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 |
|
protectedvirtual |
Write Object's Member Data.
MGCellNBを再実装しています。
Edgeのスケーリングを行い,Edgeを作成する。 Scaling of the Edge by a double.