@react-three/drei 7.8.6 → 7.9.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.
- package/core/Instances.cjs.js +1 -1
- package/core/Instances.d.ts +33 -3
- package/core/Instances.js +75 -35
- package/core/Points.cjs.js +1 -1
- package/core/Points.js +4 -2
- package/core/index.cjs.js +1 -1
- package/core/index.js +2 -1
- package/index.cjs.js +1 -1
- package/index.js +1 -1
- package/native/index.cjs.js +1 -1
- package/native/index.js +2 -1
- package/package.json +2 -1
- package/web/index.cjs.js +1 -1
- package/web/index.js +2 -1
package/core/Instances.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),t=require("three"),n=require("react"),u=require("@react-three/fiber"),a=require("react-merge-refs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),t=require("three"),n=require("react"),u=require("@react-three/fiber"),a=require("react-merge-refs"),c=require("react-composer"),o=require("../helpers/Position.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@babel/runtime/helpers/inheritsLoose");var s,f,d=i(e),m=i(r),p=l(t),v=l(n),y=i(a),h=i(c),b=v.createContext(null),x=new p.Matrix4,g=new p.Matrix4,M=new p.Matrix4,w=new p.Color,j=new p.Vector3,A=new p.Quaternion,E=new p.Vector3,q=v.forwardRef((function(e,r){var t=e.context,n=e.children,a=m.default(e,["context","children"]);v.useMemo((function(){return u.extend({Position:o.Position})}),[]);var c=v.useRef(),i=v.useContext(t||b).subscribe;return v.useLayoutEffect((function(){return i(c)}),[]),v.createElement("position",d.default({ref:y.default([r,c])},a),n)})),O=v.forwardRef((function(e,r){var t=e.children,n=e.range,a=e.limit,c=void 0===a?1e3:a,o=e.frames,i=void 0===o?1/0:o,l=m.default(e,["children","range","limit","frames"]),h=v.useState((function(){var e=v.createContext(null);return[e,function(r){return v.createElement(q,d.default({context:e},r))}]}))[0],O=h[0],P=h[1],_=v.useRef(null),C=v.useState([]),R=C[0],U=C[1],D=v.useState((function(){var e=new Float32Array(16*c);for(s=0;s<c;s++)M.identity().toArray(e,16*s);return[e,new Float32Array([].concat(new Array(3*c)).map((function(){return 1})))]}))[0],S=D[0],L=D[1];v.useLayoutEffect((function(){_.current.count=_.current.instanceMatrix.updateRange.count=_.current.instanceColor.updateRange.count=Math.min(c,void 0!==n?n:c,R.length)}),[R,n]),v.useEffect((function(){_.current.instanceMatrix.needsUpdate=!0}));var W=0;u.useFrame((function(e){if(i===1/0||W<i){for(_.current.updateMatrix(),_.current.updateMatrixWorld(),x.copy(_.current.matrixWorld).invert(),s=0;s<R.length;s++)(f=R[s].current).matrixWorld.decompose(j,A,E),g.compose(j,A,E).premultiply(x),g.equals(M.fromArray(S,16*s))||(g.toArray(S,16*s),_.current.instanceMatrix.needsUpdate=!0),f.color.equals(w.fromArray(L,3*s))||(f.color.toArray(L,3*s),_.current.instanceColor.needsUpdate=!0);W++}}));var k=v.useMemo((function(){var e={};for(s=0;s<R.length;s++){var r;Object.assign(e,null==(r=R[s].current)?void 0:r.__r3f.handlers)}return Object.keys(e).reduce((function(e,r){var t;return d.default({},e,((t={})[r]=function(e){var t,n,u;return null==(t=R[e.instanceId].current)||null==(n=t.__r3f)||null==(u=n.handlers)?void 0:u[r](e)},t))}),{})}),[R]),z=v.useMemo((function(){return{subscribe:function(e){return U((function(r){return[].concat(r,[e])})),function(){return U((function(r){return r.filter((function(r){return r.current!==e.current}))}))}}}}),[]);return v.createElement("instancedMesh",d.default({matrixAutoUpdate:!1,ref:y.default([r,_]),args:[null,null,0]},k,l),v.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:S.length/16,array:S,itemSize:16,usage:p.DynamicDrawUsage}),v.createElement("instancedBufferAttribute",{attach:"instanceColor",count:L.length/3,array:L,itemSize:3,usage:p.DynamicDrawUsage}),"function"==typeof t?v.createElement(O.Provider,{value:z},t(P)):v.createElement(b.Provider,{value:z},t))}));exports.Instance=q,exports.Instances=O,exports.Merged=function(e){var r=e.meshes,t=e.children,n=m.default(e,["meshes","children"]),u=Array.isArray(r);return v.createElement(h.default,{components:(u?r:Object.values(r)).map((function(e){var r=e.geometry,t=e.material;return v.createElement(O,d.default({geometry:r,material:t},n))}))},(function(e){return u?t.apply(void 0,e):t(Object.keys(r).reduce((function(r,t,n){var u;return d.default({},r,((u={})[t]=e[n],u))}),{}))}))};
|
package/core/Instances.d.ts
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { Position } from '../helpers/Position';
|
|
4
|
+
declare type Api = {
|
|
5
|
+
subscribe: (ref: any) => void;
|
|
6
|
+
};
|
|
7
|
+
declare const Instance: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").Node<Position, typeof Position>, import("@react-three/fiber").NonFunctionKeys<{
|
|
8
|
+
position?: import("@react-three/fiber").Vector3 | undefined;
|
|
9
|
+
up?: import("@react-three/fiber").Vector3 | undefined;
|
|
10
|
+
scale?: import("@react-three/fiber").Vector3 | undefined;
|
|
11
|
+
rotation?: import("@react-three/fiber").Euler | undefined;
|
|
12
|
+
matrix?: import("@react-three/fiber").Matrix4 | undefined;
|
|
13
|
+
quaternion?: import("@react-three/fiber").Quaternion | undefined;
|
|
14
|
+
layers?: import("@react-three/fiber").Layers | undefined;
|
|
15
|
+
dispose?: (() => void) | null | undefined;
|
|
16
|
+
}>> & {
|
|
17
|
+
position?: import("@react-three/fiber").Vector3 | undefined;
|
|
18
|
+
up?: import("@react-three/fiber").Vector3 | undefined;
|
|
19
|
+
scale?: import("@react-three/fiber").Vector3 | undefined;
|
|
20
|
+
rotation?: import("@react-three/fiber").Euler | undefined;
|
|
21
|
+
matrix?: import("@react-three/fiber").Matrix4 | undefined;
|
|
22
|
+
quaternion?: import("@react-three/fiber").Quaternion | undefined;
|
|
23
|
+
layers?: import("@react-three/fiber").Layers | undefined;
|
|
24
|
+
dispose?: (() => void) | null | undefined;
|
|
25
|
+
} & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers & {
|
|
26
|
+
context?: React.Context<Api> | undefined;
|
|
27
|
+
}, "visible" | "attach" | "attachArray" | "attachObject" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "isGroup" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "color" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "context"> & React.RefAttributes<unknown>>;
|
|
3
28
|
declare const Instances: React.ForwardRefExoticComponent<Pick<Omit<import("@react-three/fiber").Node<THREE.InstancedMesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>, typeof THREE.InstancedMesh>, import("@react-three/fiber").NonFunctionKeys<{
|
|
4
29
|
position?: import("@react-three/fiber").Vector3 | undefined;
|
|
5
30
|
up?: import("@react-three/fiber").Vector3 | undefined;
|
|
@@ -21,6 +46,11 @@ declare const Instances: React.ForwardRefExoticComponent<Pick<Omit<import("@reac
|
|
|
21
46
|
} & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers & {
|
|
22
47
|
range?: number | undefined;
|
|
23
48
|
limit?: number | undefined;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
49
|
+
frames?: number | undefined;
|
|
50
|
+
}, "visible" | "attach" | "attachArray" | "attachObject" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "range" | "material" | "geometry" | "morphTargetInfluences" | "morphTargetDictionary" | "isMesh" | "updateMorphTargets" | "frames" | "count" | "instanceColor" | "instanceMatrix" | "isInstancedMesh" | "getColorAt" | "getMatrixAt" | "setColorAt" | "setMatrixAt" | "limit"> & React.RefAttributes<THREE.InstancedMesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>>;
|
|
51
|
+
declare function Merged({ meshes, children, ...props }: {
|
|
52
|
+
[x: string]: any;
|
|
53
|
+
meshes: any;
|
|
54
|
+
children: any;
|
|
55
|
+
}): JSX.Element;
|
|
56
|
+
export { Instances, Instance, Merged };
|
package/core/Instances.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as THREE from 'three';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { extend, useFrame } from '@react-three/fiber';
|
|
5
5
|
import mergeRefs from 'react-merge-refs';
|
|
6
|
+
import Composer from 'react-composer';
|
|
6
7
|
import { Position } from '../helpers/Position.js';
|
|
7
8
|
|
|
8
9
|
let i, instanceRef;
|
|
9
|
-
const
|
|
10
|
+
const globalContext = /*#__PURE__*/React.createContext(null);
|
|
10
11
|
const parentMatrix = new THREE.Matrix4();
|
|
11
12
|
const instanceMatrix = new THREE.Matrix4();
|
|
12
13
|
const tempMatrix = new THREE.Matrix4();
|
|
@@ -14,12 +15,39 @@ const color = new THREE.Color();
|
|
|
14
15
|
const translation = new THREE.Vector3();
|
|
15
16
|
const rotation = new THREE.Quaternion();
|
|
16
17
|
const scale = new THREE.Vector3();
|
|
18
|
+
const Instance = /*#__PURE__*/React.forwardRef(({
|
|
19
|
+
context,
|
|
20
|
+
children,
|
|
21
|
+
...props
|
|
22
|
+
}, ref) => {
|
|
23
|
+
React.useMemo(() => extend({
|
|
24
|
+
Position
|
|
25
|
+
}), []);
|
|
26
|
+
const group = React.useRef();
|
|
27
|
+
const {
|
|
28
|
+
subscribe
|
|
29
|
+
} = React.useContext(context || globalContext);
|
|
30
|
+
React.useLayoutEffect(() => subscribe(group), []);
|
|
31
|
+
return /*#__PURE__*/React.createElement("position", _extends({
|
|
32
|
+
ref: mergeRefs([ref, group])
|
|
33
|
+
}, props), children);
|
|
34
|
+
});
|
|
17
35
|
const Instances = /*#__PURE__*/React.forwardRef(({
|
|
18
36
|
children,
|
|
19
37
|
range,
|
|
20
38
|
limit = 1000,
|
|
39
|
+
frames = Infinity,
|
|
21
40
|
...props
|
|
22
41
|
}, ref) => {
|
|
42
|
+
const [[context, instance]] = React.useState(() => {
|
|
43
|
+
const c = /*#__PURE__*/React.createContext(null);
|
|
44
|
+
|
|
45
|
+
const i = props => /*#__PURE__*/React.createElement(Instance, _extends({
|
|
46
|
+
context: c
|
|
47
|
+
}, props));
|
|
48
|
+
|
|
49
|
+
return [c, i];
|
|
50
|
+
});
|
|
23
51
|
const parentRef = React.useRef(null);
|
|
24
52
|
const [instances, setInstances] = React.useState([]);
|
|
25
53
|
const [[matrices, colors]] = React.useState(() => {
|
|
@@ -36,27 +64,32 @@ const Instances = /*#__PURE__*/React.forwardRef(({
|
|
|
36
64
|
// We might be a frame too late? 🤷♂️
|
|
37
65
|
parentRef.current.instanceMatrix.needsUpdate = true;
|
|
38
66
|
});
|
|
67
|
+
let count = 0;
|
|
39
68
|
useFrame(state => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
69
|
+
if (frames === Infinity || count < frames) {
|
|
70
|
+
parentRef.current.updateMatrix();
|
|
71
|
+
parentRef.current.updateMatrixWorld();
|
|
72
|
+
parentMatrix.copy(parentRef.current.matrixWorld).invert();
|
|
43
73
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
74
|
+
for (i = 0; i < instances.length; i++) {
|
|
75
|
+
instanceRef = instances[i].current; // Multiply the inverse of the InstancedMesh world matrix or else
|
|
76
|
+
// Instances will be double-transformed if <Instances> isn't at identity
|
|
47
77
|
|
|
48
|
-
|
|
49
|
-
|
|
78
|
+
instanceRef.matrixWorld.decompose(translation, rotation, scale);
|
|
79
|
+
instanceMatrix.compose(translation, rotation, scale).premultiply(parentMatrix);
|
|
50
80
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
81
|
+
if (!instanceMatrix.equals(tempMatrix.fromArray(matrices, i * 16))) {
|
|
82
|
+
instanceMatrix.toArray(matrices, i * 16);
|
|
83
|
+
parentRef.current.instanceMatrix.needsUpdate = true;
|
|
84
|
+
}
|
|
55
85
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
86
|
+
if (!instanceRef.color.equals(color.fromArray(colors, i * 3))) {
|
|
87
|
+
instanceRef.color.toArray(colors, i * 3);
|
|
88
|
+
parentRef.current.instanceColor.needsUpdate = true;
|
|
89
|
+
}
|
|
59
90
|
}
|
|
91
|
+
|
|
92
|
+
count++;
|
|
60
93
|
}
|
|
61
94
|
});
|
|
62
95
|
const events = React.useMemo(() => {
|
|
@@ -90,31 +123,38 @@ const Instances = /*#__PURE__*/React.forwardRef(({
|
|
|
90
123
|
attach: "instanceMatrix",
|
|
91
124
|
count: matrices.length / 16,
|
|
92
125
|
array: matrices,
|
|
93
|
-
itemSize: 16
|
|
126
|
+
itemSize: 16,
|
|
127
|
+
usage: THREE.DynamicDrawUsage
|
|
94
128
|
}), /*#__PURE__*/React.createElement("instancedBufferAttribute", {
|
|
95
129
|
attach: "instanceColor",
|
|
96
130
|
count: colors.length / 3,
|
|
97
131
|
array: colors,
|
|
98
|
-
itemSize: 3
|
|
99
|
-
|
|
132
|
+
itemSize: 3,
|
|
133
|
+
usage: THREE.DynamicDrawUsage
|
|
134
|
+
}), typeof children === 'function' ? /*#__PURE__*/React.createElement(context.Provider, {
|
|
135
|
+
value: api
|
|
136
|
+
}, children(instance)) : /*#__PURE__*/React.createElement(globalContext.Provider, {
|
|
100
137
|
value: api
|
|
101
138
|
}, children));
|
|
102
139
|
});
|
|
103
|
-
|
|
140
|
+
|
|
141
|
+
function Merged({
|
|
142
|
+
meshes,
|
|
104
143
|
children,
|
|
105
144
|
...props
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
});
|
|
145
|
+
}) {
|
|
146
|
+
const isArray = Array.isArray(meshes);
|
|
147
|
+
return /*#__PURE__*/React.createElement(Composer, {
|
|
148
|
+
components: (isArray ? meshes : Object.values(meshes)).map(({
|
|
149
|
+
geometry,
|
|
150
|
+
material
|
|
151
|
+
}) => /*#__PURE__*/React.createElement(Instances, _extends({
|
|
152
|
+
geometry: geometry,
|
|
153
|
+
material: material
|
|
154
|
+
}, props)))
|
|
155
|
+
}, args => isArray ? children(...args) : children(Object.keys(meshes).reduce((acc, key, i) => ({ ...acc,
|
|
156
|
+
[key]: args[i]
|
|
157
|
+
}), {})));
|
|
158
|
+
}
|
|
119
159
|
|
|
120
|
-
export { Instance, Instances };
|
|
160
|
+
export { Instance, Instances, Merged };
|
package/core/Points.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),t=require("three"),n=require("react"),u=require("@react-three/fiber"),o=require("react-merge-refs"),a=require("../helpers/Position.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@babel/runtime/helpers/inheritsLoose");var l,f,s=i(e),d=i(r),b=c(t),m=c(n),p=i(o),y=m.createContext(null),h=new b.Matrix4,g=new b.Vector3,v=new b.Color,x=m.forwardRef((function(e,r){var t=e.children,n=e.range,o=e.limit,a=void 0===o?1e3:o,i=d.default(e,["children","range","limit"]),c=m.useRef(null),x=m.useState([]),j=x[0],w=x[1],O=m.useState((function(){return[new Float32Array(3*a),new Float32Array([].concat(new Array(3*a)).map((function(){return 1})))]}))[0],P=O[0],E=O[1];m.useLayoutEffect((function(){c.current.geometry.drawRange.count=Math.min(a,void 0!==n?n:a,j.length)}),[j,n]),m.useEffect((function(){c.current.geometry.attributes.position.needsUpdate=!0})),u.useFrame((function(){for(c.current.updateMatrix(),c.current.updateMatrixWorld(),h.copy(c.current.matrixWorld).invert(),l=0;l<j.length;l++)(f=j[l].current).getWorldPosition(g).applyMatrix4(h),g.x===P[3*l]&&g.y===P[3*l+1]&&g.z===P[3*l+2]||(g.toArray(P,3*l),c.current.geometry.attributes.position.needsUpdate=!0,f.matrixWorldNeedsUpdate=!0),f.color.equals(v.fromArray(E,3*l))||(f.color.toArray(E,3*l),c.current.geometry.attributes.color.needsUpdate=!0)}));var M=m.useMemo((function(){var e={};for(l=0;l<j.length;l++){var r;Object.assign(e,null==(r=j[l].current)?void 0:r.__r3f.handlers)}return Object.keys(e).reduce((function(e,r){var t;return s.default({},e,((t={})[r]=function(e){var t,n,u;return null==(t=j[e.index].current)||null==(n=t.__r3f)||null==(u=n.handlers)?void 0:u[r](e)},t))}),{})}),[j]),q=m.useMemo((function(){return{subscribe:function(e){return w((function(r){return[].concat(r,[e])})),function(){return w((function(r){return r.filter((function(r){return r.current!==e.current}))}))}}}}),[]);return m.createElement("points",s.default({matrixAutoUpdate:!1,ref:p.default([r,c])},M,i),m.createElement("bufferGeometry",null,m.createElement("bufferAttribute",{attachObject:["attributes","position"],count:P.length/3,array:P,itemSize:3,usage:b.DynamicDrawUsage}),m.createElement("bufferAttribute",{attachObject:["attributes","color"],count:E.length/3,array:E,itemSize:3,usage:b.DynamicDrawUsage})),m.createElement(y.Provider,{value:q},t))})),j=m.forwardRef((function(e,r){var t=e.children,n=d.default(e,["children"]);m.useMemo((function(){return u.extend({Position:a.Position})}),[]);var o=m.useRef(),i=m.useContext(y).subscribe;return m.useLayoutEffect((function(){return i(o)}),[]),m.createElement("position",s.default({ref:p.default([r,o])},n),t)}));exports.Point=j,exports.Points=x;
|
package/core/Points.js
CHANGED
|
@@ -77,12 +77,14 @@ const Points = /*#__PURE__*/React.forwardRef(({
|
|
|
77
77
|
attachObject: ['attributes', 'position'],
|
|
78
78
|
count: positions.length / 3,
|
|
79
79
|
array: positions,
|
|
80
|
-
itemSize: 3
|
|
80
|
+
itemSize: 3,
|
|
81
|
+
usage: THREE.DynamicDrawUsage
|
|
81
82
|
}), /*#__PURE__*/React.createElement("bufferAttribute", {
|
|
82
83
|
attachObject: ['attributes', 'color'],
|
|
83
84
|
count: colors.length / 3,
|
|
84
85
|
array: colors,
|
|
85
|
-
itemSize: 3
|
|
86
|
+
itemSize: 3,
|
|
87
|
+
usage: THREE.DynamicDrawUsage
|
|
86
88
|
})), /*#__PURE__*/React.createElement(context.Provider, {
|
|
87
89
|
value: api
|
|
88
90
|
}, children));
|
package/core/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./Cloud.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./Line.cjs.js"),i=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),a=require("./Environment.cjs.js"),p=require("./Effects.cjs.js"),c=require("./GradientTexture.cjs.js"),j=require("./OrthographicCamera.cjs.js"),n=require("./PerspectiveCamera.cjs.js"),l=require("./CameraShake.cjs.js"),x=require("./CubeCamera.cjs.js"),q=require("./DeviceOrientationControls.cjs.js"),d=require("./FlyControls.cjs.js"),h=require("./MapControls.cjs.js"),C=require("./OrbitControls.cjs.js"),m=require("./TrackballControls.cjs.js"),b=require("./TransformControls.cjs.js"),P=require("./PointerLockControls.cjs.js"),S=require("./FirstPersonControls.cjs.js"),T=require("./GizmoHelper.cjs.js"),f=require("./GizmoViewcube.cjs.js"),M=require("./GizmoViewport.cjs.js"),B=require("./useCubeTexture.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./Cloud.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./Line.cjs.js"),i=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),a=require("./Environment.cjs.js"),p=require("./Effects.cjs.js"),c=require("./GradientTexture.cjs.js"),j=require("./OrthographicCamera.cjs.js"),n=require("./PerspectiveCamera.cjs.js"),l=require("./CameraShake.cjs.js"),x=require("./CubeCamera.cjs.js"),q=require("./DeviceOrientationControls.cjs.js"),d=require("./FlyControls.cjs.js"),h=require("./MapControls.cjs.js"),C=require("./OrbitControls.cjs.js"),m=require("./TrackballControls.cjs.js"),b=require("./TransformControls.cjs.js"),P=require("./PointerLockControls.cjs.js"),S=require("./FirstPersonControls.cjs.js"),T=require("./GizmoHelper.cjs.js"),f=require("./GizmoViewcube.cjs.js"),M=require("./GizmoViewport.cjs.js"),B=require("./useCubeTexture.cjs.js"),g=require("./useFBX.cjs.js"),v=require("./useGLTF.cjs.js"),L=require("./useProgress.cjs.js"),G=require("./useTexture.cjs.js"),D=require("./Reflector.cjs.js"),z=require("./Shadow.cjs.js"),A=require("./Stats.cjs.js"),F=require("./Center.cjs.js"),O=require("./DepthBuffer.cjs.js"),w=require("./useAspect.cjs.js"),E=require("./useCamera.cjs.js"),k=require("./useDetectGPU.cjs.js"),y=require("./useHelper.cjs.js"),I=require("./useBVH.cjs.js"),H=require("./useContextBridge.cjs.js"),R=require("./useAnimations.cjs.js"),V=require("./useFBO.cjs.js"),Q=require("./useSimplification.cjs.js"),W=require("./useTessellation.cjs.js"),N=require("./useEdgeSplit.cjs.js"),U=require("./CurveModifier.cjs.js"),X=require("./MeshDistortMaterial.cjs.js"),K=require("./MeshWobbleMaterial.cjs.js"),_=require("./PointMaterial.cjs.js"),J=require("./shaderMaterial.cjs.js"),Y=require("./Sky.cjs.js"),Z=require("./softShadows.cjs.js"),$=require("./Stars.cjs.js"),ee=require("./ContactShadows.cjs.js"),re=require("./SpotLight.cjs.js"),se=require("./shapes.cjs.js"),te=require("./RoundedBox.cjs.js"),oe=require("./ScreenQuad.cjs.js"),ie=require("./useMatcapTexture.cjs.js"),ue=require("./useNormalTexture.cjs.js"),ae=require("./Stage.cjs.js"),pe=require("./Points.cjs.js"),ce=require("./Instances.cjs.js"),je=require("./Detailed.cjs.js"),ne=require("./Preload.cjs.js"),le=require("./meshBounds.cjs.js"),xe=require("./AdaptiveDpr.cjs.js"),qe=require("./AdaptiveEvents.cjs.js");require("@babel/runtime/helpers/extends"),require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("../assets/cloud.base64.cjs.js"),require("../helpers/base64.cjs.js"),require("blob-polyfill"),require("three"),require("@babel/runtime/helpers/construct"),require("three-stdlib"),require("troika-three-text"),require("use-asset"),require("../helpers/environment-assets.cjs.js"),require("lodash.omit"),require("lodash.pick"),require("zustand"),require("../materials/MeshReflectorMaterial.cjs.js"),require("@babel/runtime/helpers/createClass"),require("@babel/runtime/helpers/inheritsLoose"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("@babel/runtime/helpers/assertThisInitialized"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/matcap-assets.cjs.js"),require("../helpers/normal-assets.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.Cloud=r.Cloud,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.Line=o.Line,exports.PositionalAudio=i.PositionalAudio,exports.Text=u.Text,exports.Environment=a.Environment,exports.Effects=p.Effects,exports.isWebGL2Available=p.isWebGL2Available,exports.GradientTexture=c.GradientTexture,exports.OrthographicCamera=j.OrthographicCamera,exports.PerspectiveCamera=n.PerspectiveCamera,exports.CameraShake=l.CameraShake,exports.CubeCamera=x.CubeCamera,exports.DeviceOrientationControls=q.DeviceOrientationControls,exports.FlyControls=d.FlyControls,exports.MapControls=h.MapControls,exports.OrbitControls=C.OrbitControls,exports.TrackballControls=m.TrackballControls,exports.TransformControls=b.TransformControls,exports.PointerLockControls=P.PointerLockControls,exports.FirstPersonControls=S.FirstPersonControls,exports.GizmoHelper=T.GizmoHelper,exports.useGizmoContext=T.useGizmoContext,exports.GizmoViewcube=f.GizmoViewcube,exports.GizmoViewport=M.GizmoViewport,exports.useCubeTexture=B.useCubeTexture,exports.useFBX=g.useFBX,exports.useGLTF=v.useGLTF,exports.useProgress=L.useProgress,exports.IsObject=G.IsObject,exports.useTexture=G.useTexture,exports.Reflector=D.Reflector,exports.Shadow=z.Shadow,exports.Stats=A.Stats,exports.Center=F.Center,exports.DepthBuffer=O.DepthBuffer,exports.useAspect=w.useAspect,exports.useCamera=E.useCamera,exports.useDetectGPU=k.useDetectGPU,exports.useHelper=y.useHelper,exports.useBVH=I.useBVH,exports.useContextBridge=H.useContextBridge,exports.useAnimations=R.useAnimations,exports.useFBO=V.useFBO,exports.useSimplification=Q.useSimplification,exports.useTessellation=W.useTessellation,exports.useEdgeSplit=N.useEdgeSplit,exports.CurveModifier=U.CurveModifier,exports.MeshDistortMaterial=X.MeshDistortMaterial,exports.MeshWobbleMaterial=K.MeshWobbleMaterial,exports.PointMaterial=_.PointMaterial,exports.PointMaterialImpl=_.PointMaterialImpl,exports.shaderMaterial=J.shaderMaterial,exports.Sky=Y.Sky,exports.calcPosFromAngles=Y.calcPosFromAngles,exports.softShadows=Z.softShadows,exports.Stars=$.Stars,exports.ContactShadows=ee.ContactShadows,exports.SpotLight=re.SpotLight,exports.Box=se.Box,exports.Circle=se.Circle,exports.Cone=se.Cone,exports.Cylinder=se.Cylinder,exports.Dodecahedron=se.Dodecahedron,exports.Extrude=se.Extrude,exports.Icosahedron=se.Icosahedron,exports.Lathe=se.Lathe,exports.Octahedron=se.Octahedron,exports.Parametric=se.Parametric,exports.Plane=se.Plane,exports.Polyhedron=se.Polyhedron,exports.Ring=se.Ring,exports.Sphere=se.Sphere,exports.Tetrahedron=se.Tetrahedron,exports.Torus=se.Torus,exports.TorusKnot=se.TorusKnot,exports.Tube=se.Tube,exports.RoundedBox=te.RoundedBox,exports.ScreenQuad=oe.ScreenQuad,exports.useMatcapTexture=ie.useMatcapTexture,exports.useNormalTexture=ue.useNormalTexture,exports.Stage=ae.Stage,exports.Point=pe.Point,exports.Points=pe.Points,exports.Instance=ce.Instance,exports.Instances=ce.Instances,exports.Merged=ce.Merged,exports.Detailed=je.Detailed,exports.Preload=ne.Preload,exports.meshBounds=le.meshBounds,exports.AdaptiveDpr=xe.AdaptiveDpr,exports.AdaptiveEvents=qe.AdaptiveEvents;
|
package/core/index.js
CHANGED
|
@@ -61,7 +61,7 @@ export { useMatcapTexture } from './useMatcapTexture.js';
|
|
|
61
61
|
export { useNormalTexture } from './useNormalTexture.js';
|
|
62
62
|
export { Stage } from './Stage.js';
|
|
63
63
|
export { Point, Points } from './Points.js';
|
|
64
|
-
export { Instance, Instances } from './Instances.js';
|
|
64
|
+
export { Instance, Instances, Merged } from './Instances.js';
|
|
65
65
|
export { Detailed } from './Detailed.js';
|
|
66
66
|
export { Preload } from './Preload.js';
|
|
67
67
|
export { meshBounds } from './meshBounds.js';
|
|
@@ -91,3 +91,4 @@ import '../materials/SpotLightMaterial.js';
|
|
|
91
91
|
import '../helpers/matcap-assets.js';
|
|
92
92
|
import '../helpers/normal-assets.js';
|
|
93
93
|
import '../helpers/Position.js';
|
|
94
|
+
import 'react-composer';
|