-
-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1154595
commit db4cd73
Showing
5 changed files
with
706 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
66 changes: 66 additions & 0 deletions
66
src/main/java/com/marginallyclever/ro3/node/nodes/marlinsimulation/MarlinCoordinate.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
package com.marginallyclever.ro3.node.nodes.marlinsimulation; | ||
|
||
import javax.vecmath.Vector3d; | ||
import java.util.Arrays; | ||
|
||
public class MarlinCoordinate { | ||
public static final int SIZE=6; | ||
public final double [] p = new double[SIZE]; | ||
|
||
public MarlinCoordinate() {} | ||
|
||
public MarlinCoordinate(MarlinCoordinate other) { | ||
set(other); | ||
} | ||
|
||
public void add(MarlinCoordinate other) { | ||
for(int i=0;i<SIZE;++i) { | ||
p[i] += other.p[i]; | ||
} | ||
} | ||
|
||
public void sub(MarlinCoordinate other) { | ||
for(int i=0;i<SIZE;++i) { | ||
p[i] -= other.p[i]; | ||
} | ||
} | ||
|
||
public void scale(double s) { | ||
for(int i=0;i<SIZE;++i) { | ||
p[i] *= s; | ||
} | ||
} | ||
|
||
public void set(MarlinCoordinate other) { | ||
System.arraycopy(other.p, 0, p, 0, SIZE); | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return super.toString() + Arrays.toString(p); | ||
} | ||
|
||
public void normalize() { | ||
double len = length(); | ||
if(len==0) return; | ||
scale(1.0/len); | ||
} | ||
|
||
public double length() { | ||
return Math.sqrt(dot(this)); | ||
} | ||
|
||
public void sub(MarlinCoordinate a, MarlinCoordinate b) { | ||
for(int i=0;i<SIZE;++i) { | ||
this.p[i] = a.p[i] - b.p[i]; | ||
} | ||
} | ||
|
||
public double dot(MarlinCoordinate b) { | ||
double sum=0; | ||
for(int i=0;i<SIZE;++i) { | ||
sum += p[i] * b.p[i]; | ||
} | ||
return sum; | ||
} | ||
} |
38 changes: 38 additions & 0 deletions
38
src/main/java/com/marginallyclever/ro3/node/nodes/marlinsimulation/MarlinSettings.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
package com.marginallyclever.ro3.node.nodes.marlinsimulation; | ||
|
||
public class MarlinSettings { | ||
public static final int MAX_ACCELERATION = 1; | ||
public static final int SEGMENTS_PER_SECOND = 2; | ||
public static final int MIN_SEGMENT_LENGTH = 3; | ||
public static final int BLOCK_BUFFER_SIZE = 4; | ||
public static final int MIN_SEG_TIME = 5; | ||
public static final int MINIMUM_PLANNER_SPEED = 6; | ||
public static final int HANDLE_SMALL_SEGMENTS = 7; | ||
public static final int MAX_FEEDRATE = 8; | ||
|
||
public double getDouble(int key) { | ||
return switch (key) { | ||
case MAX_ACCELERATION -> 3000; | ||
case MAX_FEEDRATE -> 5; | ||
case MIN_SEGMENT_LENGTH -> 0.5; | ||
case MINIMUM_PLANNER_SPEED -> 0.05; | ||
default -> 0; | ||
}; | ||
} | ||
|
||
public int getInteger(int key) { | ||
return switch (key) { | ||
case SEGMENTS_PER_SECOND -> 5; | ||
case BLOCK_BUFFER_SIZE -> 16; | ||
case MIN_SEG_TIME -> 100; | ||
default -> 0; | ||
}; | ||
} | ||
|
||
public boolean getBoolean(int key) { | ||
if (key == HANDLE_SMALL_SEGMENTS) { | ||
return false; | ||
} | ||
return false; | ||
} | ||
} |
Oops, something went wrong.