@mapcomponents/three 1.7.2 → 1.7.3

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 (73) hide show
  1. package/dist/README.md +54 -0
  2. package/dist/assets/3D/godzilla_simple.glb +0 -0
  3. package/dist/assets/splats/output.splat +0 -0
  4. package/dist/components/MlThreeGizmo.d.ts +12 -0
  5. package/dist/components/MlThreeGizmo.d.ts.map +1 -0
  6. package/dist/components/MlThreeModelLayer/MlThreeModelLayer.cy.d.ts +2 -0
  7. package/dist/components/MlThreeModelLayer/MlThreeModelLayer.cy.d.ts.map +1 -0
  8. package/dist/components/MlThreeModelLayer/MlThreeModelLayer.d.ts +12 -0
  9. package/dist/components/MlThreeModelLayer/MlThreeModelLayer.d.ts.map +1 -0
  10. package/dist/components/MlThreeObjectControls.d.ts +41 -0
  11. package/dist/components/MlThreeObjectControls.d.ts.map +1 -0
  12. package/dist/components/MlThreeSplatLayer/MlThreeSplatLayer.cy.d.ts +2 -0
  13. package/dist/components/MlThreeSplatLayer/MlThreeSplatLayer.cy.d.ts.map +1 -0
  14. package/dist/components/MlThreeSplatLayer/MlThreeSplatLayer.d.ts +12 -0
  15. package/dist/components/MlThreeSplatLayer/MlThreeSplatLayer.d.ts.map +1 -0
  16. package/dist/contexts/ThreeContext.d.ts +15 -0
  17. package/dist/contexts/ThreeContext.d.ts.map +1 -0
  18. package/dist/contexts/ThreeProvider.d.ts +18 -0
  19. package/dist/contexts/ThreeProvider.d.ts.map +1 -0
  20. package/dist/cypress/support/commands.d.ts +1 -0
  21. package/dist/cypress/support/commands.d.ts.map +1 -0
  22. package/dist/cypress/support/component.d.ts +9 -0
  23. package/dist/cypress/support/component.d.ts.map +1 -0
  24. package/dist/decorators/ThreejsContextDecorator.d.ts +3 -0
  25. package/dist/decorators/ThreejsContextDecorator.d.ts.map +1 -0
  26. package/dist/hooks/useThreeModel.d.ts +34 -0
  27. package/dist/hooks/useThreeModel.d.ts.map +1 -0
  28. package/dist/html2canvas.esm-CUkZERmf.js +22 -0
  29. package/dist/html2canvas.esm-Dmi1NfiH.mjs +4871 -0
  30. package/dist/index-CnnmRv4J.mjs +90875 -0
  31. package/dist/index-DbqgNSpy.js +5442 -0
  32. package/dist/index.css +1 -0
  33. package/dist/index.d.ts +10 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.es-BPSzkkDP.mjs +6674 -0
  36. package/dist/index.es-ajYPKLNS.js +18 -0
  37. package/dist/index.js +1 -0
  38. package/dist/index.mjs +10 -0
  39. package/dist/lib/ThreejsSceneHelper.d.ts +16 -0
  40. package/dist/lib/ThreejsSceneHelper.d.ts.map +1 -0
  41. package/dist/lib/ThreejsSceneRenderer.d.ts +18 -0
  42. package/dist/lib/ThreejsSceneRenderer.d.ts.map +1 -0
  43. package/dist/lib/ThreejsUtils.d.ts +14 -0
  44. package/dist/lib/ThreejsUtils.d.ts.map +1 -0
  45. package/dist/lib/splats/GaussianSplattingMesh.d.ts +104 -0
  46. package/dist/lib/splats/GaussianSplattingMesh.d.ts.map +1 -0
  47. package/dist/lib/splats/GaussianSplattingShaders.d.ts +10 -0
  48. package/dist/lib/splats/GaussianSplattingShaders.d.ts.map +1 -0
  49. package/dist/lib/splats/loaders/PlySplatLoader.d.ts +81 -0
  50. package/dist/lib/splats/loaders/PlySplatLoader.d.ts.map +1 -0
  51. package/dist/lib/splats/loaders/SplatLoader.d.ts +10 -0
  52. package/dist/lib/splats/loaders/SplatLoader.d.ts.map +1 -0
  53. package/dist/lib/utils/coroutine.d.ts +17 -0
  54. package/dist/lib/utils/coroutine.d.ts.map +1 -0
  55. package/dist/package.json +26 -0
  56. package/dist/purify.es-D1I7B1hP.js +2 -0
  57. package/dist/purify.es-DHbHSKL1.mjs +528 -0
  58. package/package.json +8 -6
  59. package/src/components/{MlTransformControls.tsx → MlThreeGizmo.tsx} +4 -4
  60. package/src/components/MlThreeModelLayer/MlThreeModelLayer.cy.tsx +2 -3
  61. package/src/components/MlThreeModelLayer/MlThreeModelLayer.stories.tsx +14 -55
  62. package/src/components/MlThreeModelLayer/MlThreeModelLayer.tsx +30 -133
  63. package/src/components/MlThreeObjectControls.tsx +289 -0
  64. package/src/components/MlThreeSplatLayer/MlThreeSplatLayer.cy.tsx +2 -3
  65. package/src/components/MlThreeSplatLayer/MlThreeSplatLayer.stories.tsx +14 -58
  66. package/src/components/MlThreeSplatLayer/MlThreeSplatLayer.tsx +26 -138
  67. package/src/decorators/ThreejsContextDecorator.tsx +1 -1
  68. package/src/hooks/useThreeModel.tsx +179 -0
  69. package/src/index.ts +4 -2
  70. package/vite.config.ts +2 -2
  71. package/src/components/ThreeObjectControls.tsx +0 -197
  72. /package/src/{components → contexts}/ThreeContext.tsx +0 -0
  73. /package/src/{components → contexts}/ThreeProvider.tsx +0 -0
@@ -1,197 +0,0 @@
1
- import Button from '@mui/material/Button';
2
- import ButtonGroup from '@mui/material/ButtonGroup';
3
- import Slider from '@mui/material/Slider';
4
- import Typography from '@mui/material/Typography';
5
- import Box from '@mui/material/Box';
6
-
7
- export interface ThreeObjectControlsProps {
8
- showLayer: boolean;
9
- setShowLayer: (show: boolean) => void;
10
- scale: number;
11
- setScale: (scale: number) => void;
12
- rotation: { x: number; y: number; z: number };
13
- setRotation: (rotation: { x: number; y: number; z: number }) => void;
14
- useMapCoords: boolean;
15
- setUseMapCoords: (use: boolean) => void;
16
- mapPosition: { lng: number; lat: number };
17
- setMapPosition: (position: { lng: number; lat: number }) => void;
18
- altitude: number;
19
- setAltitude: (altitude: number) => void;
20
- position: { x: number; y: number; z: number };
21
- setPosition: (position: { x: number; y: number; z: number }) => void;
22
- enableTransformControls?: boolean;
23
- setEnableTransformControls?: (enable: boolean) => void;
24
- transformMode?: 'translate' | 'rotate' | 'scale';
25
- setTransformMode?: (mode: 'translate' | 'rotate' | 'scale') => void;
26
- layerName?: string;
27
- }
28
-
29
- export const ThreeObjectControls = ({
30
- showLayer,
31
- setShowLayer,
32
- scale,
33
- setScale,
34
- rotation,
35
- setRotation,
36
- useMapCoords,
37
- setUseMapCoords,
38
- mapPosition,
39
- setMapPosition,
40
- altitude,
41
- setAltitude,
42
- position,
43
- setPosition,
44
- enableTransformControls,
45
- setEnableTransformControls,
46
- transformMode,
47
- setTransformMode,
48
- layerName = 'Layer',
49
- }: ThreeObjectControlsProps) => {
50
- return (
51
- <Box sx={{ padding: '10px' }}>
52
- <Box sx={{ display: 'flex', gap: 1, flexWrap: 'wrap', marginBottom: 2 }}>
53
- <Button
54
- color="primary"
55
- variant={showLayer ? 'contained' : 'outlined'}
56
- onClick={() => setShowLayer(!showLayer)}
57
- size="small"
58
- >
59
- {showLayer ? 'Hide' : 'Show'} {layerName}
60
- </Button>
61
- <Button
62
- color="secondary"
63
- variant={useMapCoords ? 'contained' : 'outlined'}
64
- onClick={() => setUseMapCoords(!useMapCoords)}
65
- size="small"
66
- >
67
- {useMapCoords ? 'Map Coords' : 'Scene Coords'}
68
- </Button>
69
- {setEnableTransformControls && (
70
- <Button
71
- color="info"
72
- variant={enableTransformControls ? 'contained' : 'outlined'}
73
- onClick={() => setEnableTransformControls(!enableTransformControls)}
74
- size="small"
75
- >
76
- 3D Gizmo
77
- </Button>
78
- )}
79
- </Box>
80
-
81
- {setTransformMode && enableTransformControls && (
82
- <Box sx={{ marginBottom: 2 }}>
83
- <ButtonGroup variant="outlined" size="small" fullWidth aria-label="transform mode">
84
- <Button
85
- variant={transformMode === 'translate' ? 'contained' : 'outlined'}
86
- onClick={() => setTransformMode('translate')}
87
- >
88
- Move
89
- </Button>
90
- <Button
91
- variant={transformMode === 'rotate' ? 'contained' : 'outlined'}
92
- onClick={() => setTransformMode('rotate')}
93
- >
94
- Rotate
95
- </Button>
96
- <Button
97
- variant={transformMode === 'scale' ? 'contained' : 'outlined'}
98
- onClick={() => setTransformMode('scale')}
99
- >
100
- Scale
101
- </Button>
102
- </ButtonGroup>
103
- </Box>
104
- )}
105
- <Typography gutterBottom>Scale: {scale.toFixed(2)}</Typography>
106
- <Slider
107
- value={scale}
108
- onChange={(e, newValue) => setScale(newValue as number)}
109
- min={0.01}
110
- max={150}
111
- step={0.01}
112
- valueLabelDisplay="auto"
113
- />
114
- <Typography gutterBottom>Rotation X: {rotation.x}°</Typography>
115
- <Slider
116
- value={rotation.x}
117
- onChange={(e, newValue) => setRotation({ ...rotation, x: newValue as number })}
118
- min={0}
119
- max={360}
120
- valueLabelDisplay="auto"
121
- />
122
- <Typography gutterBottom>Rotation Y: {rotation.y}°</Typography>
123
- <Slider
124
- value={rotation.y}
125
- onChange={(e, newValue) => setRotation({ ...rotation, y: newValue as number })}
126
- min={0}
127
- max={360}
128
- valueLabelDisplay="auto"
129
- />
130
- <Typography gutterBottom>Rotation Z: {rotation.z}°</Typography>
131
- <Slider
132
- value={rotation.z}
133
- onChange={(e, newValue) => setRotation({ ...rotation, z: newValue as number })}
134
- min={0}
135
- max={360}
136
- valueLabelDisplay="auto"
137
- />
138
- {useMapCoords ? (
139
- <>
140
- <Typography gutterBottom>Longitude: {mapPosition.lng.toFixed(6)}</Typography>
141
- <Slider
142
- value={mapPosition.lng}
143
- onChange={(e, newValue) => setMapPosition({ ...mapPosition, lng: newValue as number })}
144
- min={7.09}
145
- max={7.11}
146
- step={0.0001}
147
- valueLabelDisplay="auto"
148
- />
149
- <Typography gutterBottom>Latitude: {mapPosition.lat.toFixed(6)}</Typography>
150
- <Slider
151
- value={mapPosition.lat}
152
- onChange={(e, newValue) => setMapPosition({ ...mapPosition, lat: newValue as number })}
153
- min={50.73}
154
- max={50.74}
155
- step={0.0001}
156
- valueLabelDisplay="auto"
157
- />
158
- <Typography gutterBottom>Altitude: {altitude} m</Typography>
159
- <Slider
160
- value={altitude}
161
- onChange={(e, newValue) => setAltitude(newValue as number)}
162
- min={-100}
163
- max={500}
164
- valueLabelDisplay="auto"
165
- />
166
- </>
167
- ) : (
168
- <>
169
- <Typography gutterBottom>Position X: {position.x}</Typography>
170
- <Slider
171
- value={position.x}
172
- onChange={(e, newValue) => setPosition({ ...position, x: newValue as number })}
173
- min={-100}
174
- max={100}
175
- valueLabelDisplay="auto"
176
- />
177
- <Typography gutterBottom>Position Y: {position.y}</Typography>
178
- <Slider
179
- value={position.y}
180
- onChange={(e, newValue) => setPosition({ ...position, y: newValue as number })}
181
- min={-100}
182
- max={100}
183
- valueLabelDisplay="auto"
184
- />
185
- <Typography gutterBottom>Position Z: {position.z}</Typography>
186
- <Slider
187
- value={position.z}
188
- onChange={(e, newValue) => setPosition({ ...position, z: newValue as number })}
189
- min={-500}
190
- max={100}
191
- valueLabelDisplay="auto"
192
- />
193
- </>
194
- )}
195
- </Box>
196
- );
197
- };
File without changes
File without changes