@Override public void preview(double value) { // sets height to current building part getBuildingPart().getRoof().setRoofHeight(value); if (getBuildingPart().getRoof() instanceof DormerRoofModel) { DormerRoofModel model = (DormerRoofModel) getBuildingPart().getRoof(); if (model.getRoofType() == null || RoofTypeAliasEnum.FLAT.equals(model.getRoofType())) { changeRoofShape = true; model.setRoofType(RoofTypeAliasEnum.GABLED); } } generatePreview(); };
RoofModel roofModel = buildingPart.getRoof();
private static BuildingPart cloneBuildingPart(BuildingPart bp, Double height) { BuildingPart ret = new BuildingPart(); if (bp.getMaxHeight() == null) { ret.setMaxHeight(bp.getDefaultMaxHeight() + height); } else { ret.setMaxHeight(bp.getMaxHeight() + height); } if (bp.getMinHeight() == null) { ret.setMinHeight(bp.getDefaultMinHeight() + height); } else { ret.setMinHeight(bp.getMinHeight() + height); } ret.setFacadeColor(bp.getFacadeColor()); ret.setFacadeMaterialType(bp.getFacadeMaterialType()); ret.setFloorColor(bp.getFloorColor()); ret.setFloorMaterialType(bp.getFloorMaterialType()); ret.setInlineWalls(bp.getInlineWalls()); ret.setLevelHeight(bp.getLevelHeight()); ret.setMaxLevel(bp.getMaxLevel()); ret.setMinLevel(bp.getMinLevel()); ret.setRoof(bp.getRoof()); ret.setRoofColor(bp.getRoofColor()); ret.setRoofLevels(bp.getRoofLevels()); ret.setRoofMaterialType(bp.getRoofMaterialType()); ret.setWall(bp.getWall()); return ret; }
/** * @param bp * @param mf * @param maxHeight * @param facadeColor * @param roofColor * @param facadeTextureData * @param roofTextureData * @return */ private static RoofOutput buildRoof(BuildingPart bp, ModelFactory mf, double maxHeight, Color facadeColor, Color roofColor, TextureData facadeTextureData, TextureData roofTextureData) { RoofTextureData rtd = new RoofTextureData(); // XXX fix, currently roof builder support only one texture, fix before // roof builder is changed. rtd.setFacadeColor(facadeColor); rtd.setFacadeTexture(facadeTextureData); rtd.setRoofColor(roofColor); rtd.setRoofTexture(roofTextureData); RoofOutput roofOutput = null; if (bp.getRoof() instanceof DormerRoofModel) { roofOutput = ShapeRoofBuilder.build(bp, maxHeight, mf, rtd); } else if (bp.getRoof() instanceof RoofLinesModel) { roofOutput = RoofLinesBuildier.build(bp, maxHeight, mf, roofTextureData, roofColor); } else { throw new RuntimeException(); } return roofOutput; }
double roofHeight = bp.getRoof().getRoofHeight();