如何从gwt-g3d (http://code.google.com/p/gwt-g3d/)中的JSON字符串创建一个网格(StaticMesh的实例)?
如果JSON字符串是静态的,您可以将其加载为ExternalMeshResource(请参阅http://code.google.com/p/gwt-g3d/source/browse/trunk/gwt-g3d-test/src/gwt/g3d/test/client/Lesson14Demo.java了解如何使用此资源)。
如果没有,您可以使用JSONParser.parse(jsonString)
获取JSON值对象,然后执行类似
Float32Array.create(jsonObj.get(fieldName).isArray().getJavaScriptObject().<JsArrayNumber>cast());
得到一个可以传递给StaticMesh
的TypeArray
。上面的fieldName
取决于json字符串对象。例如,如果json看起来像这样:
{
"vertexPositions" : [0, 1, 2, ...]
"vertexNormals" : [0, 1, 0, ...]
"indices" : [0, 1, 2, ...]
}
那么你的fieldName
可以是"vertexPositions", "vertexNormals"one_answers"indices"。(注意,索引数组的类型通常是Uint16Array
而不是Float32Array
)。有关更多信息,请参阅AbstractMeshResource的实现