public static BuildingOutput buildModel(BuildingModel buildingModel, BuildingElementsTextureManager tm) {
List<BuildingPartOutput> partsOut = new ArrayList<BuildingPartOutput>();
ModelFactory mf = ModelFactory.modelBuilder();
if (buildingModel.getParts() != null) {
for (BuildingPart bp : buildingModel.getParts()) {
partsOut.add(buildPart(bp, buildingModel, mf, tm));
}
}
if (buildingModel.getNodeParts() != null) {
for (NodeBuildingPart bp : buildingModel.getNodeParts()) {
partsOut.add(buildNodePart(bp, buildingModel, mf, tm));
}
}
BuildingOutput out = new BuildingOutput();
out.setModel(mf.toModel());
out.setBuildingPartOutput(partsOut);
return out;
}