日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Ganos表面模型支持以文本的方式進行表達,方便閱讀理解,稱為Well-Known Text(簡稱WKT)。

幾何結構

Ganos表面模型中除了支持OGC Simple Feature模型外,還支持以下幾何結構的WKT的表達,對應幾何結構請參見表面網格模型數據模型

INDEXSURFACE

IndexSurface WKT表述時由類型關鍵字INDEXSURFACE、頂點坐標關鍵字VERTEX以及索引關鍵字INDEX表示。VERTEX點坐標之間使用','進行分隔,維度之間使用" "進行分隔;面索引每個面使用"()"進行包裹,索引間使用","進行分隔,形式如下:

INDEXSURFACE(
    VERTEX(x1 y1 z1,
        x2 y2 z2,
        ...
    ),
    INDEX(
        (i1,i2,i3,...),
        (j1,j2,j3,...),
        ....
    )
)

示例如下:

INDEXSURFACE(
    VERTEX(201755.424609375 241700.688720703 7025.00027160645,201755.424609375 241700.688720703 6774.9998336792,202255.431298828 241700.688720703 6774.9998336792,202255.431298828 241700.688720703 7025.00027160645,202255.431298828 243149.418896484 6774.9998336792,201755.424609375 243149.418896484 6774.9998336792,201755.424609375 243149.418896484 7025.00027160645,202255.431298828 243149.418896484 7025.00027160645),
    INDEX((0,1,2),(2,3,0),(4,5,6),(6,7,4),(2,1,5),(5,4,2),(3,2,7),(4,7,2),(0,3,7),(7,6,0),(1,0,5),(6,5,0))
)

IndexSurface同樣支持Z和M維度信息:

INDEXSURFACE Z(
    VERTEX(201755.424609375 241700.688720703 7025.00027160645,201755.424609375 241700.688720703 6774.9998336792, 202255.431298828 241700.688720703 6774.9998336792,202255.431298828 241700.688720703 7025.00027160645,202255.431298828 243149.418896484 6774.9998336792,201755.424609375 243149.418896484 6774.9998336792,201755.424609375 243149.418896484 7025.00027160645,202255.431298828 243149.418896484 7025.00027160645),
    INDEX((0,1,2),(2,3,0),(4,5,6),(6,7,4),(2,1,5),(5,4,2),(3,2,7),(4,7,2),(0,3,7),(7,6,0),(1,0,5),(6,5,0)))

INDEXSURFACE M(
    VERTEX(201755.424609375 241700.688720703 7025.00027160645,201755.424609375 241700.688720703 6774.9998336792, 202255.431298828 241700.688720703 6774.9998336792,202255.431298828 241700.688720703 7025.00027160645,202255.431298828 243149.418896484 6774.9998336792,201755.424609375 243149.418896484 6774.9998336792,201755.424609375 243149.418896484 7025.00027160645,202255.431298828 243149.418896484 7025.00027160645),
    INDEX((0,1,2),(2,3,0),(4,5,6),(6,7,4),(2,1,5),(5,4,2),(3,2,7),(4,7,2),(0,3,7),(7,6,0),(1,0,5),(6,5,0)))

TRIANGLESTRIP

TRIANGLESTRIP WKT由TriangleStrip關鍵字構成,后續包含所有的坐標串信息,示例如下:

TRIANGLESTRIP(0 0 1 1,0 10 2 2,10 10 3 3,10 0 4 4)

同樣支持Z和M值:

    TRIANGLESTRIP Z(0 0 1,0 10 2,10 10 3,10 0 4)
    TRIANGLESTRIP M(0 0 1,0 10 2,10 10 3,10 0 4)
    TRIANGLESTRIP ZM(0 0 1 1,0 10 2 2,10 10 3 3,10 0 4 4)

TRIANGLEFAN

TRIANGLEFAN WKT由TriangleStrip關鍵字構成,后續包含所有的坐標串信息,示例如下:

TRIANGLEFAN(0 0 1 1,0 10 2 2,10 10 3 3,10 0 4 4)

同樣支持Z和M值:

TRIANGLEFAN Z(0 0 1,0 10 2,10 10 3,10 0 4)
TRIANGLEFAN M(0 0 1,0 10 2,10 10 3,10 0 4)
TRIANGLEFAN ZM(0 0 1 1,0 10 2 2,10 10 3 3,10 0 4 4)

MESHGEOM

MeshGeom WKT由關鍵字MESHGEOM構成,包含PATCH、NORMAL和TEXCOORD三類關鍵字:

  • PATCH

    存儲幾何類型以及坐標信息。可以有一個或多個子對象構成,每個子對象之間使用","進行分隔。允許的子對象幾何類型如下:

    Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、IndexSurface、TriangleStrip、TriangleFan。

    示例如下:

    PATCH(POINT(0 0 1))
    PATCH(
        POINT(0 0 1),
        TRIANGLESTRIP(0 0 1,0 10 2,10 10 3,10 0 4)
        )
  • NORMAL

    包含法向量信息,類型為三維點坐標,坐標串間使用","進行分隔;使用"()"對每一個子對象進行包裹;坐標點數必須與Patch子對象中頂點個數一致。

    示例如下:

    NORMAL(
        (0 0 0, 1 1 1,2 2 2, 3 3 3)
        )
    
    NORMAL(
        (0 0 0, 1 1 1,2 2 2, 3 3 3),
        (1 2 1, 3 3 4)
        )
  • TEXCOORD

    包含紋理坐標信息,類型為二維點坐標,坐標串間使用","進行分隔;使用"()"對每一個子對象進行包裹;坐標點數必須與Patch對應子對象頂點個數一致。

    示例如下:

    TEXCOORD(
        (0 0, 1 1, 2 2, 3 3)
    )
    
    TEXCOORD(
        (0 0, 1 1, 2 2, 3 3),
        (1 1, 0 0, 2 2, 3 3)
    )

Meshgeom示例

以下示例展示了Meshgeom的WKT的表示方法:

  • 2個patch

    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)))
        )
    )
  • 帶有NORMAL和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)
        )
    )

    Meshgeom同樣支持Z和M維度,要求Meshgeom中所有patch的維度必須一致。

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

SFMESH

sfmesh使用JSON作為WKT的表示方法,包含以下節點信息:

  • version:sfmesh的版本,目前為1。

  • srid:空間參考ID。

  • lod:LOD的層級信息。

  • root:Node的根目錄ID,默認為0。

  • meshgeoms:所有引用到的meshgeom對象的數組,可以為引用對象,采用meshgeom的WKT表示方法。

  • meshes:所有基于Node引用到的sfmesh對象的數組,可以為引用對象,采用sfmesh的WKT表示方法。

  • textures:所用的texture的對象數組。

  • materials:所有材質的對象數組。

  • primitives:所有的元組信息的數組,元組包含兩種:meshgeom和mesh。 其中meshgeom可以帶材質信息,通過material關鍵字進行綁定。

  • nodes:通過Node可以定義樹狀結構,進行組織構建。可以包含以下屬性:

    • primitive:對應的primitive的信息。

    • children:子對象數組。

    • id:對象關聯的ID信息。

    • matrix:變換矩陣,采用以下方式進行描述。

    / a  b  c  xoff \
    
    | d  e  f  yoff |
    
    | g  h  i  zoff |
    
    \ 0  0  0     1 /

Sfmesh示例

以下為一個典型的JSON表示sfmesh對象的示例:

{
  "version": 1,
  "root": 0,
  "meshgeoms": ["MESHGEOM(PATCH(TRIANGLESTRIP(0 0,0 10,10 10,10 0)))"],
  "meshes": [
    "MESH(schema(@public@), table(@t_mesh@), column(@the_mesh@), key(@num=1@))"
  ],
  "primitives": [
    {
      "mesh": 0
    },
    {
      "meshgeom": 0
    }
  ],
  "nodes": [
    {
      "children": [1, 2],
      "id": 100
    },
    {
      "primitive": 0
    },
    {
      "primitive": 1,
      "matrix": [2, 0, 0, 1, 0, 2, 0, 3, 0, 0, 2, 4, 0, 0, 0, 1],
      "id": 10
    }
  ],
  "materials": [
    {
      "type": "db",
      "attributes": {
        "schema": "public",
        "table": "t_material",
        "column": "the_material",
        "key": "num=1"
      }
    }
  ],
  "textures": [
    {
      "compressionType": "None",
      "format": "JPEG",
      "wrap": "Wrap",
      "type": "Url",
      "depth": 3,
      "width": 256,
      "height": 256,
      "size": 15,
      "data": "http://aaa.png"
    }
  ]
}

引用對象

sfmesh支持對其他sfmesh對象的引用,包含schema, table,column和key四個關鍵字,其中后三個為必須的內容,字符串使用"@" 進行包裹,格式如下:

MESH(
   schema(@schema_name@),
    table(@table_name@),
    column(@column_name@),
    key(@where_clause@)
   )

示例如下:

MESH(
    schema(@public@),
    table(@mytable@),
    column(@mycolumn@),
    key(@id=1@)
)

EWKT

EWKT在WKT的基礎上增加了SRID和SOLID信息,每一段使用;進行分隔:

  • SRID表示空間參考信息,具體請參見空間參考

  • SOLID表示內部是否填充。取值如下:

    • true:表示內部填充。

    • false(默認):表示內部不填充。

示例如下:

SRID=4326;MESHGEOM(PATCH(INDEXSURFACE M(VERTEX(0 0 1,0 10 2,10 10 3,10 04), INDEX((0,1,2),(1,2,3)))))

SRID=4326;SOLID=true;MESHGEOM(PATCH(INDEXSURFACE M(VERTEX(0 0 1,0 10 2,1010 3,10 0 4), INDEX((0,1,2),(1,2,3)))))