MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / updateUserData

Function updateUserData

src/model/ThreeJSForwardTranslator.cpp:183–324  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

181 }
182
183 void updateUserData(ThreeUserData& userData, const PlanarSurface& planarSurface, bool includeGeometryDiagnostics) {
184 std::string name = planarSurface.nameString();
185 boost::optional<Surface> surface = planarSurface.optionalCast<Surface>();
186 boost::optional<ShadingSurface> shadingSurface = planarSurface.optionalCast<ShadingSurface>();
187 boost::optional<InteriorPartitionSurface> interiorPartitionSurface = planarSurface.optionalCast<InteriorPartitionSurface>();
188 boost::optional<SubSurface> subSurface = planarSurface.optionalCast<SubSurface>();
189 boost::optional<PlanarSurfaceGroup> planarSurfaceGroup = planarSurface.planarSurfaceGroup();
190 boost::optional<Space> space = planarSurface.space();
191 boost::optional<ConstructionBase> construction = planarSurface.construction();
192
193 userData.setHandle(toThreeUUID(toString(planarSurface.handle())));
194 userData.setName(name);
195 userData.setCoincidentWithOutsideObject(false);
196
197 if (includeGeometryDiagnostics) {
198 userData.setIncludeGeometryDiagnostics(true);
199 userData.setConvex(planarSurface.isConvex());
200 }
201
202 if (surface) {
203 std::string surfaceType = surface->surfaceType();
204 userData.setSurfaceType(surfaceType);
205 userData.setSurfaceTypeMaterialName(getSurfaceTypeThreeMaterialName(surfaceType));
206 userData.setSunExposure(surface->sunExposure());
207 userData.setWindExposure(surface->windExposure());
208 userData.setOutsideBoundaryCondition(surface->outsideBoundaryCondition());
209
210 boost::optional<Surface> adjacentSurface = surface->adjacentSurface();
211 if (adjacentSurface) {
212 userData.setOutsideBoundaryConditionObjectName(adjacentSurface->nameString());
213 userData.setOutsideBoundaryConditionObjectHandle(toThreeUUID(toString(adjacentSurface->handle())));
214 }
215
216 // set boundary conditions before calling getBoundaryMaterialName
217 userData.setBoundaryMaterialName(getBoundaryMaterialName(userData));
218
219 if (includeGeometryDiagnostics && space) {
220 auto sfs = space->findSurfacesWithIncorrectOrientation();
221 if (std::find(sfs.cbegin(), sfs.cend(), planarSurface) != sfs.cend()) {
222 userData.setCorrectlyOriented(false);
223 }
224 userData.setSpaceConvex(space->isConvex());
225 userData.setSpaceEnclosed(space->isEnclosedVolume());
226 }
227 }
228
229 if (shadingSurface) {
230 std::string shadingSurfaceType = "Building";
231 if (shadingSurface->shadingSurfaceGroup()) {
232 shadingSurfaceType = shadingSurface->shadingSurfaceGroup()->shadingSurfaceType();
233 }
234 std::string surfaceType = shadingSurfaceType + "Shading";
235 userData.setSurfaceType(surfaceType);
236 userData.setSurfaceTypeMaterialName(getSurfaceTypeThreeMaterialName(surfaceType));
237 userData.setSunExposure("SunExposed");
238 userData.setWindExposure("WindExposed");
239 userData.setOutsideBoundaryCondition("");
240 userData.setOutsideBoundaryConditionObjectName("");

Callers 1

makeGeometriesFunction · 0.85

Calls 15

toThreeUUIDFunction · 0.85
getBoundaryMaterialNameFunction · 0.85
nameStringMethod · 0.80
setConvexMethod · 0.80
adjacentSurfaceMethod · 0.80
cbeginMethod · 0.80
cendMethod · 0.80
setCorrectlyOrientedMethod · 0.80
setSpaceConvexMethod · 0.80

Tested by

no test coverage detected