Thread: [Bprocessor-commit] gui/src/net/sourceforge/bprocessor/gui/actions ToolsEnergyActionListener.java,
Status: Pre-Alpha
Brought to you by:
henryml
From: Nikolaj B. <nbr...@us...> - 2006-08-21 21:47:21
|
Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/actions In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv9928/src/net/sourceforge/bprocessor/gui/actions Modified Files: ToolsEnergyActionListener.java Log Message: Improved the energy calc to now consider if rooms are heated or not Index: ToolsEnergyActionListener.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/actions/ToolsEnergyActionListener.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ToolsEnergyActionListener.java 17 Jul 2006 08:32:00 -0000 1.3 --- ToolsEnergyActionListener.java 21 Aug 2006 20:32:42 -0000 1.4 *************** *** 8,12 **** --- 8,14 ---- import net.sourceforge.bprocessor.model.Project; + import net.sourceforge.bprocessor.model.Space; import net.sourceforge.bprocessor.model.Surface; + import net.sourceforge.bprocessor.model.Vertex; import java.awt.event.ActionEvent; *************** *** 43,56 **** Surface current = (Surface) it.next(); if (current.getFrontDomain().getClassification().equalsIgnoreCase("Exteriør")) { ! totalloss = totalloss + calcloss(current.getBackDomain().getClassification(), current); } if (current.getFrontDomain().getClassification().equalsIgnoreCase("Uopvarmet rum")) { ! totalloss = totalloss + calcloss(current.getBackDomain().getClassification(), current); } if (current.getBackDomain().getClassification().equalsIgnoreCase("Exteriør")) { ! totalloss = totalloss + calcloss(current.getFrontDomain().getClassification(), current); } if (current.getBackDomain().getClassification().equalsIgnoreCase("Uopvarmet rum")) { ! totalloss = totalloss + calcloss(current.getFrontDomain().getClassification(), current); } } --- 45,58 ---- Surface current = (Surface) it.next(); if (current.getFrontDomain().getClassification().equalsIgnoreCase("Exteriør")) { ! totalloss = totalloss + calcloss(current.getBackDomain(), current); } if (current.getFrontDomain().getClassification().equalsIgnoreCase("Uopvarmet rum")) { ! totalloss = totalloss + calcloss(current.getBackDomain(), current); } if (current.getBackDomain().getClassification().equalsIgnoreCase("Exteriør")) { ! totalloss = totalloss + calcloss(current.getFrontDomain(), current); } if (current.getBackDomain().getClassification().equalsIgnoreCase("Uopvarmet rum")) { ! totalloss = totalloss + calcloss(current.getFrontDomain(), current); } } *************** *** 67,107 **** * @return the loss */ ! private double calcloss(String classification, Surface current) { double loss = 0; ! if (classification.equalsIgnoreCase("Terrandæk")) { ! loss = 0.15 * current.getArea(); ! return loss; ! } ! if (classification.equalsIgnoreCase("Tagkonstruktion")) { ! loss = 0.15 * current.getArea(); ! return loss; ! } ! if (classification.equalsIgnoreCase("Loft")) { ! loss = 0.15 * current.getArea(); ! return loss; } ! if (classification.equalsIgnoreCase("Ydervæg")) { ! loss = 0.25 * current.getArea(); ! return loss; } ! if (classification.equalsIgnoreCase("Ældre termovindue")) { ! loss = 2.5 * current.getArea(); ! return loss; } ! if (classification.equalsIgnoreCase("2-lags lavenergivindue")) { ! loss = 1.5 * current.getArea(); ! return loss; } ! if (classification.equalsIgnoreCase("3-lags lavenergivindue")) { ! loss = 0.8 * current.getArea(); ! return loss; } ! if (classification.equalsIgnoreCase("Dør")) { ! loss = 1.5 * current.getArea(); ! return loss; ! } ! return loss; } } --- 69,180 ---- * @return the loss */ ! private double calcloss(Space classification, Surface current) { double loss = 0; ! boolean first = true; ! if (isrelevant(classification, current)) { ! Iterator it = classification.getElements().iterator(); ! ! ! while (it.hasNext()) { ! Space elemcheck = (Space) it.next(); ! if (elemcheck.getName().equalsIgnoreCase("Void") && first) { ! ! if (classification.getClassification().equalsIgnoreCase("Terrandæk")) { ! loss = 0.15 * current.getArea(); ! return loss; ! } ! if (classification.getClassification().equalsIgnoreCase("Tagkonstruktion")) { ! loss = 0.15 * current.getArea(); ! return loss; ! } ! if (classification.getClassification().equalsIgnoreCase("Loft")) { ! loss = 0.15 * current.getArea(); ! return loss; ! } ! if (classification.getClassification().equalsIgnoreCase("Ydervæg")) { ! loss = 0.25 * current.getArea(); ! return loss; ! } ! if (classification.getClassification().equalsIgnoreCase("Ældre termovindue")) { ! loss = 2.5 * current.getArea(); ! return loss; ! } ! if (classification.getClassification().equalsIgnoreCase("2-lags lavenergivindue")) { ! loss = 1.5 * current.getArea(); ! return loss; ! } ! ! if (classification.getClassification().equalsIgnoreCase("3-lags lavenergivindue")) { ! loss = 0.8 * current.getArea(); ! return loss; ! } ! ! if (classification.getClassification().equalsIgnoreCase("Dør")) { ! loss = 1.5 * current.getArea(); ! return loss; ! } ! System.out.println("void - no more element spaces"); ! } ! if (!elemcheck.getName().equalsIgnoreCase("Void")) { ! System.out.println(elemcheck.getName()); ! } ! first = false; ! } ! } ! return loss; ! } ! ! /** ! * Test if the surface is relevant for thermiccalculation ! * @param classification The classifaction of the surface ! * @param current The current Surface ! * @return true if the surface is relevant ! */ ! private boolean isrelevant(Space classification, Surface current) { ! boolean relevant = false; ! Vertex normal = current.normal(); ! if (current.getBackDomain().isConstructionSpace()) { ! normal.scale(-1); ! } ! Vertex origin = current.center(); ! double distance = 0; ! Surface closest = null; ! Space spa = null; ! ! Iterator it = Project.getInstance().getSurfaces().iterator(); ! ! while (it.hasNext()) { ! Surface sur = (Surface) it.next(); ! Vertex interpoint = sur.plane().intersection(origin, normal, true); ! if (interpoint != null) { ! if (sur.surrounds(interpoint)) { ! if (sur.getFrontDomain().isFunctionalSpace() || sur.getBackDomain().isFunctionalSpace()) { ! if (origin.distance(interpoint) != 0 && ! (distance == 0 || distance > origin.distance(interpoint))) { ! distance = origin.distance(interpoint); ! closest = sur; ! } ! } ! } ! } } ! if (closest != null && closest.getFrontDomain().isFunctionalSpace()) { ! spa = closest.getFrontDomain(); } ! if (closest != null && closest.getBackDomain().isFunctionalSpace()) { ! spa = closest.getBackDomain(); } ! if (spa != null && ! spa.getClassification().equalsIgnoreCase("Stue") || ! spa.getClassification().equalsIgnoreCase("Badeværelse") || ! spa.getClassification().equalsIgnoreCase("Opvarmet rum")) { ! relevant = true; ! } ! ! return relevant; } } |