Skip to content

Commit 143f1a6

Browse files
committed
three.js update for serializer (proper JSON, hex values not supported anymore)
1 parent de29b80 commit 143f1a6

1 file changed

Lines changed: 15 additions & 31 deletions

File tree

ServerPlugin/src/org/bimserver/serializers/json/JSONModelFormat2Serializer.java

Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,10 @@ public boolean write(OutputStream outputStream) throws SerializerException {
4141
throw new SerializerException(e);
4242
}
4343
out = new PrintWriter(outputStream);
44-
out.println("var model = [");
44+
out.println("[");
4545
writeGeometries();
4646
out.println();
47-
out.println("];");
48-
out.println();
49-
out.println("postMessage( model );");
47+
out.println("]");
5048
out.flush();
5149

5250
setMode(Mode.FINISHED);
@@ -55,29 +53,15 @@ public boolean write(OutputStream outputStream) throws SerializerException {
5553
return false;
5654
}
5755
}
58-
59-
private String colorFromClass(Class ifcClass) {
60-
if (ifcClass == IfcWallStandardCase.class) {
61-
return "0xFF4400";
62-
} else if (ifcClass == IfcDoor.class) {
63-
return "0xFAFAFA";
64-
} else if (ifcClass == IfcWindow.class) {
65-
return "0xCCFFFF";
66-
} else if (ifcClass == IfcOpeningElement.class) {
67-
return "0x086CA2";
68-
} else {
69-
return "0x000000";
70-
}
71-
}
7256

7357
private void writeGeometry(SetGeometryResult geometry, IfcRoot ifcRoot) {
7458

75-
out.println(" 'id' : '" + ifcRoot.getGlobalId().getWrappedValue() + "', ");
76-
out.println(" 'type' : '" + ifcRoot.eClass().getName().toUpperCase() + "', ");
77-
out.println(" 'geometry' : {");
78-
out.println(" 'version' : 2, ");
79-
out.println(" 'materials': [],");
80-
out.print(" 'vertices': [ ");
59+
out.println(" \"id\" : \"" + ifcRoot.getGlobalId().getWrappedValue() + "\", ");
60+
out.println(" \"type\" : \"" + ifcRoot.eClass().getName().toUpperCase() + "\", ");
61+
out.println(" \"geometry\" : {");
62+
out.println(" \"metadata\" : { \"formatVersion\" : 3 }, ");
63+
out.println(" \"materials\": [],");
64+
out.print(" \"vertices\": [ ");
8165

8266
List<Float> vertices = geometry.getBinaryVertexBuffer().getVertices();
8367
if (vertices != null && vertices.size() > 0) {
@@ -88,8 +72,8 @@ private void writeGeometry(SetGeometryResult geometry, IfcRoot ifcRoot) {
8872
}
8973
}
9074

91-
out.println(" ], ");
92-
out.print(" 'normals': [");
75+
out.println(" ], ");
76+
out.print(" \"normals\": [");
9377

9478
List<Float> normals = geometry.getBinaryVertexBuffer().getNormals();
9579
if (normals != null && normals.size() > 0) {
@@ -100,10 +84,10 @@ private void writeGeometry(SetGeometryResult geometry, IfcRoot ifcRoot) {
10084
}
10185
}
10286

103-
out.println(" ],");
104-
out.println(" 'color': " + colorFromClass(geometry.getIfcClass()) + " ,");
105-
out.println(" 'uvs': [ ],");
106-
out.print(" 'faces': [ ");
87+
out.println(" ],");
88+
out.println(" \"colors\": [ ],");
89+
out.println(" \"uvs\": [ ],");
90+
out.print(" \"faces\": [ ");
10791

10892
List<Integer> indices = geometry.getBinaryIndexBuffer().getIndices();
10993
if (indices != null && indices.size() > 0) {
@@ -116,7 +100,7 @@ private void writeGeometry(SetGeometryResult geometry, IfcRoot ifcRoot) {
116100
}
117101

118102
out.println(" ]");
119-
out.println(" }");
103+
out.println(" }");
120104
out.println();
121105
}
122106

0 commit comments

Comments
 (0)