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.
- package/BlockPos.mjs +1 -0
- package/Dimensions.mjs +1 -0
- package/FieldRange.mjs +1 -0
- package/ItemScale.mjs +1 -0
- package/MeshBounds.mjs +1 -0
- package/MeshProgress.mjs +1 -0
- package/README.md +12 -0
- package/RegionBounds.mjs +1 -0
- package/Schematic.d.mts +32 -0
- package/Schematic.d.ts +32 -0
- package/Schematic.mjs +100 -0
- package/SdfBounds.mjs +1 -0
- package/SdfNormal.mjs +1 -0
- package/TextureInfo.mjs +1 -0
- package/diplomat-runtime.mjs +19 -14
- package/nucleation.wasm +0 -0
- package/package.json +7 -2
- package/renderer/AnimationEffect.d.mts +44 -0
- package/renderer/AnimationEffect.d.ts +44 -0
- package/renderer/AnimationEffect.mjs +204 -0
- package/renderer/Autostack.d.mts +43 -0
- package/renderer/Autostack.d.ts +43 -0
- package/renderer/Autostack.mjs +134 -0
- package/renderer/BlockPos.d.mts +28 -0
- package/renderer/BlockPos.d.ts +28 -0
- package/renderer/BlockPos.mjs +130 -0
- package/renderer/BlockState.d.mts +39 -0
- package/renderer/BlockState.d.ts +39 -0
- package/renderer/BlockState.mjs +134 -0
- package/renderer/Blocks.d.mts +91 -0
- package/renderer/Blocks.d.ts +91 -0
- package/renderer/Blocks.mjs +308 -0
- package/renderer/Brush.d.mts +99 -0
- package/renderer/Brush.d.ts +99 -0
- package/renderer/Brush.mjs +335 -0
- package/renderer/BuildAnimation.d.mts +179 -0
- package/renderer/BuildAnimation.d.ts +179 -0
- package/renderer/BuildAnimation.mjs +1148 -0
- package/renderer/BuildingTool.d.mts +46 -0
- package/renderer/BuildingTool.d.ts +46 -0
- package/renderer/BuildingTool.mjs +121 -0
- package/renderer/CellExecutor.d.mts +51 -0
- package/renderer/CellExecutor.d.ts +51 -0
- package/renderer/CellExecutor.mjs +171 -0
- package/renderer/CellularSdfConfig.d.mts +22 -0
- package/renderer/CellularSdfConfig.d.ts +22 -0
- package/renderer/CellularSdfConfig.mjs +69 -0
- package/renderer/ChunkMeshResult.d.mts +75 -0
- package/renderer/ChunkMeshResult.d.ts +75 -0
- package/renderer/ChunkMeshResult.mjs +253 -0
- package/renderer/CircuitBuilder.d.mts +118 -0
- package/renderer/CircuitBuilder.d.ts +118 -0
- package/renderer/CircuitBuilder.mjs +516 -0
- package/renderer/Curve3D.d.mts +27 -0
- package/renderer/Curve3D.d.ts +27 -0
- package/renderer/Curve3D.mjs +101 -0
- package/renderer/DefinitionRegion.d.mts +274 -0
- package/renderer/DefinitionRegion.d.ts +274 -0
- package/renderer/DefinitionRegion.mjs +973 -0
- package/renderer/Design.d.mts +348 -0
- package/renderer/Design.d.ts +348 -0
- package/renderer/Design.mjs +1334 -0
- package/renderer/Diff.d.mts +88 -0
- package/renderer/Diff.d.ts +88 -0
- package/renderer/Diff.mjs +316 -0
- package/renderer/Dimensions.d.mts +28 -0
- package/renderer/Dimensions.d.ts +28 -0
- package/renderer/Dimensions.mjs +130 -0
- package/renderer/DistanceField.d.mts +39 -0
- package/renderer/DistanceField.d.ts +39 -0
- package/renderer/DistanceField.mjs +114 -0
- package/renderer/ExecutionMode.d.mts +42 -0
- package/renderer/ExecutionMode.d.ts +42 -0
- package/renderer/ExecutionMode.mjs +127 -0
- package/renderer/Field3.d.mts +40 -0
- package/renderer/Field3.d.ts +40 -0
- package/renderer/Field3.mjs +160 -0
- package/renderer/FieldProgram.d.mts +40 -0
- package/renderer/FieldProgram.d.ts +40 -0
- package/renderer/FieldProgram.mjs +167 -0
- package/renderer/FieldProgramBinaryOp.d.mts +42 -0
- package/renderer/FieldProgramBinaryOp.d.ts +42 -0
- package/renderer/FieldProgramBinaryOp.mjs +118 -0
- package/renderer/FieldProgramBuilder.d.mts +104 -0
- package/renderer/FieldProgramBuilder.d.ts +104 -0
- package/renderer/FieldProgramBuilder.mjs +486 -0
- package/renderer/FieldProgramDistanceKind.d.mts +26 -0
- package/renderer/FieldProgramDistanceKind.d.ts +26 -0
- package/renderer/FieldProgramDistanceKind.mjs +78 -0
- package/renderer/FieldProgramUnaryOp.d.mts +34 -0
- package/renderer/FieldProgramUnaryOp.d.ts +34 -0
- package/renderer/FieldProgramUnaryOp.mjs +102 -0
- package/renderer/FieldProgramValueType.d.mts +25 -0
- package/renderer/FieldProgramValueType.d.ts +25 -0
- package/renderer/FieldProgramValueType.mjs +75 -0
- package/renderer/FieldRange.d.mts +15 -0
- package/renderer/FieldRange.d.ts +15 -0
- package/renderer/FieldRange.mjs +109 -0
- package/renderer/Fingerprint.d.mts +44 -0
- package/renderer/Fingerprint.d.ts +44 -0
- package/renderer/Fingerprint.mjs +197 -0
- package/renderer/GeneratedChunk.d.mts +35 -0
- package/renderer/GeneratedChunk.d.ts +35 -0
- package/renderer/GeneratedChunk.mjs +178 -0
- package/renderer/GeneratedChunkCoverage.d.mts +25 -0
- package/renderer/GeneratedChunkCoverage.d.ts +25 -0
- package/renderer/GeneratedChunkCoverage.mjs +75 -0
- package/renderer/GeneratedChunkOverlayMode.d.mts +24 -0
- package/renderer/GeneratedChunkOverlayMode.d.ts +24 -0
- package/renderer/GeneratedChunkOverlayMode.mjs +72 -0
- package/renderer/GeneratedWorldStream.d.mts +28 -0
- package/renderer/GeneratedWorldStream.d.ts +28 -0
- package/renderer/GeneratedWorldStream.mjs +86 -0
- package/renderer/Geo.d.mts +41 -0
- package/renderer/Geo.d.ts +41 -0
- package/renderer/Geo.mjs +121 -0
- package/renderer/Hdl.d.mts +56 -0
- package/renderer/Hdl.d.ts +56 -0
- package/renderer/Hdl.mjs +163 -0
- package/renderer/InterpolationSpace.d.mts +25 -0
- package/renderer/InterpolationSpace.d.ts +25 -0
- package/renderer/InterpolationSpace.mjs +73 -0
- package/renderer/IoLayout.d.mts +26 -0
- package/renderer/IoLayout.d.ts +26 -0
- package/renderer/IoLayout.mjs +81 -0
- package/renderer/IoLayoutBuilder.d.mts +73 -0
- package/renderer/IoLayoutBuilder.d.ts +73 -0
- package/renderer/IoLayoutBuilder.mjs +315 -0
- package/renderer/IoType.d.mts +41 -0
- package/renderer/IoType.d.ts +41 -0
- package/renderer/IoType.mjs +125 -0
- package/renderer/ItemModelConfig.d.mts +65 -0
- package/renderer/ItemModelConfig.d.ts +65 -0
- package/renderer/ItemModelConfig.mjs +223 -0
- package/renderer/ItemModelPackBuilder.d.mts +32 -0
- package/renderer/ItemModelPackBuilder.d.ts +32 -0
- package/renderer/ItemModelPackBuilder.mjs +104 -0
- package/renderer/ItemModelResult.d.mts +72 -0
- package/renderer/ItemModelResult.d.ts +72 -0
- package/renderer/ItemModelResult.mjs +268 -0
- package/renderer/ItemScale.d.mts +31 -0
- package/renderer/ItemScale.d.ts +31 -0
- package/renderer/ItemScale.mjs +133 -0
- package/renderer/LayoutFunction.d.mts +52 -0
- package/renderer/LayoutFunction.d.ts +52 -0
- package/renderer/LayoutFunction.mjs +159 -0
- package/renderer/MchprsWorld.d.mts +131 -0
- package/renderer/MchprsWorld.d.ts +131 -0
- package/renderer/MchprsWorld.mjs +423 -0
- package/renderer/MeshBounds.d.mts +40 -0
- package/renderer/MeshBounds.d.ts +40 -0
- package/renderer/MeshBounds.mjs +181 -0
- package/renderer/MeshConfig.d.mts +101 -0
- package/renderer/MeshConfig.d.ts +101 -0
- package/renderer/MeshConfig.mjs +306 -0
- package/renderer/MeshJob.d.mts +44 -0
- package/renderer/MeshJob.d.ts +44 -0
- package/renderer/MeshJob.mjs +116 -0
- package/renderer/MeshPhase.d.mts +38 -0
- package/renderer/MeshPhase.d.ts +38 -0
- package/renderer/MeshPhase.mjs +90 -0
- package/renderer/MeshProgress.d.mts +32 -0
- package/renderer/MeshProgress.d.ts +32 -0
- package/renderer/MeshProgress.mjs +134 -0
- package/renderer/MeshResult.d.mts +76 -0
- package/renderer/MeshResult.d.ts +76 -0
- package/renderer/MeshResult.mjs +269 -0
- package/renderer/MultiMeshResult.d.mts +50 -0
- package/renderer/MultiMeshResult.d.ts +50 -0
- package/renderer/MultiMeshResult.mjs +166 -0
- package/renderer/Nbt.d.mts +50 -0
- package/renderer/Nbt.d.ts +50 -0
- package/renderer/Nbt.mjs +161 -0
- package/renderer/NucleationError.d.mts +53 -0
- package/renderer/NucleationError.d.ts +53 -0
- package/renderer/NucleationError.mjs +136 -0
- package/renderer/OutputCondition.d.mts +45 -0
- package/renderer/OutputCondition.d.ts +45 -0
- package/renderer/OutputCondition.mjs +129 -0
- package/renderer/Palette.d.mts +157 -0
- package/renderer/Palette.d.ts +157 -0
- package/renderer/Palette.mjs +487 -0
- package/renderer/PaletteBuilder.d.mts +119 -0
- package/renderer/PaletteBuilder.d.ts +119 -0
- package/renderer/PaletteBuilder.mjs +457 -0
- package/renderer/README.md +67 -0
- package/renderer/RawMeshExport.d.mts +74 -0
- package/renderer/RawMeshExport.d.ts +74 -0
- package/renderer/RawMeshExport.mjs +243 -0
- package/renderer/RedstoneGraph.d.mts +58 -0
- package/renderer/RedstoneGraph.d.ts +58 -0
- package/renderer/RedstoneGraph.mjs +242 -0
- package/renderer/RegionBounds.d.mts +41 -0
- package/renderer/RegionBounds.d.ts +41 -0
- package/renderer/RegionBounds.mjs +182 -0
- package/renderer/RenderConfig.d.mts +101 -0
- package/renderer/RenderConfig.d.ts +101 -0
- package/renderer/RenderConfig.mjs +271 -0
- package/renderer/Renderer.d.mts +51 -0
- package/renderer/Renderer.d.ts +51 -0
- package/renderer/Renderer.mjs +219 -0
- package/renderer/ResourcePack.d.mts +105 -0
- package/renderer/ResourcePack.d.ts +105 -0
- package/renderer/ResourcePack.mjs +447 -0
- package/renderer/ResourcePackList.d.mts +32 -0
- package/renderer/ResourcePackList.d.ts +32 -0
- package/renderer/ResourcePackList.mjs +96 -0
- package/renderer/Routing.d.mts +66 -0
- package/renderer/Routing.d.ts +66 -0
- package/renderer/Routing.mjs +220 -0
- package/renderer/Schematic.d.mts +977 -0
- package/renderer/Schematic.d.ts +977 -0
- package/renderer/Schematic.mjs +3820 -0
- package/renderer/SchematicBuilder.d.mts +103 -0
- package/renderer/SchematicBuilder.d.ts +103 -0
- package/renderer/SchematicBuilder.mjs +401 -0
- package/renderer/SchematicRegions.d.mts +93 -0
- package/renderer/SchematicRegions.d.ts +93 -0
- package/renderer/SchematicRegions.mjs +411 -0
- package/renderer/SchematicSplitResult.d.mts +26 -0
- package/renderer/SchematicSplitResult.d.ts +26 -0
- package/renderer/SchematicSplitResult.mjs +84 -0
- package/renderer/Scripting.d.mts +40 -0
- package/renderer/Scripting.d.ts +40 -0
- package/renderer/Scripting.mjs +138 -0
- package/renderer/Sdf.d.mts +234 -0
- package/renderer/Sdf.d.ts +234 -0
- package/renderer/Sdf.mjs +1234 -0
- package/renderer/SdfAxis.d.mts +25 -0
- package/renderer/SdfAxis.d.ts +25 -0
- package/renderer/SdfAxis.mjs +75 -0
- package/renderer/SdfBounds.d.mts +19 -0
- package/renderer/SdfBounds.d.ts +19 -0
- package/renderer/SdfBounds.mjs +161 -0
- package/renderer/SdfCellMode.d.mts +26 -0
- package/renderer/SdfCellMode.d.ts +26 -0
- package/renderer/SdfCellMode.mjs +78 -0
- package/renderer/SdfNormal.d.mts +16 -0
- package/renderer/SdfNormal.d.ts +16 -0
- package/renderer/SdfNormal.mjs +122 -0
- package/renderer/Shape.d.mts +143 -0
- package/renderer/Shape.d.ts +143 -0
- package/renderer/Shape.mjs +458 -0
- package/renderer/SortStrategy.d.mts +86 -0
- package/renderer/SortStrategy.d.ts +86 -0
- package/renderer/SortStrategy.mjs +272 -0
- package/renderer/Store.d.mts +83 -0
- package/renderer/Store.d.ts +83 -0
- package/renderer/Store.mjs +369 -0
- package/renderer/StoreIo.d.mts +71 -0
- package/renderer/StoreIo.d.ts +71 -0
- package/renderer/StoreIo.mjs +292 -0
- package/renderer/TextureAtlas.d.mts +40 -0
- package/renderer/TextureAtlas.d.ts +40 -0
- package/renderer/TextureAtlas.mjs +122 -0
- package/renderer/TextureInfo.d.mts +34 -0
- package/renderer/TextureInfo.d.ts +34 -0
- package/renderer/TextureInfo.mjs +149 -0
- package/renderer/TickSettleMode.d.mts +34 -0
- package/renderer/TickSettleMode.d.ts +34 -0
- package/renderer/TickSettleMode.mjs +84 -0
- package/renderer/TickSimulation.d.mts +572 -0
- package/renderer/TickSimulation.d.ts +572 -0
- package/renderer/TickSimulation.mjs +1299 -0
- package/renderer/TypedCircuitExecutor.d.mts +101 -0
- package/renderer/TypedCircuitExecutor.d.ts +101 -0
- package/renderer/TypedCircuitExecutor.mjs +378 -0
- package/renderer/Value.d.mts +73 -0
- package/renderer/Value.d.ts +73 -0
- package/renderer/Value.mjs +275 -0
- package/renderer/VideoConfig.d.mts +15 -0
- package/renderer/VideoConfig.d.ts +15 -0
- package/renderer/VideoConfig.mjs +44 -0
- package/renderer/VoxelModel.d.mts +34 -0
- package/renderer/VoxelModel.d.ts +34 -0
- package/renderer/VoxelModel.mjs +113 -0
- package/renderer/Voxelizer.d.mts +80 -0
- package/renderer/Voxelizer.d.ts +80 -0
- package/renderer/Voxelizer.mjs +261 -0
- package/renderer/WorldChunkView.d.mts +75 -0
- package/renderer/WorldChunkView.d.ts +75 -0
- package/renderer/WorldChunkView.mjs +224 -0
- package/renderer/WorldGenerator.d.mts +75 -0
- package/renderer/WorldGenerator.d.ts +75 -0
- package/renderer/WorldGenerator.mjs +255 -0
- package/renderer/WorldSink.d.mts +50 -0
- package/renderer/WorldSink.d.ts +50 -0
- package/renderer/WorldSink.mjs +177 -0
- package/renderer/WorldStream.d.mts +45 -0
- package/renderer/WorldStream.d.ts +45 -0
- package/renderer/WorldStream.mjs +184 -0
- package/renderer/WsPartitionHints.d.mts +29 -0
- package/renderer/WsPartitionHints.d.ts +29 -0
- package/renderer/WsPartitionHints.mjs +102 -0
- package/renderer/WsProfile.d.mts +46 -0
- package/renderer/WsProfile.d.ts +46 -0
- package/renderer/WsProfile.mjs +152 -0
- package/renderer/WsRunResult.d.mts +83 -0
- package/renderer/WsRunResult.d.ts +83 -0
- package/renderer/WsRunResult.mjs +326 -0
- package/renderer/WsSegmentJob.d.mts +28 -0
- package/renderer/WsSegmentJob.d.ts +28 -0
- package/renderer/WsSegmentJob.mjs +81 -0
- package/renderer/diplomat-runtime.d.mts +15 -0
- package/renderer/diplomat-runtime.d.ts +15 -0
- package/renderer/diplomat-runtime.mjs +779 -0
- package/renderer/diplomat-wasm.mjs +52 -0
- package/renderer/diplomat.config.mjs +5 -0
- package/renderer/index.d.mts +193 -0
- package/renderer/index.d.ts +193 -0
- package/renderer/index.mjs +196 -0
- package/renderer/nucleation.wasm +0 -0
- package/renderer/veneer/design.d.ts +167 -0
- package/renderer/veneer/design.mjs +480 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import wasm from "./diplomat-wasm.mjs";
|
|
4
|
+
import * as diplomatRuntime from "./diplomat-runtime.mjs";
|
|
5
|
+
|
|
6
|
+
const RedstoneGraph_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
7
|
+
wasm.RedstoneGraph_destroy(ptr);
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* An extracted redstone logic graph. Wraps
|
|
12
|
+
* {@link crate::simulation::graph::RedstoneGraph}.
|
|
13
|
+
*/
|
|
14
|
+
export class RedstoneGraph {
|
|
15
|
+
// Internal ptr reference:
|
|
16
|
+
#ptr = null;
|
|
17
|
+
|
|
18
|
+
// Lifetimes are only to keep dependencies alive.
|
|
19
|
+
// Since JS won't garbage collect until there are no incoming edges.
|
|
20
|
+
#selfEdge = [];
|
|
21
|
+
|
|
22
|
+
#internalConstructor(symbol, ptr, selfEdge) {
|
|
23
|
+
if (symbol !== diplomatRuntime.internalConstructor) {
|
|
24
|
+
console.error("RedstoneGraph is an Opaque type. You cannot call its constructor.");
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this.#ptr = ptr;
|
|
28
|
+
this.#selfEdge = selfEdge;
|
|
29
|
+
|
|
30
|
+
// Are we being borrowed? If not, we can register.
|
|
31
|
+
if (this.#selfEdge.length === 0) {
|
|
32
|
+
RedstoneGraph_box_destroy_registry.register(this, this.#ptr);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
/** @internal */
|
|
38
|
+
get ffiValue() {
|
|
39
|
+
return this.#ptr;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Number of nodes in the graph.
|
|
45
|
+
*/
|
|
46
|
+
nodeCount() {
|
|
47
|
+
|
|
48
|
+
const result = wasm.RedstoneGraph_node_count(this.ffiValue);
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
finally {
|
|
55
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Total number of directed edges in the graph.
|
|
61
|
+
*/
|
|
62
|
+
edgeCount() {
|
|
63
|
+
|
|
64
|
+
const result = wasm.RedstoneGraph_edge_count(this.ffiValue);
|
|
65
|
+
|
|
66
|
+
try {
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
finally {
|
|
71
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The nodes as a JSON array string.
|
|
77
|
+
*/
|
|
78
|
+
nodesJson() {
|
|
79
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
80
|
+
|
|
81
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
const result = wasm.RedstoneGraph_nodes_json(diplomatReceive.buffer, this.ffiValue, write.buffer);
|
|
85
|
+
|
|
86
|
+
try {
|
|
87
|
+
if (!diplomatReceive.resultFlag) {
|
|
88
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
89
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
90
|
+
}
|
|
91
|
+
return write.readString8();
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
finally {
|
|
95
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
96
|
+
diplomatReceive.free();
|
|
97
|
+
write.free();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* The directed edges as a JSON array string.
|
|
103
|
+
*/
|
|
104
|
+
edgesJson() {
|
|
105
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
106
|
+
|
|
107
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
const result = wasm.RedstoneGraph_edges_json(diplomatReceive.buffer, this.ffiValue, write.buffer);
|
|
111
|
+
|
|
112
|
+
try {
|
|
113
|
+
if (!diplomatReceive.resultFlag) {
|
|
114
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
115
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
116
|
+
}
|
|
117
|
+
return write.readString8();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
finally {
|
|
121
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
122
|
+
diplomatReceive.free();
|
|
123
|
+
write.free();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Computed graph features as a JSON object string.
|
|
129
|
+
*/
|
|
130
|
+
featuresJson() {
|
|
131
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
132
|
+
|
|
133
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
const result = wasm.RedstoneGraph_features_json(diplomatReceive.buffer, this.ffiValue, write.buffer);
|
|
137
|
+
|
|
138
|
+
try {
|
|
139
|
+
if (!diplomatReceive.resultFlag) {
|
|
140
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
141
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
142
|
+
}
|
|
143
|
+
return write.readString8();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
finally {
|
|
147
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
148
|
+
diplomatReceive.free();
|
|
149
|
+
write.free();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Fingerprint (hex string) for `preset` ("structural" | "functional" |
|
|
155
|
+
* "exact"; empty defaults to "structural").
|
|
156
|
+
*/
|
|
157
|
+
fingerprint(preset) {
|
|
158
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
159
|
+
|
|
160
|
+
const presetSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, preset)));
|
|
161
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
162
|
+
|
|
163
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
const result = wasm.RedstoneGraph_fingerprint(diplomatReceive.buffer, this.ffiValue, presetSlice.ptr, write.buffer);
|
|
167
|
+
|
|
168
|
+
try {
|
|
169
|
+
if (!diplomatReceive.resultFlag) {
|
|
170
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
171
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
172
|
+
}
|
|
173
|
+
return write.readString8();
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
finally {
|
|
177
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
178
|
+
functionCleanupArena.free();
|
|
179
|
+
|
|
180
|
+
diplomatReceive.free();
|
|
181
|
+
write.free();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Serialize the whole graph to JSON.
|
|
187
|
+
*/
|
|
188
|
+
toJson() {
|
|
189
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
190
|
+
|
|
191
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
const result = wasm.RedstoneGraph_to_json(diplomatReceive.buffer, this.ffiValue, write.buffer);
|
|
195
|
+
|
|
196
|
+
try {
|
|
197
|
+
if (!diplomatReceive.resultFlag) {
|
|
198
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
199
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
200
|
+
}
|
|
201
|
+
return write.readString8();
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
finally {
|
|
205
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
206
|
+
diplomatReceive.free();
|
|
207
|
+
write.free();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Deserialize a graph from a JSON string.
|
|
213
|
+
*/
|
|
214
|
+
static fromJson(json) {
|
|
215
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
216
|
+
|
|
217
|
+
const jsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, json)));
|
|
218
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
const result = wasm.RedstoneGraph_from_json(diplomatReceive.buffer, jsonSlice.ptr);
|
|
222
|
+
|
|
223
|
+
try {
|
|
224
|
+
if (!diplomatReceive.resultFlag) {
|
|
225
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
226
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
227
|
+
}
|
|
228
|
+
return new RedstoneGraph(diplomatRuntime.internalConstructor, diplomatRuntime.ptrRead(wasm, diplomatReceive.buffer), []);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
finally {
|
|
232
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
233
|
+
functionCleanupArena.free();
|
|
234
|
+
|
|
235
|
+
diplomatReceive.free();
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
constructor(symbol, ptr, selfEdge) {
|
|
240
|
+
return this.#internalConstructor(...arguments)
|
|
241
|
+
}
|
|
242
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
3
|
+
|
|
4
|
+
export type RegionBounds_obj = {
|
|
5
|
+
minX: number;
|
|
6
|
+
minY: number;
|
|
7
|
+
minZ: number;
|
|
8
|
+
maxX: number;
|
|
9
|
+
maxY: number;
|
|
10
|
+
maxZ: number;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* An inclusive block-coordinate box (a definition region is a union of
|
|
17
|
+
* these).
|
|
18
|
+
*/
|
|
19
|
+
export class RegionBounds {
|
|
20
|
+
get minX(): number;
|
|
21
|
+
set minX(value: number);
|
|
22
|
+
get minY(): number;
|
|
23
|
+
set minY(value: number);
|
|
24
|
+
get minZ(): number;
|
|
25
|
+
set minZ(value: number);
|
|
26
|
+
get maxX(): number;
|
|
27
|
+
set maxX(value: number);
|
|
28
|
+
get maxY(): number;
|
|
29
|
+
set maxY(value: number);
|
|
30
|
+
get maxZ(): number;
|
|
31
|
+
set maxZ(value: number);
|
|
32
|
+
/** @internal */
|
|
33
|
+
static fromFields(structObj : RegionBounds_obj) : RegionBounds;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Create `RegionBounds` from an object that contains all of `RegionBounds`s fields.
|
|
37
|
+
* Optional fields do not need to be included in the provided object.
|
|
38
|
+
*/
|
|
39
|
+
constructor(structObj: RegionBounds_obj);
|
|
40
|
+
|
|
41
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
3
|
+
|
|
4
|
+
export type RegionBounds_obj = {
|
|
5
|
+
minX: number;
|
|
6
|
+
minY: number;
|
|
7
|
+
minZ: number;
|
|
8
|
+
maxX: number;
|
|
9
|
+
maxY: number;
|
|
10
|
+
maxZ: number;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* An inclusive block-coordinate box (a definition region is a union of
|
|
17
|
+
* these).
|
|
18
|
+
*/
|
|
19
|
+
export class RegionBounds {
|
|
20
|
+
get minX(): number;
|
|
21
|
+
set minX(value: number);
|
|
22
|
+
get minY(): number;
|
|
23
|
+
set minY(value: number);
|
|
24
|
+
get minZ(): number;
|
|
25
|
+
set minZ(value: number);
|
|
26
|
+
get maxX(): number;
|
|
27
|
+
set maxX(value: number);
|
|
28
|
+
get maxY(): number;
|
|
29
|
+
set maxY(value: number);
|
|
30
|
+
get maxZ(): number;
|
|
31
|
+
set maxZ(value: number);
|
|
32
|
+
/** @internal */
|
|
33
|
+
static fromFields(structObj : RegionBounds_obj) : RegionBounds;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Create `RegionBounds` from an object that contains all of `RegionBounds`s fields.
|
|
37
|
+
* Optional fields do not need to be included in the provided object.
|
|
38
|
+
*/
|
|
39
|
+
constructor(structObj: RegionBounds_obj);
|
|
40
|
+
|
|
41
|
+
}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import wasm from "./diplomat-wasm.mjs";
|
|
3
|
+
import * as diplomatRuntime from "./diplomat-runtime.mjs";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* An inclusive block-coordinate box (a definition region is a union of
|
|
9
|
+
* these).
|
|
10
|
+
*/
|
|
11
|
+
export class RegionBounds {
|
|
12
|
+
#minX;
|
|
13
|
+
get minX() {
|
|
14
|
+
return this.#minX;
|
|
15
|
+
}
|
|
16
|
+
set minX(value){
|
|
17
|
+
this.#minX = value;
|
|
18
|
+
}
|
|
19
|
+
#minY;
|
|
20
|
+
get minY() {
|
|
21
|
+
return this.#minY;
|
|
22
|
+
}
|
|
23
|
+
set minY(value){
|
|
24
|
+
this.#minY = value;
|
|
25
|
+
}
|
|
26
|
+
#minZ;
|
|
27
|
+
get minZ() {
|
|
28
|
+
return this.#minZ;
|
|
29
|
+
}
|
|
30
|
+
set minZ(value){
|
|
31
|
+
this.#minZ = value;
|
|
32
|
+
}
|
|
33
|
+
#maxX;
|
|
34
|
+
get maxX() {
|
|
35
|
+
return this.#maxX;
|
|
36
|
+
}
|
|
37
|
+
set maxX(value){
|
|
38
|
+
this.#maxX = value;
|
|
39
|
+
}
|
|
40
|
+
#maxY;
|
|
41
|
+
get maxY() {
|
|
42
|
+
return this.#maxY;
|
|
43
|
+
}
|
|
44
|
+
set maxY(value){
|
|
45
|
+
this.#maxY = value;
|
|
46
|
+
}
|
|
47
|
+
#maxZ;
|
|
48
|
+
get maxZ() {
|
|
49
|
+
return this.#maxZ;
|
|
50
|
+
}
|
|
51
|
+
set maxZ(value){
|
|
52
|
+
this.#maxZ = value;
|
|
53
|
+
}
|
|
54
|
+
/** @internal */
|
|
55
|
+
static fromFields(structObj) {
|
|
56
|
+
return new RegionBounds(structObj);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
#internalConstructor(structObj) {
|
|
60
|
+
if (typeof structObj !== "object") {
|
|
61
|
+
throw new Error("RegionBounds's constructor takes an object of RegionBounds's fields.");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if ("minX" in structObj) {
|
|
65
|
+
this.#minX = structObj.minX;
|
|
66
|
+
} else {
|
|
67
|
+
throw new Error("Missing required field minX.");
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if ("minY" in structObj) {
|
|
71
|
+
this.#minY = structObj.minY;
|
|
72
|
+
} else {
|
|
73
|
+
throw new Error("Missing required field minY.");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if ("minZ" in structObj) {
|
|
77
|
+
this.#minZ = structObj.minZ;
|
|
78
|
+
} else {
|
|
79
|
+
throw new Error("Missing required field minZ.");
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if ("maxX" in structObj) {
|
|
83
|
+
this.#maxX = structObj.maxX;
|
|
84
|
+
} else {
|
|
85
|
+
throw new Error("Missing required field maxX.");
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if ("maxY" in structObj) {
|
|
89
|
+
this.#maxY = structObj.maxY;
|
|
90
|
+
} else {
|
|
91
|
+
throw new Error("Missing required field maxY.");
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
if ("maxZ" in structObj) {
|
|
95
|
+
this.#maxZ = structObj.maxZ;
|
|
96
|
+
} else {
|
|
97
|
+
throw new Error("Missing required field maxZ.");
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Return this struct in FFI function friendly format.
|
|
104
|
+
// Returns an array that can be expanded with spread syntax (...)
|
|
105
|
+
_intoFFI(
|
|
106
|
+
dst,
|
|
107
|
+
functionCleanupArena,
|
|
108
|
+
appendArrayMap
|
|
109
|
+
) {
|
|
110
|
+
|
|
111
|
+
this._writeToArrayBuffer(wasm.memory.buffer, dst, functionCleanupArena, appendArrayMap);
|
|
112
|
+
|
|
113
|
+
return dst;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
static get _sizeBytes() {
|
|
117
|
+
return 24;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/// Currently unused, we may want to use later on though:
|
|
121
|
+
static get _sizeAlign() {
|
|
122
|
+
return 4;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
static _fromSuppliedValue(internalConstructor, obj) {
|
|
126
|
+
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
127
|
+
throw new Error("_fromSuppliedValue cannot be called externally.");
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (obj instanceof RegionBounds) {
|
|
131
|
+
return obj;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return RegionBounds.fromFields(obj);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
_writeToArrayBuffer(
|
|
138
|
+
arrayBuffer,
|
|
139
|
+
offset,
|
|
140
|
+
functionCleanupArena,
|
|
141
|
+
appendArrayMap
|
|
142
|
+
) {
|
|
143
|
+
diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 0, this.#minX, Int32Array);
|
|
144
|
+
diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 4, this.#minY, Int32Array);
|
|
145
|
+
diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 8, this.#minZ, Int32Array);
|
|
146
|
+
diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 12, this.#maxX, Int32Array);
|
|
147
|
+
diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 16, this.#maxY, Int32Array);
|
|
148
|
+
diplomatRuntime.writeToArrayBuffer(arrayBuffer, offset + 20, this.#maxZ, Int32Array);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// This struct contains borrowed fields, so this takes in a list of
|
|
152
|
+
// "edges" corresponding to where each lifetime's data may have been borrowed from
|
|
153
|
+
// and passes it down to individual fields containing the borrow.
|
|
154
|
+
// This method does not attempt to handle any dependencies between lifetimes, the caller
|
|
155
|
+
// should handle this when constructing edge arrays.
|
|
156
|
+
static _fromFFI(internalConstructor, ptr) {
|
|
157
|
+
ptr >>>= 0; // unsigned wasm32 address; field values retain their signedness.
|
|
158
|
+
if (internalConstructor !== diplomatRuntime.internalConstructor) {
|
|
159
|
+
throw new Error("RegionBounds._fromFFI is not meant to be called externally. Please use the default constructor.");
|
|
160
|
+
}
|
|
161
|
+
let structObj = {};
|
|
162
|
+
const minXDeref = (new Int32Array(wasm.memory.buffer, ptr, 1))[0];
|
|
163
|
+
structObj.minX = minXDeref;
|
|
164
|
+
const minYDeref = (new Int32Array(wasm.memory.buffer, ptr + 4, 1))[0];
|
|
165
|
+
structObj.minY = minYDeref;
|
|
166
|
+
const minZDeref = (new Int32Array(wasm.memory.buffer, ptr + 8, 1))[0];
|
|
167
|
+
structObj.minZ = minZDeref;
|
|
168
|
+
const maxXDeref = (new Int32Array(wasm.memory.buffer, ptr + 12, 1))[0];
|
|
169
|
+
structObj.maxX = maxXDeref;
|
|
170
|
+
const maxYDeref = (new Int32Array(wasm.memory.buffer, ptr + 16, 1))[0];
|
|
171
|
+
structObj.maxY = maxYDeref;
|
|
172
|
+
const maxZDeref = (new Int32Array(wasm.memory.buffer, ptr + 20, 1))[0];
|
|
173
|
+
structObj.maxZ = maxZDeref;
|
|
174
|
+
|
|
175
|
+
return new RegionBounds(structObj);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
constructor(structObj) {
|
|
180
|
+
return this.#internalConstructor(...arguments)
|
|
181
|
+
}
|
|
182
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Camera / output configuration for rendering.
|
|
9
|
+
*/
|
|
10
|
+
export class RenderConfig {
|
|
11
|
+
/** @internal */
|
|
12
|
+
get ffiValue(): pointer;
|
|
13
|
+
/** @internal */
|
|
14
|
+
constructor();
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Create a config with the given output size in pixels. Camera starts
|
|
19
|
+
* at the defaults: yaw 45°, pitch 30°, zoom 1.0, fov 45°, perspective
|
|
20
|
+
* projection, default sky background.
|
|
21
|
+
*/
|
|
22
|
+
static create(width: number, height: number): RenderConfig;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Set the camera yaw (horizontal orbit angle) in degrees. Default: 45.
|
|
26
|
+
*/
|
|
27
|
+
setYaw(yaw: number): void;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Set the camera pitch (downward tilt) in degrees. Default: 30.
|
|
31
|
+
*/
|
|
32
|
+
setPitch(pitch: number): void;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Set the zoom factor applied to the auto-fitted framing
|
|
36
|
+
* (1.0 = frame the whole model; 2.0 = twice as close; 0.5 = twice
|
|
37
|
+
* as far). Default: 1.0.
|
|
38
|
+
*/
|
|
39
|
+
setZoom(zoom: number): void;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Fit the camera to the model's bounding sphere instead of its
|
|
43
|
+
* yaw-dependent silhouette. The sphere is rotation invariant, so
|
|
44
|
+
* orbiting cameras (turntables) keep a constant distance instead
|
|
45
|
+
* of pulsing as the silhouette changes. Frames slightly looser
|
|
46
|
+
* than the default fit. Default: false.
|
|
47
|
+
*/
|
|
48
|
+
setSphereFit(sphereFit: boolean): void;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Set the vertical field of view in degrees (perspective projection
|
|
52
|
+
* only). Default: 45.
|
|
53
|
+
*/
|
|
54
|
+
setFov(fov: number): void;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Set the world-space directional light and its non-negative intensity.
|
|
58
|
+
*/
|
|
59
|
+
setDirectionalLight(x: number, y: number, z: number, intensity: number): void;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Set the unlit floor for non-HDRI rendering, in `0..=1`.
|
|
63
|
+
*/
|
|
64
|
+
setAmbientLight(ambient: number): void;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Set a solid RGBA clear color (linear 0.0–1.0). Alpha < 1.0 yields a
|
|
68
|
+
* transparent PNG. Ignored when HDRI is enabled.
|
|
69
|
+
*/
|
|
70
|
+
setBackground(r: number, g: number, b: number, a: number): void;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Clear the custom background — revert to default sky / HDRI.
|
|
74
|
+
*/
|
|
75
|
+
clearBackground(): void;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Configure a one-block world grid. Models are centred on integer
|
|
79
|
+
* schematic coordinates, so grid lines are placed on half-integer
|
|
80
|
+
* block boundaries automatically.
|
|
81
|
+
*/
|
|
82
|
+
setGrid(halfExtent: number, spacing: number, planeY: number, showAxes: boolean, red: number, green: number, blue: number, alpha: number): void;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Configure a compact grid fitted to half-integer block boundaries.
|
|
86
|
+
*/
|
|
87
|
+
setFittedGrid(margin: number, spacing: number, planeY: number, showAxes: boolean, red: number, green: number, blue: number, alpha: number): void;
|
|
88
|
+
|
|
89
|
+
clearGrid(): void;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Enable (`true`) or disable orthographic projection.
|
|
93
|
+
*/
|
|
94
|
+
setOrthographic(orthographic: boolean): void;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Configure a true isometric view: orthographic at yaw 45° /
|
|
98
|
+
* pitch ≈35.264° (preserves the current width/height).
|
|
99
|
+
*/
|
|
100
|
+
setIsometric(): void;
|
|
101
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Camera / output configuration for rendering.
|
|
9
|
+
*/
|
|
10
|
+
export class RenderConfig {
|
|
11
|
+
/** @internal */
|
|
12
|
+
get ffiValue(): pointer;
|
|
13
|
+
/** @internal */
|
|
14
|
+
constructor();
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Create a config with the given output size in pixels. Camera starts
|
|
19
|
+
* at the defaults: yaw 45°, pitch 30°, zoom 1.0, fov 45°, perspective
|
|
20
|
+
* projection, default sky background.
|
|
21
|
+
*/
|
|
22
|
+
static create(width: number, height: number): RenderConfig;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Set the camera yaw (horizontal orbit angle) in degrees. Default: 45.
|
|
26
|
+
*/
|
|
27
|
+
setYaw(yaw: number): void;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Set the camera pitch (downward tilt) in degrees. Default: 30.
|
|
31
|
+
*/
|
|
32
|
+
setPitch(pitch: number): void;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Set the zoom factor applied to the auto-fitted framing
|
|
36
|
+
* (1.0 = frame the whole model; 2.0 = twice as close; 0.5 = twice
|
|
37
|
+
* as far). Default: 1.0.
|
|
38
|
+
*/
|
|
39
|
+
setZoom(zoom: number): void;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Fit the camera to the model's bounding sphere instead of its
|
|
43
|
+
* yaw-dependent silhouette. The sphere is rotation invariant, so
|
|
44
|
+
* orbiting cameras (turntables) keep a constant distance instead
|
|
45
|
+
* of pulsing as the silhouette changes. Frames slightly looser
|
|
46
|
+
* than the default fit. Default: false.
|
|
47
|
+
*/
|
|
48
|
+
setSphereFit(sphereFit: boolean): void;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Set the vertical field of view in degrees (perspective projection
|
|
52
|
+
* only). Default: 45.
|
|
53
|
+
*/
|
|
54
|
+
setFov(fov: number): void;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Set the world-space directional light and its non-negative intensity.
|
|
58
|
+
*/
|
|
59
|
+
setDirectionalLight(x: number, y: number, z: number, intensity: number): void;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Set the unlit floor for non-HDRI rendering, in `0..=1`.
|
|
63
|
+
*/
|
|
64
|
+
setAmbientLight(ambient: number): void;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Set a solid RGBA clear color (linear 0.0–1.0). Alpha < 1.0 yields a
|
|
68
|
+
* transparent PNG. Ignored when HDRI is enabled.
|
|
69
|
+
*/
|
|
70
|
+
setBackground(r: number, g: number, b: number, a: number): void;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Clear the custom background — revert to default sky / HDRI.
|
|
74
|
+
*/
|
|
75
|
+
clearBackground(): void;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Configure a one-block world grid. Models are centred on integer
|
|
79
|
+
* schematic coordinates, so grid lines are placed on half-integer
|
|
80
|
+
* block boundaries automatically.
|
|
81
|
+
*/
|
|
82
|
+
setGrid(halfExtent: number, spacing: number, planeY: number, showAxes: boolean, red: number, green: number, blue: number, alpha: number): void;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Configure a compact grid fitted to half-integer block boundaries.
|
|
86
|
+
*/
|
|
87
|
+
setFittedGrid(margin: number, spacing: number, planeY: number, showAxes: boolean, red: number, green: number, blue: number, alpha: number): void;
|
|
88
|
+
|
|
89
|
+
clearGrid(): void;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Enable (`true`) or disable orthographic projection.
|
|
93
|
+
*/
|
|
94
|
+
setOrthographic(orthographic: boolean): void;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Configure a true isometric view: orthographic at yaw 45° /
|
|
98
|
+
* pitch ≈35.264° (preserves the current width/height).
|
|
99
|
+
*/
|
|
100
|
+
setIsometric(): void;
|
|
101
|
+
}
|