nucleation 0.10.21 → 0.10.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (314) hide show
  1. package/BlockPos.mjs +1 -0
  2. package/Dimensions.mjs +1 -0
  3. package/FieldRange.mjs +1 -0
  4. package/ItemScale.mjs +1 -0
  5. package/MeshBounds.mjs +1 -0
  6. package/MeshProgress.mjs +1 -0
  7. package/README.md +12 -0
  8. package/RegionBounds.mjs +1 -0
  9. package/Schematic.d.mts +32 -0
  10. package/Schematic.d.ts +32 -0
  11. package/Schematic.mjs +100 -0
  12. package/SdfBounds.mjs +1 -0
  13. package/SdfNormal.mjs +1 -0
  14. package/TextureInfo.mjs +1 -0
  15. package/diplomat-runtime.mjs +19 -14
  16. package/nucleation.wasm +0 -0
  17. package/package.json +7 -2
  18. package/renderer/AnimationEffect.d.mts +44 -0
  19. package/renderer/AnimationEffect.d.ts +44 -0
  20. package/renderer/AnimationEffect.mjs +204 -0
  21. package/renderer/Autostack.d.mts +43 -0
  22. package/renderer/Autostack.d.ts +43 -0
  23. package/renderer/Autostack.mjs +134 -0
  24. package/renderer/BlockPos.d.mts +28 -0
  25. package/renderer/BlockPos.d.ts +28 -0
  26. package/renderer/BlockPos.mjs +130 -0
  27. package/renderer/BlockState.d.mts +39 -0
  28. package/renderer/BlockState.d.ts +39 -0
  29. package/renderer/BlockState.mjs +134 -0
  30. package/renderer/Blocks.d.mts +91 -0
  31. package/renderer/Blocks.d.ts +91 -0
  32. package/renderer/Blocks.mjs +308 -0
  33. package/renderer/Brush.d.mts +99 -0
  34. package/renderer/Brush.d.ts +99 -0
  35. package/renderer/Brush.mjs +335 -0
  36. package/renderer/BuildAnimation.d.mts +179 -0
  37. package/renderer/BuildAnimation.d.ts +179 -0
  38. package/renderer/BuildAnimation.mjs +1148 -0
  39. package/renderer/BuildingTool.d.mts +46 -0
  40. package/renderer/BuildingTool.d.ts +46 -0
  41. package/renderer/BuildingTool.mjs +121 -0
  42. package/renderer/CellExecutor.d.mts +51 -0
  43. package/renderer/CellExecutor.d.ts +51 -0
  44. package/renderer/CellExecutor.mjs +171 -0
  45. package/renderer/CellularSdfConfig.d.mts +22 -0
  46. package/renderer/CellularSdfConfig.d.ts +22 -0
  47. package/renderer/CellularSdfConfig.mjs +69 -0
  48. package/renderer/ChunkMeshResult.d.mts +75 -0
  49. package/renderer/ChunkMeshResult.d.ts +75 -0
  50. package/renderer/ChunkMeshResult.mjs +253 -0
  51. package/renderer/CircuitBuilder.d.mts +118 -0
  52. package/renderer/CircuitBuilder.d.ts +118 -0
  53. package/renderer/CircuitBuilder.mjs +516 -0
  54. package/renderer/Curve3D.d.mts +27 -0
  55. package/renderer/Curve3D.d.ts +27 -0
  56. package/renderer/Curve3D.mjs +101 -0
  57. package/renderer/DefinitionRegion.d.mts +274 -0
  58. package/renderer/DefinitionRegion.d.ts +274 -0
  59. package/renderer/DefinitionRegion.mjs +973 -0
  60. package/renderer/Design.d.mts +348 -0
  61. package/renderer/Design.d.ts +348 -0
  62. package/renderer/Design.mjs +1334 -0
  63. package/renderer/Diff.d.mts +88 -0
  64. package/renderer/Diff.d.ts +88 -0
  65. package/renderer/Diff.mjs +316 -0
  66. package/renderer/Dimensions.d.mts +28 -0
  67. package/renderer/Dimensions.d.ts +28 -0
  68. package/renderer/Dimensions.mjs +130 -0
  69. package/renderer/DistanceField.d.mts +39 -0
  70. package/renderer/DistanceField.d.ts +39 -0
  71. package/renderer/DistanceField.mjs +114 -0
  72. package/renderer/ExecutionMode.d.mts +42 -0
  73. package/renderer/ExecutionMode.d.ts +42 -0
  74. package/renderer/ExecutionMode.mjs +127 -0
  75. package/renderer/Field3.d.mts +40 -0
  76. package/renderer/Field3.d.ts +40 -0
  77. package/renderer/Field3.mjs +160 -0
  78. package/renderer/FieldProgram.d.mts +40 -0
  79. package/renderer/FieldProgram.d.ts +40 -0
  80. package/renderer/FieldProgram.mjs +167 -0
  81. package/renderer/FieldProgramBinaryOp.d.mts +42 -0
  82. package/renderer/FieldProgramBinaryOp.d.ts +42 -0
  83. package/renderer/FieldProgramBinaryOp.mjs +118 -0
  84. package/renderer/FieldProgramBuilder.d.mts +104 -0
  85. package/renderer/FieldProgramBuilder.d.ts +104 -0
  86. package/renderer/FieldProgramBuilder.mjs +486 -0
  87. package/renderer/FieldProgramDistanceKind.d.mts +26 -0
  88. package/renderer/FieldProgramDistanceKind.d.ts +26 -0
  89. package/renderer/FieldProgramDistanceKind.mjs +78 -0
  90. package/renderer/FieldProgramUnaryOp.d.mts +34 -0
  91. package/renderer/FieldProgramUnaryOp.d.ts +34 -0
  92. package/renderer/FieldProgramUnaryOp.mjs +102 -0
  93. package/renderer/FieldProgramValueType.d.mts +25 -0
  94. package/renderer/FieldProgramValueType.d.ts +25 -0
  95. package/renderer/FieldProgramValueType.mjs +75 -0
  96. package/renderer/FieldRange.d.mts +15 -0
  97. package/renderer/FieldRange.d.ts +15 -0
  98. package/renderer/FieldRange.mjs +109 -0
  99. package/renderer/Fingerprint.d.mts +44 -0
  100. package/renderer/Fingerprint.d.ts +44 -0
  101. package/renderer/Fingerprint.mjs +197 -0
  102. package/renderer/GeneratedChunk.d.mts +35 -0
  103. package/renderer/GeneratedChunk.d.ts +35 -0
  104. package/renderer/GeneratedChunk.mjs +178 -0
  105. package/renderer/GeneratedChunkCoverage.d.mts +25 -0
  106. package/renderer/GeneratedChunkCoverage.d.ts +25 -0
  107. package/renderer/GeneratedChunkCoverage.mjs +75 -0
  108. package/renderer/GeneratedChunkOverlayMode.d.mts +24 -0
  109. package/renderer/GeneratedChunkOverlayMode.d.ts +24 -0
  110. package/renderer/GeneratedChunkOverlayMode.mjs +72 -0
  111. package/renderer/GeneratedWorldStream.d.mts +28 -0
  112. package/renderer/GeneratedWorldStream.d.ts +28 -0
  113. package/renderer/GeneratedWorldStream.mjs +86 -0
  114. package/renderer/Geo.d.mts +41 -0
  115. package/renderer/Geo.d.ts +41 -0
  116. package/renderer/Geo.mjs +121 -0
  117. package/renderer/Hdl.d.mts +56 -0
  118. package/renderer/Hdl.d.ts +56 -0
  119. package/renderer/Hdl.mjs +163 -0
  120. package/renderer/InterpolationSpace.d.mts +25 -0
  121. package/renderer/InterpolationSpace.d.ts +25 -0
  122. package/renderer/InterpolationSpace.mjs +73 -0
  123. package/renderer/IoLayout.d.mts +26 -0
  124. package/renderer/IoLayout.d.ts +26 -0
  125. package/renderer/IoLayout.mjs +81 -0
  126. package/renderer/IoLayoutBuilder.d.mts +73 -0
  127. package/renderer/IoLayoutBuilder.d.ts +73 -0
  128. package/renderer/IoLayoutBuilder.mjs +315 -0
  129. package/renderer/IoType.d.mts +41 -0
  130. package/renderer/IoType.d.ts +41 -0
  131. package/renderer/IoType.mjs +125 -0
  132. package/renderer/ItemModelConfig.d.mts +65 -0
  133. package/renderer/ItemModelConfig.d.ts +65 -0
  134. package/renderer/ItemModelConfig.mjs +223 -0
  135. package/renderer/ItemModelPackBuilder.d.mts +32 -0
  136. package/renderer/ItemModelPackBuilder.d.ts +32 -0
  137. package/renderer/ItemModelPackBuilder.mjs +104 -0
  138. package/renderer/ItemModelResult.d.mts +72 -0
  139. package/renderer/ItemModelResult.d.ts +72 -0
  140. package/renderer/ItemModelResult.mjs +268 -0
  141. package/renderer/ItemScale.d.mts +31 -0
  142. package/renderer/ItemScale.d.ts +31 -0
  143. package/renderer/ItemScale.mjs +133 -0
  144. package/renderer/LayoutFunction.d.mts +52 -0
  145. package/renderer/LayoutFunction.d.ts +52 -0
  146. package/renderer/LayoutFunction.mjs +159 -0
  147. package/renderer/MchprsWorld.d.mts +131 -0
  148. package/renderer/MchprsWorld.d.ts +131 -0
  149. package/renderer/MchprsWorld.mjs +423 -0
  150. package/renderer/MeshBounds.d.mts +40 -0
  151. package/renderer/MeshBounds.d.ts +40 -0
  152. package/renderer/MeshBounds.mjs +181 -0
  153. package/renderer/MeshConfig.d.mts +101 -0
  154. package/renderer/MeshConfig.d.ts +101 -0
  155. package/renderer/MeshConfig.mjs +306 -0
  156. package/renderer/MeshJob.d.mts +44 -0
  157. package/renderer/MeshJob.d.ts +44 -0
  158. package/renderer/MeshJob.mjs +116 -0
  159. package/renderer/MeshPhase.d.mts +38 -0
  160. package/renderer/MeshPhase.d.ts +38 -0
  161. package/renderer/MeshPhase.mjs +90 -0
  162. package/renderer/MeshProgress.d.mts +32 -0
  163. package/renderer/MeshProgress.d.ts +32 -0
  164. package/renderer/MeshProgress.mjs +134 -0
  165. package/renderer/MeshResult.d.mts +76 -0
  166. package/renderer/MeshResult.d.ts +76 -0
  167. package/renderer/MeshResult.mjs +269 -0
  168. package/renderer/MultiMeshResult.d.mts +50 -0
  169. package/renderer/MultiMeshResult.d.ts +50 -0
  170. package/renderer/MultiMeshResult.mjs +166 -0
  171. package/renderer/Nbt.d.mts +50 -0
  172. package/renderer/Nbt.d.ts +50 -0
  173. package/renderer/Nbt.mjs +161 -0
  174. package/renderer/NucleationError.d.mts +53 -0
  175. package/renderer/NucleationError.d.ts +53 -0
  176. package/renderer/NucleationError.mjs +136 -0
  177. package/renderer/OutputCondition.d.mts +45 -0
  178. package/renderer/OutputCondition.d.ts +45 -0
  179. package/renderer/OutputCondition.mjs +129 -0
  180. package/renderer/Palette.d.mts +157 -0
  181. package/renderer/Palette.d.ts +157 -0
  182. package/renderer/Palette.mjs +487 -0
  183. package/renderer/PaletteBuilder.d.mts +119 -0
  184. package/renderer/PaletteBuilder.d.ts +119 -0
  185. package/renderer/PaletteBuilder.mjs +457 -0
  186. package/renderer/README.md +67 -0
  187. package/renderer/RawMeshExport.d.mts +74 -0
  188. package/renderer/RawMeshExport.d.ts +74 -0
  189. package/renderer/RawMeshExport.mjs +243 -0
  190. package/renderer/RedstoneGraph.d.mts +58 -0
  191. package/renderer/RedstoneGraph.d.ts +58 -0
  192. package/renderer/RedstoneGraph.mjs +242 -0
  193. package/renderer/RegionBounds.d.mts +41 -0
  194. package/renderer/RegionBounds.d.ts +41 -0
  195. package/renderer/RegionBounds.mjs +182 -0
  196. package/renderer/RenderConfig.d.mts +101 -0
  197. package/renderer/RenderConfig.d.ts +101 -0
  198. package/renderer/RenderConfig.mjs +271 -0
  199. package/renderer/Renderer.d.mts +51 -0
  200. package/renderer/Renderer.d.ts +51 -0
  201. package/renderer/Renderer.mjs +219 -0
  202. package/renderer/ResourcePack.d.mts +105 -0
  203. package/renderer/ResourcePack.d.ts +105 -0
  204. package/renderer/ResourcePack.mjs +447 -0
  205. package/renderer/ResourcePackList.d.mts +32 -0
  206. package/renderer/ResourcePackList.d.ts +32 -0
  207. package/renderer/ResourcePackList.mjs +96 -0
  208. package/renderer/Routing.d.mts +66 -0
  209. package/renderer/Routing.d.ts +66 -0
  210. package/renderer/Routing.mjs +220 -0
  211. package/renderer/Schematic.d.mts +977 -0
  212. package/renderer/Schematic.d.ts +977 -0
  213. package/renderer/Schematic.mjs +3820 -0
  214. package/renderer/SchematicBuilder.d.mts +103 -0
  215. package/renderer/SchematicBuilder.d.ts +103 -0
  216. package/renderer/SchematicBuilder.mjs +401 -0
  217. package/renderer/SchematicRegions.d.mts +93 -0
  218. package/renderer/SchematicRegions.d.ts +93 -0
  219. package/renderer/SchematicRegions.mjs +411 -0
  220. package/renderer/SchematicSplitResult.d.mts +26 -0
  221. package/renderer/SchematicSplitResult.d.ts +26 -0
  222. package/renderer/SchematicSplitResult.mjs +84 -0
  223. package/renderer/Scripting.d.mts +40 -0
  224. package/renderer/Scripting.d.ts +40 -0
  225. package/renderer/Scripting.mjs +138 -0
  226. package/renderer/Sdf.d.mts +234 -0
  227. package/renderer/Sdf.d.ts +234 -0
  228. package/renderer/Sdf.mjs +1234 -0
  229. package/renderer/SdfAxis.d.mts +25 -0
  230. package/renderer/SdfAxis.d.ts +25 -0
  231. package/renderer/SdfAxis.mjs +75 -0
  232. package/renderer/SdfBounds.d.mts +19 -0
  233. package/renderer/SdfBounds.d.ts +19 -0
  234. package/renderer/SdfBounds.mjs +161 -0
  235. package/renderer/SdfCellMode.d.mts +26 -0
  236. package/renderer/SdfCellMode.d.ts +26 -0
  237. package/renderer/SdfCellMode.mjs +78 -0
  238. package/renderer/SdfNormal.d.mts +16 -0
  239. package/renderer/SdfNormal.d.ts +16 -0
  240. package/renderer/SdfNormal.mjs +122 -0
  241. package/renderer/Shape.d.mts +143 -0
  242. package/renderer/Shape.d.ts +143 -0
  243. package/renderer/Shape.mjs +458 -0
  244. package/renderer/SortStrategy.d.mts +86 -0
  245. package/renderer/SortStrategy.d.ts +86 -0
  246. package/renderer/SortStrategy.mjs +272 -0
  247. package/renderer/Store.d.mts +83 -0
  248. package/renderer/Store.d.ts +83 -0
  249. package/renderer/Store.mjs +369 -0
  250. package/renderer/StoreIo.d.mts +71 -0
  251. package/renderer/StoreIo.d.ts +71 -0
  252. package/renderer/StoreIo.mjs +292 -0
  253. package/renderer/TextureAtlas.d.mts +40 -0
  254. package/renderer/TextureAtlas.d.ts +40 -0
  255. package/renderer/TextureAtlas.mjs +122 -0
  256. package/renderer/TextureInfo.d.mts +34 -0
  257. package/renderer/TextureInfo.d.ts +34 -0
  258. package/renderer/TextureInfo.mjs +149 -0
  259. package/renderer/TickSettleMode.d.mts +34 -0
  260. package/renderer/TickSettleMode.d.ts +34 -0
  261. package/renderer/TickSettleMode.mjs +84 -0
  262. package/renderer/TickSimulation.d.mts +572 -0
  263. package/renderer/TickSimulation.d.ts +572 -0
  264. package/renderer/TickSimulation.mjs +1299 -0
  265. package/renderer/TypedCircuitExecutor.d.mts +101 -0
  266. package/renderer/TypedCircuitExecutor.d.ts +101 -0
  267. package/renderer/TypedCircuitExecutor.mjs +378 -0
  268. package/renderer/Value.d.mts +73 -0
  269. package/renderer/Value.d.ts +73 -0
  270. package/renderer/Value.mjs +275 -0
  271. package/renderer/VideoConfig.d.mts +15 -0
  272. package/renderer/VideoConfig.d.ts +15 -0
  273. package/renderer/VideoConfig.mjs +44 -0
  274. package/renderer/VoxelModel.d.mts +34 -0
  275. package/renderer/VoxelModel.d.ts +34 -0
  276. package/renderer/VoxelModel.mjs +113 -0
  277. package/renderer/Voxelizer.d.mts +80 -0
  278. package/renderer/Voxelizer.d.ts +80 -0
  279. package/renderer/Voxelizer.mjs +261 -0
  280. package/renderer/WorldChunkView.d.mts +75 -0
  281. package/renderer/WorldChunkView.d.ts +75 -0
  282. package/renderer/WorldChunkView.mjs +224 -0
  283. package/renderer/WorldGenerator.d.mts +75 -0
  284. package/renderer/WorldGenerator.d.ts +75 -0
  285. package/renderer/WorldGenerator.mjs +255 -0
  286. package/renderer/WorldSink.d.mts +50 -0
  287. package/renderer/WorldSink.d.ts +50 -0
  288. package/renderer/WorldSink.mjs +177 -0
  289. package/renderer/WorldStream.d.mts +45 -0
  290. package/renderer/WorldStream.d.ts +45 -0
  291. package/renderer/WorldStream.mjs +184 -0
  292. package/renderer/WsPartitionHints.d.mts +29 -0
  293. package/renderer/WsPartitionHints.d.ts +29 -0
  294. package/renderer/WsPartitionHints.mjs +102 -0
  295. package/renderer/WsProfile.d.mts +46 -0
  296. package/renderer/WsProfile.d.ts +46 -0
  297. package/renderer/WsProfile.mjs +152 -0
  298. package/renderer/WsRunResult.d.mts +83 -0
  299. package/renderer/WsRunResult.d.ts +83 -0
  300. package/renderer/WsRunResult.mjs +326 -0
  301. package/renderer/WsSegmentJob.d.mts +28 -0
  302. package/renderer/WsSegmentJob.d.ts +28 -0
  303. package/renderer/WsSegmentJob.mjs +81 -0
  304. package/renderer/diplomat-runtime.d.mts +15 -0
  305. package/renderer/diplomat-runtime.d.ts +15 -0
  306. package/renderer/diplomat-runtime.mjs +779 -0
  307. package/renderer/diplomat-wasm.mjs +52 -0
  308. package/renderer/diplomat.config.mjs +5 -0
  309. package/renderer/index.d.mts +193 -0
  310. package/renderer/index.d.ts +193 -0
  311. package/renderer/index.mjs +196 -0
  312. package/renderer/nucleation.wasm +0 -0
  313. package/renderer/veneer/design.d.ts +167 -0
  314. package/renderer/veneer/design.mjs +480 -0
@@ -0,0 +1,143 @@
1
+ // generated by diplomat-tool
2
+ import type { Curve3D } from "./Curve3D.mjs"
3
+ import type { NucleationError } from "./NucleationError.mjs"
4
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
5
+
6
+
7
+
8
+ /**
9
+ * A solid region of blocks: primitives (sphere, cuboid, …) and boolean
10
+ * combinations thereof. Wraps `ShapeEnum`.
11
+ */
12
+ export class Shape {
13
+ /** @internal */
14
+ get ffiValue(): pointer;
15
+ /** @internal */
16
+ constructor();
17
+
18
+
19
+ /**
20
+ * Thicken a sampled 3D curve into a parametric tube with the given radius.
21
+ * Inputs outside voxel-coordinate or bounded-work limits are rejected.
22
+ */
23
+ static tubeAlong(curve: Curve3D, radius: number): Shape;
24
+
25
+ /**
26
+ * Sphere centered at (`cx`, `cy`, `cz`) (truncated to block coordinates,
27
+ * matching the old `shape_sphere`).
28
+ */
29
+ static sphere(cx: number, cy: number, cz: number, radius: number): Shape;
30
+
31
+ /**
32
+ * Axis-aligned box spanning the two corners (inclusive).
33
+ */
34
+ static cuboid(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): Shape;
35
+
36
+ /**
37
+ * A closed 2D polygon extruded between two Y levels (inclusive). The
38
+ * footprint is `polygon_json`, a JSON array of `[x, z]` world-coordinate
39
+ * pairs in order (winding does not matter; the ring closes implicitly);
40
+ * any simple polygon works, concave ones included. This is the shape
41
+ * behind extruded building footprints, lake outlines, and plot fills.
42
+ * Errors with `Parse` on invalid JSON and `InvalidArgument` on non-UTF-8
43
+ * or fewer than three vertices.
44
+ */
45
+ static polygonPrism(polygonJson: string, yMin: number, yMax: number): Shape;
46
+
47
+ /**
48
+ * Ellipsoid centered at (`cx`, `cy`, `cz`) with per-axis radii.
49
+ */
50
+ static ellipsoid(cx: number, cy: number, cz: number, rx: number, ry: number, rz: number): Shape;
51
+
52
+ /**
53
+ * Cylinder from base point along an axis vector.
54
+ */
55
+ static cylinder(bx: number, by: number, bz: number, ax: number, ay: number, az: number, radius: number, height: number): Shape;
56
+
57
+ /**
58
+ * Cylinder spanning the segment between two points.
59
+ */
60
+ static cylinderBetween(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, radius: number): Shape;
61
+
62
+ /**
63
+ * Cone with apex at (`ax`, `ay`, `az`) opening along direction (`dx`, `dy`, `dz`).
64
+ */
65
+ static cone(ax: number, ay: number, az: number, dx: number, dy: number, dz: number, radius: number, height: number): Shape;
66
+
67
+ /**
68
+ * Torus centered at (`cx`, `cy`, `cz`) with the given major/minor radii and
69
+ * axis (`ax`, `ay`, `az`).
70
+ */
71
+ static torus(cx: number, cy: number, cz: number, majorR: number, minorR: number, ax: number, ay: number, az: number): Shape;
72
+
73
+ /**
74
+ * Rectangular pyramid: base center, half-extents, height, up-axis.
75
+ */
76
+ static pyramid(bx: number, by: number, bz: number, halfW: number, halfD: number, height: number, ax: number, ay: number, az: number): Shape;
77
+
78
+ /**
79
+ * Flat disk: center, radius, plane normal, thickness.
80
+ */
81
+ static disk(cx: number, cy: number, cz: number, radius: number, nx: number, ny: number, nz: number, thickness: number): Shape;
82
+
83
+ /**
84
+ * Finite plane patch: origin, two spanning vectors `u`/`v`, extents along
85
+ * each, thickness.
86
+ */
87
+ static plane(ox: number, oy: number, oz: number, ux: number, uy: number, uz: number, vx: number, vy: number, vz: number, uExt: number, vExt: number, thickness: number): Shape;
88
+
89
+ /**
90
+ * Filled triangle between three vertices, thickened by `thickness`.
91
+ */
92
+ static triangle(ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number, thickness: number): Shape;
93
+
94
+ /**
95
+ * Line segment between two points, thickened by `thickness`.
96
+ */
97
+ static line(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, thickness: number): Shape;
98
+
99
+ /**
100
+ * Bézier curve through `control_points` (flat `[x0, y0, z0, x1, y1, z1, …]`,
101
+ * so the length must be a non-zero multiple of 3), thickened by `thickness`
102
+ * and sampled at `resolution` steps.
103
+ */
104
+ static bezier(controlPoints: Array<number>, thickness: number, resolution: number): Shape;
105
+
106
+ /**
107
+ * Any SDF tree as a Shape: the same JSON the terrain sampler takes
108
+ * (primitives, smooth booleans, noise — see the SDF guide) becomes
109
+ * fillable with every brush, combinable with other shapes, and
110
+ * usable in masked fills. Normals come from the field gradient, so
111
+ * the shaded brush shades smooth blends smoothly. Errors with
112
+ * `Parse` on invalid JSON and `InvalidArgument` for unbounded trees
113
+ * (use `sdf_bounded`).
114
+ */
115
+ static sdf(sdfJson: string): Shape;
116
+
117
+ /**
118
+ * Like `sdf`, with explicit sampling bounds (inclusive block
119
+ * coordinates) for unbounded trees such as planes.
120
+ */
121
+ static sdfBounded(sdfJson: string, minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): Shape;
122
+
123
+ /**
124
+ * Hollowed-out copy of this shape with the given wall thickness (clones the
125
+ * input, like the old `shape_hollow`).
126
+ */
127
+ hollow(thickness: number): Shape;
128
+
129
+ /**
130
+ * Boolean union of this shape and `other` (clones both inputs).
131
+ */
132
+ unionWith(other: Shape): Shape;
133
+
134
+ /**
135
+ * Boolean intersection of this shape and `other` (clones both inputs).
136
+ */
137
+ intersectionWith(other: Shape): Shape;
138
+
139
+ /**
140
+ * Boolean difference: this shape minus `other` (clones both inputs).
141
+ */
142
+ differenceWith(other: Shape): Shape;
143
+ }
@@ -0,0 +1,143 @@
1
+ // generated by diplomat-tool
2
+ import type { Curve3D } from "./Curve3D.mjs"
3
+ import type { NucleationError } from "./NucleationError.mjs"
4
+ import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
5
+
6
+
7
+
8
+ /**
9
+ * A solid region of blocks: primitives (sphere, cuboid, …) and boolean
10
+ * combinations thereof. Wraps `ShapeEnum`.
11
+ */
12
+ export class Shape {
13
+ /** @internal */
14
+ get ffiValue(): pointer;
15
+ /** @internal */
16
+ constructor();
17
+
18
+
19
+ /**
20
+ * Thicken a sampled 3D curve into a parametric tube with the given radius.
21
+ * Inputs outside voxel-coordinate or bounded-work limits are rejected.
22
+ */
23
+ static tubeAlong(curve: Curve3D, radius: number): Shape;
24
+
25
+ /**
26
+ * Sphere centered at (`cx`, `cy`, `cz`) (truncated to block coordinates,
27
+ * matching the old `shape_sphere`).
28
+ */
29
+ static sphere(cx: number, cy: number, cz: number, radius: number): Shape;
30
+
31
+ /**
32
+ * Axis-aligned box spanning the two corners (inclusive).
33
+ */
34
+ static cuboid(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): Shape;
35
+
36
+ /**
37
+ * A closed 2D polygon extruded between two Y levels (inclusive). The
38
+ * footprint is `polygon_json`, a JSON array of `[x, z]` world-coordinate
39
+ * pairs in order (winding does not matter; the ring closes implicitly);
40
+ * any simple polygon works, concave ones included. This is the shape
41
+ * behind extruded building footprints, lake outlines, and plot fills.
42
+ * Errors with `Parse` on invalid JSON and `InvalidArgument` on non-UTF-8
43
+ * or fewer than three vertices.
44
+ */
45
+ static polygonPrism(polygonJson: string, yMin: number, yMax: number): Shape;
46
+
47
+ /**
48
+ * Ellipsoid centered at (`cx`, `cy`, `cz`) with per-axis radii.
49
+ */
50
+ static ellipsoid(cx: number, cy: number, cz: number, rx: number, ry: number, rz: number): Shape;
51
+
52
+ /**
53
+ * Cylinder from base point along an axis vector.
54
+ */
55
+ static cylinder(bx: number, by: number, bz: number, ax: number, ay: number, az: number, radius: number, height: number): Shape;
56
+
57
+ /**
58
+ * Cylinder spanning the segment between two points.
59
+ */
60
+ static cylinderBetween(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, radius: number): Shape;
61
+
62
+ /**
63
+ * Cone with apex at (`ax`, `ay`, `az`) opening along direction (`dx`, `dy`, `dz`).
64
+ */
65
+ static cone(ax: number, ay: number, az: number, dx: number, dy: number, dz: number, radius: number, height: number): Shape;
66
+
67
+ /**
68
+ * Torus centered at (`cx`, `cy`, `cz`) with the given major/minor radii and
69
+ * axis (`ax`, `ay`, `az`).
70
+ */
71
+ static torus(cx: number, cy: number, cz: number, majorR: number, minorR: number, ax: number, ay: number, az: number): Shape;
72
+
73
+ /**
74
+ * Rectangular pyramid: base center, half-extents, height, up-axis.
75
+ */
76
+ static pyramid(bx: number, by: number, bz: number, halfW: number, halfD: number, height: number, ax: number, ay: number, az: number): Shape;
77
+
78
+ /**
79
+ * Flat disk: center, radius, plane normal, thickness.
80
+ */
81
+ static disk(cx: number, cy: number, cz: number, radius: number, nx: number, ny: number, nz: number, thickness: number): Shape;
82
+
83
+ /**
84
+ * Finite plane patch: origin, two spanning vectors `u`/`v`, extents along
85
+ * each, thickness.
86
+ */
87
+ static plane(ox: number, oy: number, oz: number, ux: number, uy: number, uz: number, vx: number, vy: number, vz: number, uExt: number, vExt: number, thickness: number): Shape;
88
+
89
+ /**
90
+ * Filled triangle between three vertices, thickened by `thickness`.
91
+ */
92
+ static triangle(ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number, thickness: number): Shape;
93
+
94
+ /**
95
+ * Line segment between two points, thickened by `thickness`.
96
+ */
97
+ static line(x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, thickness: number): Shape;
98
+
99
+ /**
100
+ * Bézier curve through `control_points` (flat `[x0, y0, z0, x1, y1, z1, …]`,
101
+ * so the length must be a non-zero multiple of 3), thickened by `thickness`
102
+ * and sampled at `resolution` steps.
103
+ */
104
+ static bezier(controlPoints: Array<number>, thickness: number, resolution: number): Shape;
105
+
106
+ /**
107
+ * Any SDF tree as a Shape: the same JSON the terrain sampler takes
108
+ * (primitives, smooth booleans, noise — see the SDF guide) becomes
109
+ * fillable with every brush, combinable with other shapes, and
110
+ * usable in masked fills. Normals come from the field gradient, so
111
+ * the shaded brush shades smooth blends smoothly. Errors with
112
+ * `Parse` on invalid JSON and `InvalidArgument` for unbounded trees
113
+ * (use `sdf_bounded`).
114
+ */
115
+ static sdf(sdfJson: string): Shape;
116
+
117
+ /**
118
+ * Like `sdf`, with explicit sampling bounds (inclusive block
119
+ * coordinates) for unbounded trees such as planes.
120
+ */
121
+ static sdfBounded(sdfJson: string, minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number): Shape;
122
+
123
+ /**
124
+ * Hollowed-out copy of this shape with the given wall thickness (clones the
125
+ * input, like the old `shape_hollow`).
126
+ */
127
+ hollow(thickness: number): Shape;
128
+
129
+ /**
130
+ * Boolean union of this shape and `other` (clones both inputs).
131
+ */
132
+ unionWith(other: Shape): Shape;
133
+
134
+ /**
135
+ * Boolean intersection of this shape and `other` (clones both inputs).
136
+ */
137
+ intersectionWith(other: Shape): Shape;
138
+
139
+ /**
140
+ * Boolean difference: this shape minus `other` (clones both inputs).
141
+ */
142
+ differenceWith(other: Shape): Shape;
143
+ }