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@)
)