abstract-3d 3.0.2 → 3.1.1

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.
@@ -30,6 +30,11 @@ type ReactProps = {
30
30
  readonly orbitContolsProps?: OrbitControlsProps & React.RefAttributes<unknown>;
31
31
  readonly materialStateImages?: Record<string, string>;
32
32
  readonly sceneFallback?: React.JSX.Element;
33
+ /**
34
+ * The scene's lights, rendered in the canvas instead of the default ambient and directional lights, e.g. an environment map for reflections and a
35
+ * key light. A constant element, as a new one each render re-renders the whole scene
36
+ */
37
+ readonly lights?: React.JSX.Element;
33
38
  readonly useOldMode?: boolean;
34
39
  readonly bufferZones?: BufferZones;
35
40
  readonly fitPadding?: number;
@@ -77,6 +82,7 @@ export const render = memo(
77
82
  orbitContolsProps,
78
83
  materialStateImages,
79
84
  sceneFallback,
85
+ lights,
80
86
  useAlphaTest = true,
81
87
  onClickGroup,
82
88
  onHoverGroup,
@@ -103,47 +109,51 @@ export const render = memo(
103
109
  controlsHelper={controlsHelper}
104
110
  orbitContolsProps={orbitContolsProps}
105
111
  />
106
- <ambientLight intensity={3.5} />
107
- <directionalLight
108
- position={[
109
- -(scene.center_deprecated?.x ?? 0) - 1.5 * scene.size_deprecated.x,
110
- -(scene.center_deprecated?.y ?? 0) + 1.5 * scene.size_deprecated.y,
111
- -(scene.center_deprecated?.z ?? 0),
112
- ]}
113
- intensity={intensity}
114
- />
115
- <directionalLight
116
- position={[
117
- -(scene.center_deprecated?.x ?? 0),
118
- -(scene.center_deprecated?.y ?? 0) + 1 * scene.size_deprecated.y,
119
- -(scene.center_deprecated?.z ?? 0) + 1.5 * scene.size_deprecated.z,
120
- ]}
121
- intensity={intensity}
122
- />
123
- <directionalLight
124
- position={[
125
- -(scene.center_deprecated?.x ?? 0) + 2 * scene.size_deprecated.x,
126
- -(scene.center_deprecated?.y ?? 0),
127
- -(scene.center_deprecated?.z ?? 0) + 1.5 * scene.size_deprecated.z,
128
- ]}
129
- intensity={intensity}
130
- />
131
- <directionalLight
132
- position={[
133
- -(scene.center_deprecated?.x ?? 0) - 1.5 * scene.size_deprecated.x,
134
- -(scene.center_deprecated?.y ?? 0),
135
- -(scene.center_deprecated?.z ?? 0),
136
- ]}
137
- intensity={0.4}
138
- />
139
- <directionalLight
140
- position={[
141
- -(scene.center_deprecated?.x ?? 0) + 1.5 * scene.size_deprecated.x,
142
- -(scene.center_deprecated?.y ?? 0),
143
- -(scene.center_deprecated?.z ?? 0),
144
- ]}
145
- intensity={0.4}
146
- />
112
+ {lights ?? (
113
+ <>
114
+ <ambientLight intensity={3.5} />
115
+ <directionalLight
116
+ position={[
117
+ -(scene.center_deprecated?.x ?? 0) - 1.5 * scene.size_deprecated.x,
118
+ -(scene.center_deprecated?.y ?? 0) + 1.5 * scene.size_deprecated.y,
119
+ -(scene.center_deprecated?.z ?? 0),
120
+ ]}
121
+ intensity={intensity}
122
+ />
123
+ <directionalLight
124
+ position={[
125
+ -(scene.center_deprecated?.x ?? 0),
126
+ -(scene.center_deprecated?.y ?? 0) + 1 * scene.size_deprecated.y,
127
+ -(scene.center_deprecated?.z ?? 0) + 1.5 * scene.size_deprecated.z,
128
+ ]}
129
+ intensity={intensity}
130
+ />
131
+ <directionalLight
132
+ position={[
133
+ -(scene.center_deprecated?.x ?? 0) + 2 * scene.size_deprecated.x,
134
+ -(scene.center_deprecated?.y ?? 0),
135
+ -(scene.center_deprecated?.z ?? 0) + 1.5 * scene.size_deprecated.z,
136
+ ]}
137
+ intensity={intensity}
138
+ />
139
+ <directionalLight
140
+ position={[
141
+ -(scene.center_deprecated?.x ?? 0) - 1.5 * scene.size_deprecated.x,
142
+ -(scene.center_deprecated?.y ?? 0),
143
+ -(scene.center_deprecated?.z ?? 0),
144
+ ]}
145
+ intensity={0.4}
146
+ />
147
+ <directionalLight
148
+ position={[
149
+ -(scene.center_deprecated?.x ?? 0) + 1.5 * scene.size_deprecated.x,
150
+ -(scene.center_deprecated?.y ?? 0),
151
+ -(scene.center_deprecated?.z ?? 0),
152
+ ]}
153
+ intensity={0.4}
154
+ />
155
+ </>
156
+ )}
147
157
 
148
158
  <ReactScene
149
159
  scene={scene}