|
@@ -43,11 +43,7 @@ public class HolonElement implements LocalMode, GraphEditable{
|
|
|
@Expose
|
|
|
private boolean active;
|
|
|
/** Gives us whether this element is flexible and can flexibly use any part of the energy in flexibleEnergyAvailable */
|
|
|
- @Expose
|
|
|
- private boolean flexible;
|
|
|
- /** Flexibility (meaning the actual */
|
|
|
- @Expose
|
|
|
- private float flexibleEnergyAvailable;
|
|
|
+
|
|
|
|
|
|
|
|
|
/** Place where the Object is Stored */
|
|
@@ -57,8 +53,8 @@ public class HolonElement implements LocalMode, GraphEditable{
|
|
|
@Expose
|
|
|
private int id;
|
|
|
|
|
|
- //private static final int DEFAULT_GRAPH_LENGTH=100;
|
|
|
- //private int graphLength=DEFAULT_GRAPH_LENGTH; Unimplementable due to former developer's dark magic.
|
|
|
+
|
|
|
+ public java.util.List<Flexibility> flexList;
|
|
|
|
|
|
/*
|
|
|
* Energy at each point of the graph with 100 predefined points. At the
|
|
@@ -100,8 +96,6 @@ public class HolonElement implements LocalMode, GraphEditable{
|
|
|
initGraphPoints();
|
|
|
sampleGraph();
|
|
|
setId(id);
|
|
|
- setFlexibleEnergyAvailable(0);
|
|
|
- setFlexible(false);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -124,8 +118,7 @@ public class HolonElement implements LocalMode, GraphEditable{
|
|
|
sampleGraph();
|
|
|
setSaving(null);
|
|
|
setId(IdCounterElem.nextId());
|
|
|
- setFlexibleEnergyAvailable(0);
|
|
|
- setFlexible(false);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public String getObjName() {
|
|
@@ -246,11 +239,7 @@ public class HolonElement implements LocalMode, GraphEditable{
|
|
|
* @return energyPerElement value
|
|
|
*/
|
|
|
public float getOverallEnergyAtTimeStep(int timestep) {
|
|
|
- if (flexible) {
|
|
|
- return ((float) amount) * energyPerElement;
|
|
|
- } else {
|
|
|
- return ((float) amount) * energyPerElement * curveSample[IndexTranslator.getEffectiveIndex(this, timestep)];
|
|
|
- }
|
|
|
+ return ((float) amount) * energyPerElement * curveSample[IndexTranslator.getEffectiveIndex(this, timestep)];
|
|
|
}
|
|
|
/**
|
|
|
* Get the energyPerElement currently(at given time step) available
|
|
@@ -259,48 +248,6 @@ public class HolonElement implements LocalMode, GraphEditable{
|
|
|
return amount * energyPerElement * this.curveSample[IndexTranslator.getEffectiveIndex(this, timestep)];
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Get the flexibleEnergyAvailable of an element
|
|
|
- */
|
|
|
- public float getFlexibleEnergyAvailablePerElement() {
|
|
|
- return this.flexibleEnergyAvailable;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Set the flexibleEnergyAvailable of an element
|
|
|
- */
|
|
|
- public void setFlexibleEnergyAvailable(float energy) {
|
|
|
- this.flexibleEnergyAvailable = energy;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Get the flexibleEnergyAvailable of an element
|
|
|
- */
|
|
|
- public boolean isFlexible() {
|
|
|
- return this.flexible;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * Set the flexibleEnergyAvailable of an element, ~switches energyPerElement and flexible energyPerElement
|
|
|
- */
|
|
|
- public void setFlexible(boolean b) {
|
|
|
- // if flexibleEnergyAvailable was set to true
|
|
|
- if (b && !this.flexible) {
|
|
|
- this.flexible = b;
|
|
|
- // move energyPerElement to flexibleEnergyAvailable (becomes the possible-to-use energyPerElement)
|
|
|
- if (getEnergyPerElement() != 0) {
|
|
|
- setFlexibleEnergyAvailable(getEnergyPerElement());
|
|
|
- setEnergyPerElement(0);
|
|
|
- }
|
|
|
- } else if (!b && this.flexible) {
|
|
|
- this.flexible = b;
|
|
|
- // move the energyPerElement to actually used energyPerElement and set flexible amount to 0
|
|
|
- if (getFlexibleEnergyAvailablePerElement() != 0) {
|
|
|
- setEnergyPerElement(getFlexibleEnergyAvailablePerElement());
|
|
|
- }
|
|
|
- setFlexibleEnergyAvailable(0);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
* Get the Id of the selected HolonElement.
|
|
@@ -342,9 +289,7 @@ public class HolonElement implements LocalMode, GraphEditable{
|
|
|
.append(", eleName=").append(eleName)
|
|
|
.append(", amount=").append(amount)
|
|
|
.append(", active=").append(active)
|
|
|
- .append(", flexible=").append(flexible)
|
|
|
- .append(", energyPerElement used=").append(energyPerElement)
|
|
|
- .append(", flexible energyPerElement available=").append(flexibleEnergyAvailable);
|
|
|
+ .append(", energyPerElement used=").append(energyPerElement);
|
|
|
sb.append("]");
|
|
|
|
|
|
return sb.toString();
|
|
@@ -433,7 +378,7 @@ public class HolonElement implements LocalMode, GraphEditable{
|
|
|
/**
|
|
|
* Helper method for {@link HolonElement#sampleGraph(int)}.
|
|
|
* <p>
|
|
|
- * Its get the start and Endposition and calculate the Points in between for the Beziér Curve.
|
|
|
+ * Its get the start and Endposition and calculate the Points in between for the Bezi�r Curve.
|
|
|
* Then its get the Y Value a.k.a. the percentage from the curve at the X value t.
|
|
|
* @param t is in Range [0,1] and represent how much the X value is traverse along the Curve between the two Points.
|
|
|
* @param start is the start Point of the Curve.
|
|
@@ -459,7 +404,7 @@ public class HolonElement implements LocalMode, GraphEditable{
|
|
|
*/
|
|
|
private Point.Double getBezierPoint(double t, Point.Double p0, Point.Double p1,Point.Double p2,Point.Double p3) {
|
|
|
/*
|
|
|
- * Calculate Beziér:
|
|
|
+ * Calculate Bezi�r:
|
|
|
* B(t) = (1-t)^3 * P0 + 3*(1-t)^2 * t * P1 + 3*(1-t)*t^2 * P2 + t^3 * P3 , 0 < t < 1
|
|
|
*
|
|
|
* Source: //http://www.theappguruz.com/blog/bezier-curve-in-games
|