|
@@ -27,40 +27,40 @@
|
|
|
|
|
|
<script type="module">
|
|
|
import {
|
|
|
- BoxBufferGeometry,
|
|
|
+ BoxGeometry,
|
|
|
BufferGeometry,
|
|
|
- CircleBufferGeometry,
|
|
|
+ CircleGeometry,
|
|
|
Color,
|
|
|
- ConeBufferGeometry,
|
|
|
+ ConeGeometry,
|
|
|
Curve,
|
|
|
- CylinderBufferGeometry,
|
|
|
- DodecahedronBufferGeometry,
|
|
|
+ CylinderGeometry,
|
|
|
+ DodecahedronGeometry,
|
|
|
DoubleSide,
|
|
|
- ExtrudeBufferGeometry,
|
|
|
+ ExtrudeGeometry,
|
|
|
Float32BufferAttribute,
|
|
|
FontLoader,
|
|
|
Group,
|
|
|
- IcosahedronBufferGeometry,
|
|
|
- LatheBufferGeometry,
|
|
|
+ IcosahedronGeometry,
|
|
|
+ LatheGeometry,
|
|
|
LineSegments,
|
|
|
LineBasicMaterial,
|
|
|
Mesh,
|
|
|
MeshPhongMaterial,
|
|
|
- OctahedronBufferGeometry,
|
|
|
- ParametricBufferGeometry,
|
|
|
+ OctahedronGeometry,
|
|
|
+ ParametricGeometry,
|
|
|
PerspectiveCamera,
|
|
|
- PlaneBufferGeometry,
|
|
|
+ PlaneGeometry,
|
|
|
PointLight,
|
|
|
- RingBufferGeometry,
|
|
|
+ RingGeometry,
|
|
|
Scene,
|
|
|
Shape,
|
|
|
- ShapeBufferGeometry,
|
|
|
- SphereBufferGeometry,
|
|
|
- TetrahedronBufferGeometry,
|
|
|
- TextBufferGeometry,
|
|
|
- TorusBufferGeometry,
|
|
|
- TorusKnotBufferGeometry,
|
|
|
- TubeBufferGeometry,
|
|
|
+ ShapeGeometry,
|
|
|
+ SphereGeometry,
|
|
|
+ TetrahedronGeometry,
|
|
|
+ TextGeometry,
|
|
|
+ TorusGeometry,
|
|
|
+ TorusKnotGeometry,
|
|
|
+ TubeGeometry,
|
|
|
Vector2,
|
|
|
Vector3,
|
|
|
WireframeGeometry,
|
|
@@ -123,7 +123,7 @@
|
|
|
|
|
|
const guis = {
|
|
|
|
|
|
- BoxBufferGeometry: function ( mesh ) {
|
|
|
+ BoxGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
width: 15,
|
|
@@ -137,14 +137,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new BoxBufferGeometry(
|
|
|
+ new BoxGeometry(
|
|
|
data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.BoxBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.BoxGeometry' );
|
|
|
|
|
|
folder.add( data, 'width', 1, 30 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'height', 1, 30 ).onChange( generateGeometry );
|
|
@@ -157,7 +157,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- CylinderBufferGeometry: function ( mesh ) {
|
|
|
+ CylinderGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radiusTop: 5,
|
|
@@ -173,7 +173,7 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new CylinderBufferGeometry(
|
|
|
+ new CylinderGeometry(
|
|
|
data.radiusTop,
|
|
|
data.radiusBottom,
|
|
|
data.height,
|
|
@@ -187,7 +187,7 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.CylinderBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.CylinderGeometry' );
|
|
|
|
|
|
folder.add( data, 'radiusTop', 0, 30 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'radiusBottom', 0, 30 ).onChange( generateGeometry );
|
|
@@ -203,7 +203,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- ConeBufferGeometry: function ( mesh ) {
|
|
|
+ ConeGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radius: 5,
|
|
@@ -218,7 +218,7 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new ConeBufferGeometry(
|
|
|
+ new ConeGeometry(
|
|
|
data.radius,
|
|
|
data.height,
|
|
|
data.radialSegments,
|
|
@@ -231,7 +231,7 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.ConeBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.ConeGeometry' );
|
|
|
|
|
|
folder.add( data, 'radius', 0, 30 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'height', 1, 50 ).onChange( generateGeometry );
|
|
@@ -246,7 +246,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- CircleBufferGeometry: function ( mesh ) {
|
|
|
+ CircleGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radius: 10,
|
|
@@ -258,14 +258,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new CircleBufferGeometry(
|
|
|
+ new CircleGeometry(
|
|
|
data.radius, data.segments, data.thetaStart, data.thetaLength
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.CircleBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.CircleGeometry' );
|
|
|
|
|
|
folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'segments', 0, 128 ).step( 1 ).onChange( generateGeometry );
|
|
@@ -276,7 +276,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- DodecahedronBufferGeometry: function ( mesh ) {
|
|
|
+ DodecahedronGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radius: 10,
|
|
@@ -286,14 +286,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new DodecahedronBufferGeometry(
|
|
|
+ new DodecahedronGeometry(
|
|
|
data.radius, data.detail
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.DodecahedronBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.DodecahedronGeometry' );
|
|
|
|
|
|
folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'detail', 0, 5 ).step( 1 ).onChange( generateGeometry );
|
|
@@ -302,7 +302,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- IcosahedronBufferGeometry: function ( mesh ) {
|
|
|
+ IcosahedronGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radius: 10,
|
|
@@ -312,14 +312,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new IcosahedronBufferGeometry(
|
|
|
+ new IcosahedronGeometry(
|
|
|
data.radius, data.detail
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.IcosahedronBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.IcosahedronGeometry' );
|
|
|
|
|
|
folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'detail', 0, 5 ).step( 1 ).onChange( generateGeometry );
|
|
@@ -328,7 +328,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- LatheBufferGeometry: function ( mesh ) {
|
|
|
+ LatheGeometry: function ( mesh ) {
|
|
|
|
|
|
const points = [];
|
|
|
|
|
@@ -346,7 +346,7 @@
|
|
|
|
|
|
function generateGeometry() {
|
|
|
|
|
|
- const geometry = new LatheBufferGeometry(
|
|
|
+ const geometry = new LatheGeometry(
|
|
|
points, data.segments, data.phiStart, data.phiLength
|
|
|
);
|
|
|
|
|
@@ -354,7 +354,7 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.LatheBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.LatheGeometry' );
|
|
|
|
|
|
folder.add( data, 'segments', 1, 30 ).step( 1 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'phiStart', 0, twoPi ).onChange( generateGeometry );
|
|
@@ -364,7 +364,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- OctahedronBufferGeometry: function ( mesh ) {
|
|
|
+ OctahedronGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radius: 10,
|
|
@@ -374,14 +374,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new OctahedronBufferGeometry(
|
|
|
+ new OctahedronGeometry(
|
|
|
data.radius, data.detail
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.OctahedronBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.OctahedronGeometry' );
|
|
|
|
|
|
folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'detail', 0, 5 ).step( 1 ).onChange( generateGeometry );
|
|
@@ -390,7 +390,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- PlaneBufferGeometry: function ( mesh ) {
|
|
|
+ PlaneGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
width: 10,
|
|
@@ -402,14 +402,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new PlaneBufferGeometry(
|
|
|
+ new PlaneGeometry(
|
|
|
data.width, data.height, data.widthSegments, data.heightSegments
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.PlaneBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.PlaneGeometry' );
|
|
|
|
|
|
folder.add( data, 'width', 1, 30 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'height', 1, 30 ).onChange( generateGeometry );
|
|
@@ -420,7 +420,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- RingBufferGeometry: function ( mesh ) {
|
|
|
+ RingGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
innerRadius: 5,
|
|
@@ -434,14 +434,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new RingBufferGeometry(
|
|
|
+ new RingGeometry(
|
|
|
data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.RingBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.RingGeometry' );
|
|
|
|
|
|
folder.add( data, 'innerRadius', 1, 30 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'outerRadius', 1, 30 ).onChange( generateGeometry );
|
|
@@ -454,7 +454,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- SphereBufferGeometry: function ( mesh ) {
|
|
|
+ SphereGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radius: 15,
|
|
@@ -469,14 +469,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new SphereBufferGeometry(
|
|
|
+ new SphereGeometry(
|
|
|
data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.SphereBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.SphereGeometry' );
|
|
|
|
|
|
folder.add( data, 'radius', 1, 30 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'widthSegments', 3, 32 ).step( 1 ).onChange( generateGeometry );
|
|
@@ -490,7 +490,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- TetrahedronBufferGeometry: function ( mesh ) {
|
|
|
+ TetrahedronGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radius: 10,
|
|
@@ -500,14 +500,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new TetrahedronBufferGeometry(
|
|
|
+ new TetrahedronGeometry(
|
|
|
data.radius, data.detail
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.TetrahedronBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.TetrahedronGeometry' );
|
|
|
|
|
|
folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'detail', 0, 5 ).step( 1 ).onChange( generateGeometry );
|
|
@@ -516,10 +516,10 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- TextBufferGeometry: function ( mesh ) {
|
|
|
+ TextGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
- text: 'TextBufferGeometry',
|
|
|
+ text: 'TextGeometry',
|
|
|
size: 5,
|
|
|
height: 2,
|
|
|
curveSegments: 12,
|
|
@@ -548,7 +548,7 @@
|
|
|
const loader = new FontLoader();
|
|
|
loader.load( '../../examples/fonts/' + data.font + '_' + data.weight + '.typeface.json', function ( font ) {
|
|
|
|
|
|
- const geometry = new TextBufferGeometry( data.text, {
|
|
|
+ const geometry = new TextGeometry( data.text, {
|
|
|
font: font,
|
|
|
size: data.size,
|
|
|
height: data.height,
|
|
@@ -570,7 +570,7 @@
|
|
|
//Hide the wireframe
|
|
|
mesh.children[ 0 ].visible = false;
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.TextBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.TextGeometry' );
|
|
|
|
|
|
folder.add( data, 'text' ).onChange( generateGeometry );
|
|
|
folder.add( data, 'size', 1, 30 ).onChange( generateGeometry );
|
|
@@ -588,7 +588,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- TorusBufferGeometry: function ( mesh ) {
|
|
|
+ TorusGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radius: 10,
|
|
@@ -601,14 +601,14 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new TorusBufferGeometry(
|
|
|
+ new TorusGeometry(
|
|
|
data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc
|
|
|
)
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.TorusBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.TorusGeometry' );
|
|
|
|
|
|
folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'tube', 0.1, 10 ).onChange( generateGeometry );
|
|
@@ -620,7 +620,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- TorusKnotBufferGeometry: function ( mesh ) {
|
|
|
+ TorusKnotGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
radius: 10,
|
|
@@ -634,7 +634,7 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new TorusKnotBufferGeometry(
|
|
|
+ new TorusKnotGeometry(
|
|
|
data.radius, data.tube, data.tubularSegments, data.radialSegments,
|
|
|
data.p, data.q
|
|
|
)
|
|
@@ -642,7 +642,7 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.TorusKnotBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.TorusKnotGeometry' );
|
|
|
|
|
|
folder.add( data, 'radius', 1, 20 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'tube', 0.1, 10 ).onChange( generateGeometry );
|
|
@@ -655,7 +655,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- ParametricBufferGeometry: function ( mesh ) {
|
|
|
+ ParametricGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
slices: 25,
|
|
@@ -665,12 +665,12 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new ParametricBufferGeometry( ParametricGeometries.klein, data.slices, data.stacks )
|
|
|
+ new ParametricGeometry( ParametricGeometries.klein, data.slices, data.stacks )
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.ParametricBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.ParametricGeometry' );
|
|
|
|
|
|
folder.add( data, 'slices', 1, 100 ).step( 1 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'stacks', 1, 100 ).step( 1 ).onChange( generateGeometry );
|
|
@@ -679,7 +679,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- TubeBufferGeometry: function ( mesh ) {
|
|
|
+ TubeGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
segments: 20,
|
|
@@ -692,12 +692,12 @@
|
|
|
function generateGeometry() {
|
|
|
|
|
|
updateGroupGeometry( mesh,
|
|
|
- new TubeBufferGeometry( path, data.segments, data.radius, data.radialSegments, false )
|
|
|
+ new TubeGeometry( path, data.segments, data.radius, data.radialSegments, false )
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.TubeBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.TubeGeometry' );
|
|
|
|
|
|
folder.add( data, 'segments', 1, 100 ).step( 1 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'radius', 1, 10 ).onChange( generateGeometry );
|
|
@@ -707,7 +707,7 @@
|
|
|
|
|
|
},
|
|
|
|
|
|
- ShapeBufferGeometry: function ( mesh ) {
|
|
|
+ ShapeGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
segments: 12
|
|
@@ -715,21 +715,21 @@
|
|
|
|
|
|
function generateGeometry() {
|
|
|
|
|
|
- const geometry = new ShapeBufferGeometry( heartShape, data.segments );
|
|
|
+ const geometry = new ShapeGeometry( heartShape, data.segments );
|
|
|
geometry.center();
|
|
|
|
|
|
updateGroupGeometry( mesh, geometry );
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.ShapeBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.ShapeGeometry' );
|
|
|
folder.add( data, 'segments', 1, 100 ).step( 1 ).onChange( generateGeometry );
|
|
|
|
|
|
generateGeometry();
|
|
|
|
|
|
},
|
|
|
|
|
|
- ExtrudeBufferGeometry: function ( mesh ) {
|
|
|
+ ExtrudeGeometry: function ( mesh ) {
|
|
|
|
|
|
const data = {
|
|
|
steps: 2,
|
|
@@ -752,14 +752,14 @@
|
|
|
|
|
|
function generateGeometry() {
|
|
|
|
|
|
- const geometry = new ExtrudeBufferGeometry( shape, data );
|
|
|
+ const geometry = new ExtrudeGeometry( shape, data );
|
|
|
geometry.center();
|
|
|
|
|
|
updateGroupGeometry( mesh, geometry );
|
|
|
|
|
|
}
|
|
|
|
|
|
- const folder = gui.addFolder( 'THREE.ExtrudeBufferGeometry' );
|
|
|
+ const folder = gui.addFolder( 'THREE.ExtrudeGeometry' );
|
|
|
|
|
|
folder.add( data, 'steps', 1, 10 ).step( 1 ).onChange( generateGeometry );
|
|
|
folder.add( data, 'depth', 1, 20 ).onChange( generateGeometry );
|
|
@@ -776,7 +776,7 @@
|
|
|
|
|
|
function chooseFromHash( mesh ) {
|
|
|
|
|
|
- const selectedGeometry = window.location.hash.substring( 1 ) || 'TorusBufferGeometry';
|
|
|
+ const selectedGeometry = window.location.hash.substring( 1 ) || 'TorusGeometry';
|
|
|
|
|
|
if ( guis[ selectedGeometry ] !== undefined ) {
|
|
|
|
|
@@ -784,7 +784,7 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- if ( selectedGeometry === 'TextBufferGeometry' ) {
|
|
|
+ if ( selectedGeometry === 'TextGeometry' ) {
|
|
|
|
|
|
return { fixed: true };
|
|
|
|