private void calculateExtents(String id, IfcProduct ifcObject) throws RenderEngineException, SerializerException { if (!geometryExtents.containsKey(id)) { geometryExtents.put(id, new Extends()); } Extends extents = geometryExtents.get(id); GeometryInfo geometryInfo = ifcObject.getGeometry(); if (geometryInfo != null) { extents.integrate(geometryInfo); sceneExtends.addToMinExtents(extents.min); sceneExtends.addToMaxExtents(extents.max); } } }
public Set<GeometryData> getMatchingGeometry(IfcProduct ifcProduct, GeometryData geometryData) { Set<GeometryData> result = new HashSet<>(); Map<Integer, Set<GeometryData>> ofType = data.get(ifcProduct.eClass()); if (ofType != null) { Set<GeometryData> set = ofType.get(geometryData.getVertices().getData().length); if (set != null) { for (GeometryData d : set) { if (d != ifcProduct.getGeometry().getData()) { if (matchExactlyTheSame(geometryData, d)) { result.add(d); } else if (matchSameOrder(geometryData, d)) { result.add(d); // } else if (matchTotalDistance(geometryData, d)) { // return d; } } } } } return result; }
GeometryInfo geometry = ifcProduct.getGeometry(); if (geometry != null) { GeometryData geometryData = geometry.getData();
@Override public Double execute() throws UserException, BimserverDatabaseException, BimserverLockConflictException { Revision revision = getDatabaseSession().get(roid, OldQuery.getDefault()); IfcProduct ifcProduct = getDatabaseSession().get(oid, new OldQuery(bimServer.getMetaDataManager().getPackageMetaData(revision.getProject().getSchema()), revision.getProject().getId(), revision.getId(), revision.getOid())); return ifcProduct.getGeometry().getArea(); } }
@Override public Double execute() throws UserException, BimserverDatabaseException, BimserverLockConflictException { Revision revision = getDatabaseSession().get(roid, OldQuery.getDefault()); IfcProduct ifcProduct = getDatabaseSession().get(oid, new OldQuery(bimServer.getMetaDataManager().getPackageMetaData(revision.getProject().getSchema()), revision.getProject().getId(), revision.getId(), revision.getOid())); return ifcProduct.getGeometry().getVolume(); } }