Steps toward improved textures in turtle

This commit is contained in:
Tony Garnock-Jones 2023-02-14 22:02:32 +01:00
parent 4c618250fe
commit 1d30f3fc13
2 changed files with 82 additions and 80 deletions

View File

@ -38,91 +38,92 @@
<sprite "house" []
<move <v 0.0 0.0 10.0>
<rotate <v 0.0 0.0 0.0>
<turtle [
[
to [f]
GetPos to p
GetHeading to h
f
h SetHeading
p SetPos
] to saved
<texture ["textures/oak-herringbone-5e80fb40b00c9-1200.jpg"]
<turtle [
[
to [f]
GetPos to p
GetHeading to h
f
h SetHeading
p SetPos
] to saved
quote PenUp to PU
quote PenDown to PD
[ to [f] PD f PU ] to draw
[ to [f] PD f DefinePen GetPen ] to drawPen
quote PenUp to PU
quote PenDown to PD
[ to [f] PD f PU ] to draw
[ to [f] PD f DefinePen GetPen ] to drawPen
[
to [f]
[
ClearPen
90 U
f
] saved
to pen
[ 0 F pen SetPen 0 F ]
] to recordPen
[
to [f]
[
ClearPen
90 U
f
] saved
to pen
[ 0 F pen SetPen 0 F ]
] to recordPen
[ to [s1 s2] [s1 F 90 L s2 F 90 L] 2 times ] to rectL
[ to [s1 s2] [s1 F 90 L s2 F 90 L] 2 times ] to rectL
2.5 to interiorWallHeight
2.5 to exteriorWallHeight
2.11 to doorHeight
[ 90 R 0.06 F 90 L ] to setup
2.5 to interiorWallHeight
2.5 to exteriorWallHeight
2.11 to doorHeight
[ 90 R 0.06 F 90 L ] to setup
[setup [interiorWallHeight 0.12 rectL] drawPen] recordPen to interiorWall
[setup [exteriorWallHeight 0.25 rectL] drawPen] recordPen to exteriorWall
[setup doorHeight F [interiorWallHeight doorHeight - 0.12 rectL] drawPen] recordPen to interiorDoor
[setup doorHeight F [exteriorWallHeight doorHeight - 0.25 rectL] drawPen] recordPen to exteriorDoor
[setup [interiorWallHeight 0.12 rectL] drawPen] recordPen to interiorWall
[setup [exteriorWallHeight 0.25 rectL] drawPen] recordPen to exteriorWall
[setup doorHeight F [interiorWallHeight doorHeight - 0.12 rectL] drawPen] recordPen to interiorDoor
[setup doorHeight F [exteriorWallHeight doorHeight - 0.25 rectL] drawPen] recordPen to exteriorDoor
[to [f] interiorDoor f interiorWall] to iDoor
[to [f] exteriorDoor f exteriorWall] to eDoor
[to [f] interiorDoor f interiorWall] to iDoor
[to [f] exteriorDoor f exteriorWall] to eDoor
[ to [angle length] [ angle L [length F] draw ] saved ] to wall
[ to [angle length] [ angle L [length F] draw ] saved ] to wall
#t SetMiter
[ 0 F ] to miter
[ 90 L miter ] to --
[ 90 R miter ] to ++
#t SetMiter
[ 0 F ] to miter
[ 90 L miter ] to --
[ 90 R miter ] to ++
exteriorWall
[
2.1 F --
0.3 F [1 F] eDoor 0.9 F ++
7.7 F ++
13.3 F ++
0.7 F --
1.3 F [0.7 F] eDoor 0.2 F ++
4.8 F ++
1.1 F [0.8 F] eDoor 0.3 F --
4.3 F ++
5.9 F [1.4 F] eDoor 3.8 F ++
] draw
exteriorWall
[
2.1 F --
0.3 F [1 F] eDoor 0.9 F ++
7.7 F ++
13.3 F ++
0.7 F --
1.3 F [0.7 F] eDoor 0.2 F ++
4.8 F ++
1.1 F [0.8 F] eDoor 0.3 F --
4.3 F ++
5.9 F [1.4 F] eDoor 3.8 F ++
] draw
interiorWall
Home
2.1 F
[0.2 F [1 F] iDoor 6.5 F] draw
1.1 B [90 L [0.2 F [1 F] iDoor 1 F] draw] saved
1.4 B [
++
[2.1 F ++ 1 F [0.6 F] iDoor 1.4 F] draw 3 B
0.7 F -- [0.1 F [0.7 F] iDoor 0.1 F] draw
[[2.7 F ++ 0.6 F] draw] saved
++ 3.2 B
[4.2 F -- 0.2 F [1 F] iDoor 1.5 F -- 0.4 F ++] draw
[0.1 F [0.7 F] iDoor 0.2 F] draw
[-- [3.8 F] draw] saved
[0.9 F [0.6 F] iDoor 3.0 F] draw
[-- [3.1 F] draw] saved
[0.2 F [0.7 F] iDoor 0.4 F] draw
[++ [1.7 F] draw] saved
[0.1 F [0.6 F] iDoor 0.2 F] draw
] saved
1.6 B [90 L [0.2 F [1 F] iDoor 1 F] draw] saved
1.4 B [90 R [2.3 F [0.7 F] iDoor 6.2 F [0.9 F] iDoor 1 F] draw] saved
]>
>>>
interiorWall
Home
2.1 F
[0.2 F [1 F] iDoor 6.5 F] draw
1.1 B [90 L [0.2 F [1 F] iDoor 1 F] draw] saved
1.4 B [
++
[2.1 F ++ 1 F [0.6 F] iDoor 1.4 F] draw 3 B
0.7 F -- [0.1 F [0.7 F] iDoor 0.1 F] draw
[[2.7 F ++ 0.6 F] draw] saved
++ 3.2 B
[4.2 F -- 0.2 F [1 F] iDoor 1.5 F -- 0.4 F ++] draw
[0.1 F [0.7 F] iDoor 0.2 F] draw
[-- [3.8 F] draw] saved
[0.9 F [0.6 F] iDoor 3.0 F] draw
[-- [3.1 F] draw] saved
[0.2 F [0.7 F] iDoor 0.4 F] draw
[++ [1.7 F] draw] saved
[0.1 F [0.6 F] iDoor 0.2 F] draw
] saved
1.6 B [90 L [0.2 F [1 F] iDoor 1 F] draw] saved
1.4 B [90 R [2.3 F [0.7 F] iDoor 6.2 F [0.9 F] iDoor 1 F] draw] saved
]>
>>>>
[]

View File

@ -1,6 +1,5 @@
import {
Mesh,
MeshBuilder,
Plane,
Quaternion,
Ray,
@ -166,9 +165,11 @@ export class TurtleVM extends Cat.VM<TurtleVM> {
function pushPoint(pathIndex: number, stepIndex: number): number {
const pointIndex = positions.length / 3;
positions.push(... paths[pathIndex][stepIndex].asArray());
uvs.push(us[pathIndex][stepIndex] / uTotal[pathIndex],
vs[stepIndex][pathIndex] / vTotal[stepIndex]);
const p = paths[pathIndex][stepIndex];
positions.push(... p.asArray());
uvs.push((p.x - p.z) / 1.2, (p.y) / 0.9);
// uvs.push(us[pathIndex][stepIndex] / uTotal[pathIndex],
// vs[stepIndex][pathIndex] / vTotal[stepIndex]);
return pointIndex;
}