Skip to content

Commit 344ce5d

Browse files
committed
Boxxy style
1 parent 5950ea3 commit 344ce5d

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

src/main/java/com/marginallyclever/makelangelo/donatelloimpl/nodes/points/PatternAtPoints.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
11
package com.marginallyclever.makelangelo.donatelloimpl.nodes.points;
22

3+
import com.marginallyclever.donatello.ports.InputImage;
34
import com.marginallyclever.makelangelo.donatelloimpl.ports.InputTurtle;
45
import com.marginallyclever.makelangelo.donatelloimpl.ports.OutputTurtle;
56
import com.marginallyclever.makelangelo.turtle.Turtle;
67
import com.marginallyclever.nodegraphcore.Node;
78

9+
import java.awt.*;
10+
import java.awt.image.BufferedImage;
11+
812
/**
9-
* Place a pattern on a path.
13+
* Place a pattern on a path. Modulate the pattern by the image.
1014
*/
1115
public class PatternAtPoints extends Node {
1216
private final InputTurtle pattern = new InputTurtle("pattern");
1317
private final InputPoints listOfPoints = new InputPoints("points");
18+
private final InputImage inputImage = new InputImage("image");
1419
private final OutputTurtle output = new OutputTurtle("output");
1520

1621
public PatternAtPoints() {
1722
super("PatternAtPoints");
1823
addVariable(pattern);
1924
addVariable(listOfPoints);
25+
addVariable(inputImage);
2026
addVariable(output);
2127
}
2228

@@ -25,16 +31,32 @@ public void update() {
2531
Turtle result = new Turtle();
2632
Turtle myPattern = pattern.getValue();
2733
ListOfPoints points = listOfPoints.getValue();
34+
BufferedImage image = inputImage.getValue();
35+
var w = image.getWidth();
36+
var h = image.getHeight();
37+
2838
if(points.isEmpty()) {
2939
setComplete(100);
3040
output.send(result);
3141
return;
3242
}
43+
44+
double min = 0.1;
45+
double max = 2.0;
46+
3347
setComplete(0);
3448
int total = points.size();
3549
int i=0;
3650
for(var p : points) {
3751
Turtle stamp = new Turtle(myPattern);
52+
if(p.x>=0 && p.x<w && p.y>=0 && p.y<h) {
53+
// inside image
54+
var c = new Color(image.getRGB((int)p.x,(int)p.y));
55+
// get intensity of c as a value 0....1
56+
var intensity = 1.0-(c.getBlue()+c.getGreen()+c.getRed())/(3.0*255.0);
57+
var i2 = min + intensity * (max-min);
58+
stamp.scale(i2,i2);
59+
}
3860
stamp.translate(p.x,p.y);
3961
result.add(stamp);
4062
setComplete((100*i++/total));

src/main/java/com/marginallyclever/makelangelo/donatelloimpl/nodes/turtle/shapes/NGon.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public NGon() {
2323
super("NGon");
2424
addVariable(radius);
2525
addVariable(steps);
26+
addVariable(angle);
2627
addVariable(contents);
2728
}
2829

0 commit comments

Comments
 (0)