MeshGeom包含PATCH、NORMAL和TEXCOORD三类关键字。
PATCH
包含一个或多个几何信息,每个几何信息之间使用
,
进行分隔。几何类型只允许:- Point
- LineString
- Polygon
- MultiPoint
- MultiLineString
- MultiPolygon
- IndexSurface
- TriangleStrip
- TriangleFan
NORMAL
包含一组法向量信息,类型为三维点坐标,坐标串间使用,
进行分隔,使用()
对每一个几何对象进行包裹,坐标点数必须与Patch中顶点个数一致。
TEXCOORD
包含一组纹理坐标信息,类型为二维点坐标,坐标串间使用,
进行分隔,使用()
对每一个几何对象进行包裹,坐标点数必须与Patch中顶点个数一致。
-- 2 patches, 1 is point and 2 is indexsurface
MESHGEOM(
PATCH(POINT(0 0 1),
INDEXSURFACE(VERTEX(0 0 1,0 10 2,10 10 3,10 0 4), INDEX((0,1,2),(1,2,3)))
)
)
-- With Norma and texcoord
MESHGEOM(
PATCH(
TRIANGLESTRIP(0 0 1,0 10 2,10 10 3,10 0 4)
),
NORMAL(
(0 0 0, 1 1 1,2 2 2, 3 3 3)
),
TEXCOORD(
(0 0, 1 1, 2 2, 3 3)
)
)
同样支持Z和M维度,要求Meshgeom中所有patch的维度必须一致。
-- 2 patches, 1 is point and 2 is indexsurface
MESHGEOM(
PATCH(
POINT M(0 0 1),
INDEXSURFACE M(VERTEX(0 0 1,0 10 2,10 10 3,10 0 4), INDEX((0,1,2),(1,2,3)))
)
)
Meshgeom支持对其他meshgeom对象的引用,包含schema、table、column和key四个关键字,其中后三个为必须的内容,字符串使用@
进行包裹。
/*
具体格式如下
MESHGEOM(
schema(@schema_name@),
table(@table_name@),
column(@column_name@),
key(@where_clause@)
)
*/
MESHGEOM(
schema(@public@),
table(@mytable@),
column(@mycolumn@),
key(@id=1@)
)