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

クラス

class  mgTL2Face
 mgTL2Face is a proprietry class for Face tessellation. [詳解]
 
class  mgTL2PlBridge
 Express a splitting line for a face for tessellation. [詳解]
 
class  mgTL2Fan
 mgTL2Fan is a point list to constitue a fan. [詳解]
 
class  mgTL2Fans
 Defines a vector mgTL2Fan. [詳解]
 
class  mgTL2LPline
 mgTL2LPline is limitted subinterval of mgTL2Polyline. [詳解]
 
class  mgTL2parameter
 Holds necessary parameter data for face tessellation. [詳解]
 
class  mgTL2Polyline
 mgTL2Polyline holds a parameter line(polyline) of a surface. [詳解]
 
class  mgTL2Triangle
 mgTL2Triangle holds (multiple) triangles data, which are a fan or a strip. [詳解]
 
class  mgTL2Triangles
 A vector of mgTL2Triangle's. [詳解]
 
class  mgTLInputParam
 A class that contains all the necessary input parameters to make tessellation. [詳解]
 

マクロ定義

#define EDGE_LENGTH_DENOM   8.
 
#define NEAR_PARAM   0.002
 
#define STRICT_ZERO_ANGLE   0.00025
 
#define LOOSE_ZERO_ANGLE   0.20
 
#define LOOSE_ZERO_ANGLE2   0.01
 
#define CONCAVEANGLE1   -0.7
 
#define CONCAVEANGLE2   -2.441
 
#define SHARPANGLE   2.441
 
#define RIGHT_ANGLE   STRICT_ZERO_ANGLE
 
#define MAX_DEVIATION_FROM_MIDDLE   4.
 
#define DEVIDE_RATIO   8
 

列挙型

enum  mgTL2Polyline::polyline_type {
  mgTL2Polyline::WHOLE_INNER =0, mgTL2Polyline::START_BOUNDARY, mgTL2Polyline::END_BOUNDARY, mgTL2Polyline::START_END_BOUNDARY,
  mgTL2Polyline::WHOLE_BOUNDARY
}
 

関数

MGEdgemake_Edge (const mgTL2parameter &tlpara, const MGEdge &edgeuv, short id[3], mgTL2Polyline *&poly)
 
bool splitTl (const MGFace &face, const mgTL2parameter &tlparam, bool is_u, MGPvector< MGFace > &faces)
 
void split_by_bridges (const MGFace &face, MGPvector< mgTL2PlBridge > &networks, MGPvector< MGFace > &faces)
 
int find_concave_at_vertex (const MGLoop &lp, MGVector &Vpre, MGVector &Vaft, MGPosition &uv_vertex, MGLEPoint &le_vertex)
 
void triangulate (const MGLoop &polygon, mgTL2Triangles &triangles)
 
void triangulate (const mgTL2LPline polygon[4], mgTL2Triangles &triangles)
 
void triangulate (const mgTL2Polyline *polygon[4], mgTL2Triangles &triangles)
 
double compute_max_edge_len (const MGObject &twoManifold)
 
void getXYZline_ensuring_max_edge_length (double maxElen2, const MGLBRep &xyzpolyline, MGLBRep &xyzpolylineOut)
 
void getUVline_ensuring_max_edge_length (const mgTL2parameter &para, const MGCurve &uvline, MGLBRep &xyzpolylineOut)
 Construct polyline MGLBRep whose maximum edge length is para.get_max_edge_len_sqr(). [詳解]
 
const mgTL2PolylineTL2Polyline (const MGEdge *edg)
 
const mgTL2PolylineTL2Polyline (MGComplex::const_pcellItr ei)
 

詳解

マクロ定義詳解

#define CONCAVEANGLE1   -0.7
#define CONCAVEANGLE2   -2.441
#define DEVIDE_RATIO   8

Split value of a edge vertex is employed when it is within span_length/MAX_DEVIATION_FROM_MIDDLE from the middle.

#define EDGE_LENGTH_DENOM   8.
#define LOOSE_ZERO_ANGLE   0.20
#define LOOSE_ZERO_ANGLE2   0.01
#define MAX_DEVIATION_FROM_MIDDLE   4.
#define NEAR_PARAM   0.002
#define RIGHT_ANGLE   STRICT_ZERO_ANGLE
#define SHARPANGLE   2.441
#define STRICT_ZERO_ANGLE   0.00025

列挙型詳解

列挙値
WHOLE_INNER 
START_BOUNDARY 
END_BOUNDARY 
START_END_BOUNDARY 
WHOLE_BOUNDARY 

関数詳解

double compute_max_edge_len ( const MGObject twoManifold)

Compute maximum edge length for the tessellation from an object, twoManifold. twoManifold must be MGFSurface or MGShell.

int find_concave_at_vertex ( const MGLoop lp,
MGVector Vpre,
MGVector Vaft,
MGPosition uv_vertex,
MGLEPoint le_vertex 
)
void getUVline_ensuring_max_edge_length ( const mgTL2parameter para,
const MGCurve uvline,
MGLBRep xyzpolylineOut 
)

Construct polyline MGLBRep whose maximum edge length is para.get_max_edge_len_sqr().

引数
paraInput parameter.
uvlineInput original (u,v) line of the surface.
xyzpolylineOutOutput LBRep of order 2 whose knot vector is: t(i)=i-1 for i=1,...,n and t(0)=0 and t(n+1)=n-1.
void getXYZline_ensuring_max_edge_length ( double  maxElen2,
const MGLBRep xyzpolyline,
MGLBRep xyzpolylineOut 
)
引数
xyzpolylineOutt(i)=i-1 for i=1,...,n and t(0)=0 and t(n+1)=n-1.
MGEdge* make_Edge ( const mgTL2parameter tlpara,
const MGEdge edgeuv,
short  id[3],
mgTL2Polyline *&  poly 
)

make_Edge() makes a polyline edge(parameter edge) of edge edgeuv which are wholly on a curve of m_param.Bpoly(). All of the points of m_param.Bpoly()[id[0]][id[1]] will be converted to surface (u,v) parameter. These (u,v) representation makes the polyline edge.

void split_by_bridges ( const MGFace face,
MGPvector< mgTL2PlBridge > &  networks,
MGPvector< MGFace > &  faces 
)
bool splitTl ( const MGFace face,
const mgTL2parameter tlparam,
bool  is_u,
MGPvector< MGFace > &  faces 
)
const mgTL2Polyline* TL2Polyline ( const MGEdge edg)
const mgTL2Polyline* TL2Polyline ( MGComplex::const_pcellItr  ei)
void triangulate ( const MGLoop polygon,
mgTL2Triangles triangles 
)

Triangulate polygon. The result will be appended onto triangles.

引数
polygonTarget MGLoop to triangulate whose edges' base_curve() must be
trianglesmgTL2Polyline.Triangulated data will be appended.
void triangulate ( const mgTL2LPline  polygon[4],
mgTL2Triangles triangles 
)

Triangulate polygon. The result will be appended onto triangles.

引数
polygonFour edges that constitute a closed polygon.
trianglesTriangulated data will be appended.
void triangulate ( const mgTL2Polyline polygon[4],
mgTL2Triangles triangles 
)

Triangulate polygon. The result will be appended onto triangles.

引数
polygonFour edges that constitute a closed polygon.
trianglesTriangulated data will be appended.