以画的交换机为例,其他大概都差不多。
利用Twaver做出交换机模型如图1所示,其中,每一个端口都是一个单独的对象.具体Twaver操作流程参见网址:http://twaver.servasoft.com/doc 中的操作指南。
将做好的模型导出为json格式的文件。下面将以图一所示的交换机为例对json文件进行简单解析。如图二所示为图一交换机的所导出的json文件的简单结构。
首先,所导出的json文件为一个json对象,里面包含有两个数组为primitives(原始)和assembles(装配) ,primitives(原始)里面又包含了16个对象。请注意,0~16这些数字只是表示画图是的拖入的先后顺序,并不是其OID。每个对象的OID包含在每个对象的内部。例如0只是表示的是整个大的叫交换机体,而从1~16表示的是每个端口对象。
继续展开名字为“0”的对象,如图3所示。对象内各字段具体说明见表一。
表一:
对象 | 字段 | 描述 |
| Id(str) | 表示该对象的id,由Twaver工具自己生成的随机生成,是唯一的 |
scale(obj) | x , y , z (str) | 表示该对象的比例,默认均为1 |
pos(obj) | x , y , z(str) | 表示的是该对象的中心坐标位置,默认均为0 |
rot(obj) | x , y , z(str) | 表示该对象旋转的角度 |
size(obj) | x , y , z(str) | 表示大小 |
| className(str) | 表示该对象的对象名,不唯一 |
ambient(arr) | (str) | 六个面分别代表六个参数,表示各个面的光照环境 |
color(arr) | (str) | 表示各个面的颜色 |
dt(arr) | (str) | 表示各个面的贴图路径 |
Transparent(arr) | (boolean) | 表示各个面是否是透明的,默认为false |
types(arr) | (str) | 默认为phong |
visible(arr) | (boolean) | 表示是否可视,默认为true。与transparent相反。 |
opacity(arr) | (Num) | 设置一个元素了透明度级别。默认为1. |
flipX(arr) | (boolean) | 表示X轴方向翻转,默认为false. |
flipY(arr) | (boolean) | 表示Y轴方向翻转,默认为false. |
specularStrength(arr) | (str) | 表示镜面强度。默认均为1 |
polygonOffset(arr) | (boolean) | 是否设置多边形偏移参数,默认false |
polygonOffsetFactor(arr) | (str) | 表示多边形偏移因子。需设置polygonOffset为true. |
polygonOffsetUnits(arr) | (str) | 表示多边形偏移量单位。需设置polygonOffset为true. |
| scaleValue(str) | 刻度值 |
| oid(str) | 自定义的对象id,方便编程使用 |
其他的对象属性基本类似于表一,没有太大变化。
下面介绍assembles(装配)数组中的对象。该数组是指将上一数组中的各个对象组合在一起。如图4所示。
该数组包含一个对象为对象“0”,即上面所提到的交换机机体,可以通过该对象的第一个字段(id)与上一个数组中的id比较来唯一识别。“children”表示装配在该对象上的其他对象,如图5所示。0~16 这些对象都是“0”的children,由图”0”对象的属性“ishost”=true可知,它便是宿主,所有其他的对象要装配在该对象之上;pos表示该对象的位置。而对于非寄主类的对象来说,例如对象“1”则它的属性包括‘id’,‘oid’和‘pos’字段了。其他的对象与都一样。继续说明图4中的字段 “assembleSize”对象表示组合尺寸。