use of org.concord.energy3d.model.SolarPanel in project energy3d by concord-consortium.
the class Scene method setColorForAllSolarPanels.
public void setColorForAllSolarPanels(final int colorOption) {
for (final HousePart p : parts) {
if (p instanceof SolarPanel) {
((SolarPanel) p).setColorOption(colorOption);
p.draw();
}
}
SceneManager.getInstance().refresh();
}
use of org.concord.energy3d.model.SolarPanel in project energy3d by concord-consortium.
the class Scene method pasteToPickedLocationOnRoof.
public void pasteToPickedLocationOnRoof() {
EnergyPanel.getInstance().updateRadiationHeatMap();
if (copyBuffer == null) {
return;
}
if (copyBuffer instanceof Foundation) {
return;
}
final HousePart selectedPart = SceneManager.getInstance().getSelectedPart();
if (!(selectedPart instanceof Roof)) {
return;
}
final HousePart c = copyBuffer.copy(false);
if (c == null) {
return;
}
Vector3 position = SceneManager.getInstance().getPickedLocationOnRoof();
if (position == null) {
return;
}
if (selectedPart != c.getContainer()) {
// solar panels and racks can be pasted to a different parent
if (c instanceof SolarPanel) {
((SolarPanel) c).moveTo(selectedPart);
} else if (c instanceof Rack) {
((Rack) c).moveTo(selectedPart);
}
}
position = c.toRelative(position.subtractLocal(c.getContainer().getAbsPoint(0)));
final Vector3 center = c.toRelative(c.getAbsCenter().subtractLocal(c.getContainer().getAbsPoint(0)));
position = position.subtractLocal(center);
final int n = c.getPoints().size();
for (int i = 0; i < n; i++) {
final Vector3 v = c.getPoints().get(i);
v.addLocal(position);
}
if (c instanceof Rack) {
((Rack) c).moveSolarPanels(position);
setIdOfChildren(c);
}
add(c, true);
copyBuffer = c;
SceneManager.getInstance().setSelectedPart(c);
SceneManager.getInstance().getUndoManager().addEdit(new PastePartCommand(c));
}
use of org.concord.energy3d.model.SolarPanel in project energy3d by concord-consortium.
the class Scene method setModelForAllSolarPanels.
public void setModelForAllSolarPanels(final PvModuleSpecs specs) {
for (final HousePart p : parts) {
if (p instanceof SolarPanel) {
((SolarPanel) p).setPvModuleSpecs(specs);
p.draw();
}
}
SceneManager.getInstance().refresh();
}
use of org.concord.energy3d.model.SolarPanel in project energy3d by concord-consortium.
the class Scene method setTrackerForAllSolarPanels.
public void setTrackerForAllSolarPanels(final int tracker) {
for (final HousePart p : parts) {
if (p instanceof SolarPanel && !(p.getContainer() instanceof Rack)) {
// no tracker for solar panels on racks as they use rack trackers
((SolarPanel) p).setTracker(tracker);
p.draw();
}
}
SceneManager.getInstance().refresh();
}
use of org.concord.energy3d.model.SolarPanel in project energy3d by concord-consortium.
the class Scene method setCellNumbersForAllSolarPanels.
public void setCellNumbersForAllSolarPanels(final int nx, final int ny) {
for (final HousePart p : parts) {
if (p instanceof SolarPanel) {
final SolarPanel s = (SolarPanel) p;
s.setNumberOfCellsInX(nx);
s.setNumberOfCellsInY(ny);
} else if (p instanceof Rack) {
final SolarPanel s = ((Rack) p).getSolarPanel();
s.setNumberOfCellsInX(nx);
s.setNumberOfCellsInY(ny);
}
p.draw();
}
SceneManager.getInstance().refresh();
}
Aggregations