# THREE.Geometry will be removed from core with r125

**URL:** <https://discourse.threejs.org/t/three-geometry-will-be-removed-from-core-with-r125/22401>\
**Category:** Discussion\
**Tags:** geometry\
**Created:** [January 13, 2021, 8:13pm UTC](https://discourse.threejs.org/t/three-geometry-will-be-removed-from-core-with-r125/22401 "2021-01-13T20:13:44Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![Mugen87](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mugen87/32/5645_2.png) [@Mugen87](https://discourse.threejs.org/u/Mugen87)\
**Post date:** [January 14, 2021, 11:52am UTC](https://discourse.threejs.org/t/three-geometry-will-be-removed-from-core-with-r125/22401/13 "2021-01-14T11:52:49Z")

</div>

@Lawrence3DPK Your code will definitely not work with `r125` even if you include `THREE.Geometry` from the examples since raycasting does not support `THREE.Geometry` anymore. So you will have to learn how to work with `BufferGeometry`.

As a small teaser, you iterate through all vertices like so:

```javascript
const positionAttribute = MovingCube.geometry.getAttribute( 'position' );

const localVertex = new THREE.Vector3();
const globalVertex = new THREE.Vector3();

for ( let vertexIndex = 0; vertexIndex < positionAttribute.count; vertexIndex ++ ) {

	localVertex.fromBufferAttribute( positionAttribute, vertexIndex );
	globalVertex.copy( localVertex ).applyMatrix4( MovingCube.matrixWorld );

}

```

Notice that you have no `clone()` operation in your `for` loop anymore which is good for performance. Besides, always use `matrixWorld` if you want to transform something to world space.

---

_[View the full topic](https://discourse.threejs.org/t/three-geometry-will-be-removed-from-core-with-r125/22401)._
