Note that there are some explanatory texts on larger screens.

plurals
  1. POthree.js: "TypeError: v is undefined" when defining my homemade geometry
    primarykey
    data
    text
    <p>I am trying to build my own three.js geometry. However, when I try to define it, like this:</p> <pre><code>geometry = new THREE.FreeWallGeometry( 3, 5 ); </code></pre> <p>I get the error "TypeError: v is undefined" from the function <code>addSelf</code> at line 714 in three.js.</p> <p>How do I find out what triggers this error?</p> <p>This is the current code for my homemade geometry:</p> <pre><code>define( [ "libs/three.js/build/three", ], function ( three ) { console.log("setting up makeControls. regards, makeControls"); //THREE.FreeWallGeometry = function ( length, height, depth, segmentsWidth, segmentsHeight, segmentsDepth, materials, sides ) { // X = length, Y = height, Z = depth, THREE.FreeWallGeometry = function ( noOfSegments, segmentLength ) { THREE.Geometry.call( this ); var t1, t2, normal = new THREE.Vector3( 0, 0, 1); freePlane; var freePlane = function ( self, parametricPlane_X, parametricPlane_Y, parametricPlane_Z, equidistantSampler_T1, equidistantSampler_T2 ) { for ( t2 = 0; t2 &lt; noOfSegments; t2 ++ ) { for ( t1 = 0; t1 &lt; noOfSegments; t1 ++ ) { console.log("free: t1, t2 ", t1, t2); //var x = t1 * segmentT1_length - length_half; //var y = t2 * segmentT2_length - height_half; var x = parametricPlane_X ( t1, t2 ); var y = parametricPlane_Y ( t1, t2 ); var z = parametricPlane_Z ( t1, t2 ); console.log("free: x, y z ", x, y, z); self.vertices.push( new THREE.Vector3( x, - y, z ) ); } } for ( t2 = 0; t2 &lt; noOfSegments; t2 ++ ) { for ( t1 = 0; t1 &lt; noOfSegments; t1 ++ ) { var a = t1 + noOfSegments * t2; var b = t1 + noOfSegments * ( t2 + 1 ); var c = ( t1 + 1 ) + noOfSegments * ( t2 + 1 ); var d = ( t1 + 1 ) + noOfSegments * t2; //console.log ("free: a, b, c, d ", a, b, c, d); var face = new THREE.Face4( a, b, c, d ); if (!self.vertices[face.a]) { console.log("this face.a can't index vertices: ", face.a); } if (!self.vertices[face.b]) { console.log("this face.b can't index vertices: ", face.b); } if (!self.vertices[face.c]) { console.log("this face.c can't index vertices: ", face.c); } if (!self.vertices[face.d]) { console.log("this face.d can't index vertices: ", face.d); } face.normal.copy( normal ); face.vertexNormals.push( normal.clone(), normal.clone(), normal.clone(), normal.clone() ); self.faces.push( face ); self.faceVertexUvs[ 0 ].push( [ new THREE.UV( t1 / noOfSegments, 1 - t2 / noOfSegments ), new THREE.UV( t1 / noOfSegments, 1 - ( t2 + 1 ) / noOfSegments ), new THREE.UV( ( t1 + 1 ) / noOfSegments, 1 - ( t2 + 1 ) / noOfSegments ), new THREE.UV( ( t1 + 1 ) / noOfSegments, 1 - t2 / noOfSegments ) ] ); } } } var parametricPlane_X = function ( t1, t2 ) { x = t1; return x; }; var parametricPlane_Y = function ( t1, t2 ) { y = t1; return y; }; var parametricPlane_Z = function ( t1, t2 ) { z = t1 * t2; return z; }; var equidistantSampler_T1 = function ( t1 ) { t1 = Math.sqrt(t1); return t1; }; var equidistantSampler_T2 = function ( t2 ) { t2 = t2; return t2; }; freePlane(this, parametricPlane_X, parametricPlane_Y, parametricPlane_Z, equidistantSampler_T1, equidistantSampler_T2); this.computeCentroids(); }; THREE.FreeWallGeometry.prototype = Object.create( THREE.Geometry.prototype ); } ); </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload