Skip to content

Commit

Permalink
Convert to BufferGeometry
Browse files Browse the repository at this point in the history
  • Loading branch information
WestLangley committed Oct 24, 2018
1 parent e371fe2 commit de4abea
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 12 deletions.
20 changes: 12 additions & 8 deletions examples/js/Cloth.js
Original file line number Diff line number Diff line change
Expand Up @@ -243,19 +243,23 @@ function simulate( time ) {

if ( wind ) {

var face, faces = clothGeometry.faces, normal;
var indx;
var normal = new THREE.Vector3();
var indices = clothGeometry.index;
var normals = clothGeometry.attributes.normal;

particles = cloth.particles;

for ( i = 0, il = faces.length; i < il; i ++ ) {
for ( i = 0, il = indices.count; i < il; i += 3 ) {

face = faces[ i ];
normal = face.normal;
for ( j = 0; j < 3; j ++ ) {

tmpForce.copy( normal ).normalize().multiplyScalar( normal.dot( windForce ) );
particles[ face.a ].addForce( tmpForce );
particles[ face.b ].addForce( tmpForce );
particles[ face.c ].addForce( tmpForce );
indx = indices.getX( i + j );
normal.fromBufferAttribute( normals, indx )
tmpForce.copy( normal ).normalize().multiplyScalar( normal.dot( windForce ) );
particles[ indx ].addForce( tmpForce );

}

}

Expand Down
9 changes: 5 additions & 4 deletions examples/webgl_animation_cloth.html
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@

// cloth geometry

clothGeometry = new THREE.ParametricGeometry( clothFunction, cloth.w, cloth.h );
clothGeometry = new THREE.ParametricBufferGeometry( clothFunction, cloth.w, cloth.h );

// cloth mesh

Expand Down Expand Up @@ -296,13 +296,14 @@

for ( var i = 0, il = p.length; i < il; i ++ ) {

clothGeometry.vertices[ i ].copy( p[ i ].position );
var v = p[ i ].position;

clothGeometry.attributes.position.setXYZ( i, v.x, v.y, v.z );

}

clothGeometry.verticesNeedUpdate = true;
clothGeometry.attributes.position.needsUpdate = true;

clothGeometry.computeFaceNormals();
clothGeometry.computeVertexNormals();

sphere.position.copy( ballPosition );
Expand Down

0 comments on commit de4abea

Please sign in to comment.