mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-04 10:19:24 +02:00
This commit is contained in:
parent
f0f62670c5
commit
7e26256cac
4563 changed files with 1246712 additions and 17558 deletions
52
node_modules/three/examples/js/geometries/ConvexGeometry.js
generated
vendored
Normal file
52
node_modules/three/examples/js/geometries/ConvexGeometry.js
generated
vendored
Normal file
|
@ -0,0 +1,52 @@
|
|||
// ConvexGeometry
|
||||
|
||||
THREE.ConvexGeometry = function ( points ) {
|
||||
|
||||
THREE.BufferGeometry.call( this );
|
||||
|
||||
// buffers
|
||||
|
||||
var vertices = [];
|
||||
var normals = [];
|
||||
|
||||
if ( THREE.ConvexHull === undefined ) {
|
||||
|
||||
console.error( 'THREE.ConvexBufferGeometry: ConvexBufferGeometry relies on THREE.ConvexHull' );
|
||||
|
||||
}
|
||||
|
||||
var convexHull = new THREE.ConvexHull().setFromPoints( points );
|
||||
|
||||
// generate vertices and normals
|
||||
|
||||
var faces = convexHull.faces;
|
||||
|
||||
for ( var i = 0; i < faces.length; i ++ ) {
|
||||
|
||||
var face = faces[ i ];
|
||||
var edge = face.edge;
|
||||
|
||||
// we move along a doubly-connected edge list to access all face points (see HalfEdge docs)
|
||||
|
||||
do {
|
||||
|
||||
var point = edge.head().point;
|
||||
|
||||
vertices.push( point.x, point.y, point.z );
|
||||
normals.push( face.normal.x, face.normal.y, face.normal.z );
|
||||
|
||||
edge = edge.next;
|
||||
|
||||
} while ( edge !== face.edge );
|
||||
|
||||
}
|
||||
|
||||
// build geometry
|
||||
|
||||
this.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
|
||||
this.setAttribute( 'normal', new THREE.Float32BufferAttribute( normals, 3 ) );
|
||||
|
||||
};
|
||||
|
||||
THREE.ConvexGeometry.prototype = Object.create( THREE.BufferGeometry.prototype );
|
||||
THREE.ConvexGeometry.prototype.constructor = THREE.ConvexGeometry;
|
Loading…
Add table
Add a link
Reference in a new issue