@certe/atmos-terrain 0.1.0

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 (60) hide show
  1. package/LICENCE +674 -0
  2. package/README.md +155 -0
  3. package/dist/chunk-key.d.ts +10 -0
  4. package/dist/chunk-key.d.ts.map +1 -0
  5. package/dist/chunk-key.js +27 -0
  6. package/dist/chunk-key.js.map +1 -0
  7. package/dist/chunk.d.ts +36 -0
  8. package/dist/chunk.d.ts.map +1 -0
  9. package/dist/chunk.js +128 -0
  10. package/dist/chunk.js.map +1 -0
  11. package/dist/density-field.d.ts +34 -0
  12. package/dist/density-field.d.ts.map +1 -0
  13. package/dist/density-field.js +68 -0
  14. package/dist/density-field.js.map +1 -0
  15. package/dist/index.d.ts +15 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +22 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/lod-chunk.d.ts +20 -0
  20. package/dist/lod-chunk.d.ts.map +1 -0
  21. package/dist/lod-chunk.js +256 -0
  22. package/dist/lod-chunk.js.map +1 -0
  23. package/dist/lod-extract.d.ts +21 -0
  24. package/dist/lod-extract.d.ts.map +1 -0
  25. package/dist/lod-extract.js +178 -0
  26. package/dist/lod-extract.js.map +1 -0
  27. package/dist/marching-cubes-tables.d.ts +28 -0
  28. package/dist/marching-cubes-tables.d.ts.map +1 -0
  29. package/dist/marching-cubes-tables.js +344 -0
  30. package/dist/marching-cubes-tables.js.map +1 -0
  31. package/dist/marching-cubes.d.ts +17 -0
  32. package/dist/marching-cubes.d.ts.map +1 -0
  33. package/dist/marching-cubes.js +200 -0
  34. package/dist/marching-cubes.js.map +1 -0
  35. package/dist/register-builtins.d.ts +2 -0
  36. package/dist/register-builtins.d.ts.map +1 -0
  37. package/dist/register-builtins.js +34 -0
  38. package/dist/register-builtins.js.map +1 -0
  39. package/dist/terrain-editor.d.ts +15 -0
  40. package/dist/terrain-editor.d.ts.map +1 -0
  41. package/dist/terrain-editor.js +85 -0
  42. package/dist/terrain-editor.js.map +1 -0
  43. package/dist/terrain-normals.d.ts +13 -0
  44. package/dist/terrain-normals.d.ts.map +1 -0
  45. package/dist/terrain-normals.js +96 -0
  46. package/dist/terrain-normals.js.map +1 -0
  47. package/dist/terrain-volume.d.ts +42 -0
  48. package/dist/terrain-volume.d.ts.map +1 -0
  49. package/dist/terrain-volume.js +146 -0
  50. package/dist/terrain-volume.js.map +1 -0
  51. package/dist/terrain-world.d.ts +67 -0
  52. package/dist/terrain-world.d.ts.map +1 -0
  53. package/dist/terrain-world.js +344 -0
  54. package/dist/terrain-world.js.map +1 -0
  55. package/dist/types.d.ts +65 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +23 -0
  58. package/dist/types.js.map +1 -0
  59. package/package.json +29 -0
  60. package/src/index.ts +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;AAEtF,qGAAqG;AACrG,MAAM,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErG,sFAAsF;AACtF,MAAM,MAAM,aAAa,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAEnF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,aAAa,EAAE,OAAO,CAAC;IACvB,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,sBAAsB,EAAE,aAMpC,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,0BAAkB,UAAU;IAC1B,MAAM,IAAI;IACV,IAAI,IAAI;CACT;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,sCAAsC;IACtC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0BAAkB,UAAU;IAC1B,KAAK,IAAI;IACT,OAAO,IAAI;IACX,MAAM,IAAI;IACV,KAAK,IAAI;CACV;AAED,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,kBAAkB,EAAE,SAEhC,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,23 @@
1
+ export const DEFAULT_TERRAIN_CONFIG = {
2
+ chunkSize: 16,
3
+ voxelSize: 1,
4
+ isoLevel: 0,
5
+ smoothNormals: true,
6
+ normalEpsilon: 0.5,
7
+ };
8
+ export var BrushShape;
9
+ (function (BrushShape) {
10
+ BrushShape[BrushShape["Sphere"] = 0] = "Sphere";
11
+ BrushShape[BrushShape["Cube"] = 1] = "Cube";
12
+ })(BrushShape || (BrushShape = {}));
13
+ export var ChunkState;
14
+ (function (ChunkState) {
15
+ ChunkState[ChunkState["Empty"] = 0] = "Empty";
16
+ ChunkState[ChunkState["Sampled"] = 1] = "Sampled";
17
+ ChunkState[ChunkState["Meshed"] = 2] = "Meshed";
18
+ ChunkState[ChunkState["Dirty"] = 3] = "Dirty";
19
+ })(ChunkState || (ChunkState = {}));
20
+ export const DEFAULT_LOD_CONFIG = {
21
+ lodDistances: [3, 6],
22
+ };
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,GAAG;CACnB,CAAC;AASF,MAAM,CAAN,IAAkB,UAGjB;AAHD,WAAkB,UAAU;IAC1B,+CAAU,CAAA;IACV,2CAAQ,CAAA;AACV,CAAC,EAHiB,UAAU,KAAV,UAAU,QAG3B;AAgBD,MAAM,CAAN,IAAkB,UAKjB;AALD,WAAkB,UAAU;IAC1B,6CAAS,CAAA;IACT,iDAAW,CAAA;IACX,+CAAU,CAAA;IACV,6CAAS,CAAA;AACX,CAAC,EALiB,UAAU,KAAV,UAAU,QAK3B;AAOD,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACrB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@certe/atmos-terrain",
3
+ "description": "Voxel terrain with marching cubes and LOD streaming for the Atmos Engine",
4
+ "version": "0.1.0",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/certesolutions-cyber/atmos.git",
8
+ "directory": "packages/terrain"
9
+ },
10
+ "homepage": "https://github.com/certesolutions-cyber/atmos",
11
+ "license": "GPL-3.0-or-later",
12
+ "keywords": ["terrain", "voxel", "marching-cubes", "game-engine", "lod", "atmos"],
13
+ "type": "module",
14
+ "main": "src/index.ts",
15
+ "types": "src/index.ts",
16
+ "publishConfig": {
17
+ "main": "dist/index.js",
18
+ "types": "dist/index.d.ts"
19
+ },
20
+ "files": ["dist", "!dist/__tests__", "package.json", "README.md", "LICENCE"],
21
+ "dependencies": {
22
+ "@certe/atmos-core": "^0.1.0",
23
+ "@certe/atmos-math": "^0.1.0",
24
+ "@certe/atmos-renderer": "^0.1.0"
25
+ },
26
+ "scripts": {
27
+ "test": "vitest run"
28
+ }
29
+ }
package/src/index.ts ADDED
@@ -0,0 +1,42 @@
1
+ // Types
2
+ export type { DensityFn, DensityWithWeightsFn, DensitySample, SplatWeightFn, SplatTextures } from './types.js';
3
+ export type { ChunkCoord, TerrainConfig, MeshData, TerrainEdit, LODConfig } from './types.js';
4
+ export { BrushShape, ChunkState, DEFAULT_TERRAIN_CONFIG, DEFAULT_LOD_CONFIG } from './types.js';
5
+
6
+ // Chunk key utilities
7
+ export { chunkKey, fromChunkKey, worldToChunk } from './chunk-key.js';
8
+
9
+ // Marching cubes
10
+ export { extractSurface, computeTriplanarUVs } from './marching-cubes.js';
11
+
12
+ // Normals
13
+ export { computeGradientNormals, computeTriangleNormals } from './terrain-normals.js';
14
+
15
+ // Density primitives & CSG
16
+ export {
17
+ adaptDensityFn,
18
+ sphereDensity,
19
+ planeDensity,
20
+ boxDensity,
21
+ unionDensity,
22
+ intersectDensity,
23
+ subtractDensity,
24
+ noiseTerrain,
25
+ } from './density-field.js';
26
+
27
+ // Chunk
28
+ export { TerrainChunk } from './chunk.js';
29
+
30
+ // Editor (brush system)
31
+ export { applyEdit } from './terrain-editor.js';
32
+
33
+ // LOD
34
+ export { extractSurfaceLOD } from './lod-extract.js';
35
+ export { buildLODMesh, buildLODSplatMesh } from './lod-chunk.js';
36
+
37
+ // Components
38
+ export { TerrainVolume } from './terrain-volume.js';
39
+ export { TerrainWorld } from './terrain-world.js';
40
+
41
+ // Registration
42
+ export { registerTerrainBuiltins } from './register-builtins.js';