类型
|
长度
|
其他说明
|
|
bytes
|
8bit
|
最低位bit放在最右边
|
|
integers
|
unsigned-integer
|
不定,N个byte,8个bits中只有7bits表示实际数据,每个byte最高一个bit表示后面是否还有数据。0表示自己是最后一个byte。
|
最低位byte放在oasis文件的最前面
|
signed-integer
|
不定,N个byte,8个bits中只有7bits表示实际数据,每个byte最高一个bit表示后面是否还有数据。0表示自己是最后一个byte。符号位放在最低位byte(文件中最先出现的byte)的最后一位(bit):0表示正,1表示负。
|
最低位byte放在oasis文件的最前面
|
|
real
|
不定。有8种表示方式。由一个unsigned-integer的数据来表示采用何种表达方式。
|
表示数据表达方式的unsigned-integer数据出现在文件的最前面。接着它后面才是实际要表达的数值。
|
|
string
|
由一个unsigned-integer的数据来表示string的长度
|
unsigned-integer数据出现在文件最前面。string可以分成b-string, a-string和n-string三类
|
|
deltas
|
delta是用来表示方向和长度的一种数据类型。分成4类。各类长度不一样。
|
在oasis文件中,这种数据的第一个出现的字节的最后几个bit是表示方向。
后面具体描述。
|
|
repetitions
|
用来表示重复出现的各个图形的位置的一种数据类型。也分成多类,各类长度不一。
|
在后面具体说明
|
|
point lists
|
利用这个数据结构就可以画出图形。但这个数据结构本身不包括画图的起始位置信息。而在其他地方确定。是一串delta信息,用来表示各条边的长度和方向。
图形的顶点越多,长度越长。
|
在后面具体说明。
|
|
property value
|
由一个unsigned-integer表示类型,加上后面的property value 值构成。
|
各种类型的属性,value值不一样,但都比较简单。可以参看参考文献的7.8节table9。
|
类型格式
|
含义
|
0+unsigned-integer
|
是一个正的实数,实数的值就等于后面unsigned-integer
|
1+unsigned-integer
|
是一个负的实数,实数的绝对值就等于后面unsigned-integer
|
2+unsigned-integer
|
是一个正的实数,实数的值就等于后面unsigned-integer的倒数。
|
3+unsigned-integer
|
是一个负的实数,实数的绝对值就等于后面unsigned-integer的倒数。
|
4+unsigned-integer1+ unsigned-integer2
|
是一个正的实数,实数的值就等于(unsigned-integer1/ unsigned-integer2)。(做除数)
|
5+unsigned-integer1+ unsigned-integer2
|
是一个负的实数,实数的绝对值等于(unsigned-integer1/ unsigned-integer2)。(做除数)
|
6+IEEE-4-byte-float
|
表示后面是IEEE-4-byte-float的数据格式
|
7+IEEE-8-byte-float
|
表示后面是IEEE-8-byte-float的数据格式
|
类型
|
format
|
位置坐标
|
0
|
见文献【1】中7.6节中table6
|
重复上一次repetition的数据。根据上一次repetition的类型和数据来重复本图形的计算。比如上次是类型1的repetition,那么现在也是类型1的repetition,并且dimension和space参数也相同
|
1
|
同上
|
x-dimension=N-2, y-dimension=M-2.
生成一个N列M行的矩阵,矩阵中每个元素表示一个重复的图案。元素
element(i , j )(i=0 , ... , N-1, j= 0, ..., M-1)
的位置
为(i*x-space, j*y-space)。
用来生成x轴和y轴平行的重复图案。
|
2
|
同上
|
x-dimension=N-2,
生成一个
N
列
1
行的矩阵。矩阵中每个元素表示一个重复的图案。元素
element(i)(i=0 , ... , N-1)
的位置
为(i*x-space, 0)。
用来生成和x轴平行的重复图案。
|
3
|
同上
|
y
-dimension=
M
-2,
生成一个
1
列
M
行的矩阵。矩阵中每个元素表示一个重复的图案。元素
element(j)(j=0 , ... , M-1)
的位置
为(0, j*y-space)。
用来生成和y轴平行的重复图案。
|
4
|
同上
|
x-dimension=N-2,
生成一个
N
列
1
行的矩阵。矩阵中每个元素表示一个重复的图案。元素
element(i)(i=0 , ... , N-1)
的位置
为(x-space0+ x-space1+...+ x-spacei, 0),其中x-space0=0。
用来生成和x轴平行的重复图案。
|
5
|
同上
|
跟类型4类似,
x-dimension=N-2,
生成一个
N
列
1
行的矩阵。矩阵中每个元素表示一个重复的图案。元素
element(i)(i=0 , ... , N-1)
的位置
为(grid*(x-space0+ x-space1+...+ x-spacei), 0),其中x-space0=0。
用来生成和x轴平行的重复图案。
|
6
|
同上
|
y
-dimension=
M
-2,
生成一个
1
列
M
行的矩阵。矩阵中每个元素表示一个重复的图案。元素
element(j )(j=0 , ... , M-1)
的位置
为(0, y-space0+ y-space1+...+ y-spacej),其中y-space0=0。
用来生成和y轴平行的重复图案。
|
7
|
同上
|
跟类型6类似,y
-dimension=
M
-2,
生成一个
1
列
M
行的矩阵。矩阵中每个元素表示一个重复的图案。元素
element(j )(j=0 , ... , M-1)
的位置
为(0, gird*(y-space0+ y-space1+...+ y-spacej) ),其中y-space0=0。
用来生成和y轴平行的重复图案。
|
8
|
同上
|
n-dimension=N-2, m-dimension=M-2.
n-displacement(m-displacement
类似这样处理
)
是
g-delta
类型的数据
,
含有长度和方向信息
,
可以把
g-delta
数据分成两部分
nx-space
和
ny-space,
分表表示
x
轴方向的偏移和
y
轴方向的偏移。
g-delta
可以表示任意角度的方向。
整个数据生成一个N列M行的矩阵,矩阵中每个元素表示一个重复的图案。元素
element(i , j )(i=0 , ... , N-1, j= 0, ..., M-1)
的位置
为(i*nx-space+j*mx-space, i*ny-space+j*my-space)。
用来生成沿对角方向(不一定是45度角)的重复图案。
|
9
|
同上
|
dimension=
P
-2,
生成一个
P
维的向量。向量中每个元素表示一个重复的图案。元素
element(k)(k=0 , ... , P-1)
的位置
为(k*x-space, k*y-space),
用来生成沿对角方向的P维重复图形的图案。
|
10
|
同上
|
dimension=
P
-2,
生成一个
P
维的向量。向量中每个元素表示一个重复的图案。元素
element(k)(k=0 , ... , P-1)
的位置
为(x-space0+x-space1+...+x-spacek, y-space0+y-space1+...+y-spacek),
它可以用来生成沿任何方向任何位置的P维重复图形的图案。
|
11
|
同上
|
跟类型10类似,
dimension=
P
-2,
生成一个
P
维的向量。向量中每个元素表示一个重复的图案。元素
element(k)(k=0 , ... , P-1)
的位置
为
(grid*(x-space0+x-space1+...+x-spacek),
grid
*
( y-space0+y-space1+...+y-spacek)),
它可以用来生成沿任何方向任何位置的P维重复图形的图案。
|