Twaver的mono-desiner导出的json文件解析

以画的交换机为例,其他大概都差不多。

利用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”对象表示组

时间: 2024-12-19 09:04:37

Twaver的mono-desiner导出的json文件解析的相关文章

cocos2d-x3.0.1,加载cocostudio ui编辑器导出的json文件出现"Buffer is too small" && 0解决方案

刚到这个公司,开始进行cocos2d-x的真正项目开发,为了以后能够更好扩展,改动不大,决定使用3.X版本开发,而且使用ui编辑器.在导入的时候,今天遇到一个问题,Buffer is too small,搜了不少,但是都没有解决的方案,最后查到一个错误诱因,是因为ui中使用了label所致,于是我试了试,发现还真是label导致的问题,每次运行异常都发生在CCDevice.cpp的 bool setFont(const char * pFontName = NULL, int nSize = 0

【微信】微信小程序 微信开发工具中新创建的json文件,编译报错VM1781:2 pages/module/module.json 文件解析错误 SyntaxError: Unexpected end of JSON input

如果新创建报错:编译报错VM1781:2 pages/module/module.json 文件解析错误  SyntaxError: Unexpected end of JSON input 解决方法: 在JSON文件中添加 即可解决 { } 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/9076271.html

HBuilder开发移动App——manifest.json文件解析

以前做过Android App开发,对于各项配置都是在AndroidManifest.xml文件中完成的,包括权限的设定.图标.标签.App的名字.Activity注册等等 使用HBuilder开发移动App,HBuilder是基于Eclipse进行二次开发的,所以新建项目等各项操作与Eclipse类似. 首先新建一个移动App项目 这里选择mui项目,点击完成后可以看到项目文件列表,如下: 这里我们主要看一下manifest.json文件 应用信息 选择应用信息一项,然后 1.填写应用名称 也

json文件解析出现异常

今天在尝试用自带的NSJSONSerialization方法来解析本地json文件的时候碰到了系统异常,app自动终止 问题如下: 代码: NSString *newCoursePath = [[NSBundle mainBundle] pathForResource:@"addcourses" ofType:@"json"]; NSData *data = [NSData dataWithContentsOfFile:newCoursePath]; NSArray

Libgdx 之JSON文件解析

上一节我们学习了XML文件的解析,接下来我们再了解JSON文件的解析.在Libgdx中也提供了Json类来帮助我们解析文件,最常用的方法是fromJson(java.lang.Class type, FileHandle file) 通过此方法我们必须先定义一个内部类来抽象的表示Json文件. { "name": "David", "experience": 2534, "strength": 6, "dexteri

json文件解析

对json文本的解析有两种方法: 第一种:利用 child指针进行访问 利用child指针进行访问,需要不断的进行child,以进入深层循环中. 访问面文本的slots数组中的成员 { "semantic":{ "slots":[ { "name":"ZhangSan", "ip":"ZhangSan" }, { "name":"LiSi", &q

cocos2dx 2.2.2 cocostudio 数据编辑器导出的.json文件读取 解析

首先,创建 然后 再导出数据: 再然后,能够看到数据的格式是: 再然后,就是 数据解析代码: [cpp] view plaincopy ////////////////// rapidjson::Document _doc; bool bRet = false; unsigned long size = 0; unsigned char *pBytes = NULL; do { pBytes = cocos2d::CCFileUtils::sharedFileUtils()->getFileDa

IIS7 增加JSON文件解析

在MIME增加一个Json类型,在MIME增加一个配置如:添加---> 文件扩展名为 .JSON ,MIME类型为text/json(也有将application/x-javascript) 然后再在应用程序映射增加一个脚本映射请求路径为:*.JSON,可执行文件为C:/Windows/System32/inetsrv/asp.dll. 如果IIS7 没有找到asp.dll 需要添加插件: 控制面板-->程序-->打开和关闭Windows功能--->InterNet信息服务---&

iOS开发JSON文件解析数据成Model的过程简单介绍

本文内容来源:http://blog.csdn.net/smking/article/details/40432287 JSONModel, Mantle 这两个开源库都是用来进行封装JSON->Model的, 想想看, 直接向服务器发起一个请求,然后回来后,就是一个Model, 直接使用, 这是一个多么美好的事情. 先说说这两个的差别. 这两个使用的方法其实都差不多, 详细的使用方法请直接GitHub上找, 还是比较简单地. 就我个人来说JSONModel相对起来使用较为简单,而Mantle使