まず、線分を構成する頂点の座標を、全部まとめて書きます。
geometry IndexedLineSet の後に { } の中に、まず
coord Coodinate と書いて、その後に { } をつけます。
{ } の中に、
point と書いて、その後に [ ] をつけます。
[ ] の中に、頂点の座標を全部続けて書きます。
以下、3個の頂点の座標を、「,」で区切って続けて書いた例です。
coord Coordinate { point [ 0.0 0.0 0.0, 1.0 0.0 0.0, 2.0 1.0 1.0 ] } |
続いて、何番目の頂点と何番目の頂点を結んで線分を引くか、
という情報を、全部まとめて書きます。
geometry IndexedLineSet の後に { } の中に、
coordIndex と書いて、その後に [ ] をつけます。
[ ] の中に、頂点の座標の番号を全部続けて書きます。
〜ここで注意〜
前に述べた coordIndex の中でまとめて書いた頂点のうち、
1番目に書かれた頂点を「0番」、
2番目に書かれた頂点を「1番」というように数えます。
〜ここまで注意〜
もし1番目の頂点の2番目の頂点を結んで線分をつくるなら、
0,1 と書いて、その後に -1, とつけます。
さらに、もし1番目の頂点の3番目の頂点を結んで線分をつくるなら、
0,2 と書いて、その後に -1, とつけます。
以下、このようにして引かれる2本の線分の記述例です。
coordIndex [ 0,1,-1, 0,2,-1 ] |
ここでよくみると、この2本の線分は、
2番目、1番目、3番目の頂点を一続きに接続しています。
このような場合には、この2本をまとめて、
1,0,2,-1 というように記述することもできます。
coordIndex [ 1,0,2,-1 ] |
もうちょっと複雑な線分の集合を記述した例を示します。
この例では、まず20個の頂点が記述されています。
続いて、そのうち10個の頂点を連結する、
9本の一続きの線分が記述されています。
さらに、残りの10個の頂点を連結する、
9本の一続きの線分が記述されています。
#VRML V2.0 utf8 Shape { geometry IndexedLineSet { coord Coordinate { point [ 1.0 1.0 0.0, 2.0 4.0 0.0, 3.0 5.0 0.0, 4.0 4.0 0.0, 5.0 6.0 0.0, 6.0 7.0 0.0, 7.0 5.0 0.0, 8.0 6.0 0.0, 9.0 4.0 0.0, 10.0 3.0 0.0, 1.0 3.0 0.0, 0.0 2.0 0.0, -1.0 2.0 0.0, -1.0 1.0 0.0, -2.0 2.0 0.0, -2.0 4.0 0.0, -3.0 5.0 0.0, -4.0 5.0 0.0, -4.0 7.0 0.0, -5.0 6.0 0.0, ] } coordIndex [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, -1 ] } |