Doc
This commit is contained in:
parent
7744821c37
commit
422bd7682d
|
@ -1,6 +1,7 @@
|
||||||
/**
|
/**
|
||||||
* @memberof L3D
|
* @memberof L3D
|
||||||
* @description The base class for recommendation
|
* @description The base class for recommendation
|
||||||
|
* @extends THREE.Object3D
|
||||||
* @constructor
|
* @constructor
|
||||||
* @abstract
|
* @abstract
|
||||||
*/
|
*/
|
||||||
|
@ -8,6 +9,10 @@ L3D.BaseRecommendation = function(arg1, arg2, arg3, arg4, position, target) {
|
||||||
|
|
||||||
THREE.Object3D.apply(this);
|
THREE.Object3D.apply(this);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {L3D.FixedCamera}
|
||||||
|
* @description Camera corresponding to the suggested point of view
|
||||||
|
*/
|
||||||
this.camera = new L3D.FixedCamera(arg1, arg2, arg3, arg4, position, target);
|
this.camera = new L3D.FixedCamera(arg1, arg2, arg3, arg4, position, target);
|
||||||
this.add(this.camera);
|
this.add(this.camera);
|
||||||
|
|
||||||
|
@ -15,15 +20,30 @@ L3D.BaseRecommendation = function(arg1, arg2, arg3, arg4, position, target) {
|
||||||
direction.sub(this.camera.position);
|
direction.sub(this.camera.position);
|
||||||
direction.normalize();
|
direction.normalize();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {THREE.Vector3}
|
||||||
|
* @description Center of the square at the base of the arrow
|
||||||
|
*/
|
||||||
this.center = this.camera.position.clone();
|
this.center = this.camera.position.clone();
|
||||||
this.center.sub(direction);
|
this.center.sub(direction);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {THREE.Mesh}
|
||||||
|
* @description Body of the arrow
|
||||||
|
*/
|
||||||
this.arrow = new THREE.Mesh(new THREE.Geometry(), new THREE.MeshLambertMaterial({color: 0x0000ff, side:THREE.BackSide}));
|
this.arrow = new THREE.Mesh(new THREE.Geometry(), new THREE.MeshLambertMaterial({color: 0x0000ff, side:THREE.BackSide}));
|
||||||
this.add(this.arrow);
|
this.add(this.arrow);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {Number}
|
||||||
|
* @description Size of the meshes
|
||||||
|
*/
|
||||||
this.size = 0.4;
|
this.size = 0.4;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {THREE.Object3D}
|
||||||
|
* @description A container for the displayable objects in the Recommendation
|
||||||
|
*/
|
||||||
this.object3D = new THREE.Object3D();
|
this.object3D = new THREE.Object3D();
|
||||||
|
|
||||||
var tmp = this.initExtremity();
|
var tmp = this.initExtremity();
|
||||||
|
@ -37,8 +57,6 @@ L3D.BaseRecommendation = function(arg1, arg2, arg3, arg4, position, target) {
|
||||||
|
|
||||||
this.fullArrow = false;
|
this.fullArrow = false;
|
||||||
|
|
||||||
r = this;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
L3D.BaseRecommendation.prototype = Object.create(THREE.Object3D.prototype);
|
L3D.BaseRecommendation.prototype = Object.create(THREE.Object3D.prototype);
|
||||||
L3D.BaseRecommendation.prototype.constructor = L3D.BaseRecommendation;
|
L3D.BaseRecommendation.prototype.constructor = L3D.BaseRecommendation;
|
||||||
|
@ -203,13 +221,6 @@ L3D.BaseRecommendation.prototype.regenerateArrow = function(mainCamera) {
|
||||||
|
|
||||||
if (fp1.dot(dir) < -0.5) {
|
if (fp1.dot(dir) < -0.5) {
|
||||||
// Regen polynom with better stuff
|
// Regen polynom with better stuff
|
||||||
// var new_dir = L3D.Tools.cross(L3D.Tools.diff(this.position, mainCamera.position).normalize(), mainCamera.up);
|
|
||||||
// new_dir.multiplyScalar(new_dir.dot(fp1) < 0 ? 1 : -1);
|
|
||||||
// new_dir.add(dir);
|
|
||||||
// new_dir.add(dir);
|
|
||||||
// new_dir.multiplyScalar(2);
|
|
||||||
// f0.add(new_dir);
|
|
||||||
|
|
||||||
if (mainCamera.position.y > this.camera.position.y) {
|
if (mainCamera.position.y > this.camera.position.y) {
|
||||||
f0.add(new THREE.Vector3(0,2,0));
|
f0.add(new THREE.Vector3(0,2,0));
|
||||||
} else {
|
} else {
|
||||||
|
@ -227,7 +238,6 @@ L3D.BaseRecommendation.prototype.regenerateArrow = function(mainCamera) {
|
||||||
var deriv;
|
var deriv;
|
||||||
var limit = this.fullArrow ? 0.1 : 0.3;
|
var limit = this.fullArrow ? 0.1 : 0.3;
|
||||||
|
|
||||||
// for (var i = this.fullArrow ? 0 : 0.5; i <= 1.001; i += 0.05) {
|
|
||||||
for (i = 1; i > limit; i -= 0.1) {
|
for (i = 1; i > limit; i -= 0.1) {
|
||||||
point = hermite.eval(i);
|
point = hermite.eval(i);
|
||||||
deriv = hermite.prime(i);
|
deriv = hermite.prime(i);
|
||||||
|
@ -263,30 +273,18 @@ L3D.BaseRecommendation.prototype.regenerateArrow = function(mainCamera) {
|
||||||
var len = vertices.length;
|
var len = vertices.length;
|
||||||
faces.push(new THREE.Face3(len-4,len-3,len-2), new THREE.Face3(len-4,len-2,len-1));
|
faces.push(new THREE.Face3(len-4,len-3,len-2), new THREE.Face3(len-4,len-2,len-1));
|
||||||
|
|
||||||
// var max = 0;
|
// Faces changed, update them
|
||||||
// for (var i = 0; i < faces.length; i++) {
|
|
||||||
// max = Math.max(max, faces[i].a, faces[i].b, faces[i].c);
|
|
||||||
// }
|
|
||||||
// console.log(max + '/' + len);
|
|
||||||
|
|
||||||
|
|
||||||
this.arrow.geometry.faces = faces;
|
this.arrow.geometry.faces = faces;
|
||||||
this.arrow.geometry.groupsNeedUpdate = true;
|
this.arrow.geometry.groupsNeedUpdate = true;
|
||||||
this.arrow.geometry.elementsNeedUpdate = true;
|
this.arrow.geometry.elementsNeedUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// this.arrow.geometry.mergeVertices();
|
|
||||||
this.arrow.geometry.computeFaceNormals();
|
this.arrow.geometry.computeFaceNormals();
|
||||||
// this.arrow.geometry.computeVertexNormals();
|
|
||||||
this.arrow.geometry.computeBoundingSphere();
|
this.arrow.geometry.computeBoundingSphere();
|
||||||
|
|
||||||
// this.arrow.geometry.vertices[0] = new THREE.Vector3(); // mainCamera.position.clone();
|
// Vertices and normals changed, update them
|
||||||
// this.arrow.geometry.vertices[1] = this.position.clone();
|
|
||||||
|
|
||||||
this.arrow.geometry.dynamic = true;
|
this.arrow.geometry.dynamic = true;
|
||||||
this.arrow.geometry.verticesNeedUpdate = true;
|
this.arrow.geometry.verticesNeedUpdate = true;
|
||||||
// this.arrow.geometry.elementsNeedUpdate = true;
|
|
||||||
// this.arrow.geometry.groupsNeedUpdate = true;en-US
|
|
||||||
this.arrow.geometry.normalsNeedUpdate = true;
|
this.arrow.geometry.normalsNeedUpdate = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -98,13 +98,6 @@ L3D.ReverseRecommendation.prototype.regenerateArrow = function(mainCamera) {
|
||||||
|
|
||||||
if (fp1.dot(dir) < -0.5) {
|
if (fp1.dot(dir) < -0.5) {
|
||||||
// Regen polynom with better stuff
|
// Regen polynom with better stuff
|
||||||
// var new_dir = L3D.Tools.cross(L3D.Tools.diff(this.camera.position, mainCamera.position).normalize(), mainCamera.up);
|
|
||||||
// new_dir.multiplyScalar(new_dir.dot(fp1) < 0 ? 1 : -1);
|
|
||||||
// new_dir.add(dir);
|
|
||||||
// new_dir.add(dir);
|
|
||||||
// new_dir.multiplyScalar(2);
|
|
||||||
// f0.add(new_dir);
|
|
||||||
|
|
||||||
if (mainCamera.position.y > this.camera.position.y) {
|
if (mainCamera.position.y > this.camera.position.y) {
|
||||||
f0.add(new THREE.Vector3(0,2,0));
|
f0.add(new THREE.Vector3(0,2,0));
|
||||||
} else {
|
} else {
|
||||||
|
@ -122,7 +115,6 @@ L3D.ReverseRecommendation.prototype.regenerateArrow = function(mainCamera) {
|
||||||
var deriv;
|
var deriv;
|
||||||
var limit = this.fullArrow ? 0.1 : 0.3;
|
var limit = this.fullArrow ? 0.1 : 0.3;
|
||||||
|
|
||||||
// for (var i = this.fullArrow ? 0 : 0.5; i <= 1.001; i += 0.05) {
|
|
||||||
for (i = 1; i > limit; i -= 0.1) {
|
for (i = 1; i > limit; i -= 0.1) {
|
||||||
point = hermite.eval(i);
|
point = hermite.eval(i);
|
||||||
deriv = hermite.prime(i);
|
deriv = hermite.prime(i);
|
||||||
|
@ -158,27 +150,16 @@ L3D.ReverseRecommendation.prototype.regenerateArrow = function(mainCamera) {
|
||||||
var len = vertices.length;
|
var len = vertices.length;
|
||||||
faces.push(new THREE.Face3(len-4,len-3,len-2), new THREE.Face3(len-4,len-2,len-1));
|
faces.push(new THREE.Face3(len-4,len-3,len-2), new THREE.Face3(len-4,len-2,len-1));
|
||||||
|
|
||||||
// var max = 0;
|
|
||||||
// for (i = 0; i < faces.length; i++) {
|
|
||||||
// max = Math.max(max, faces[i].a, faces[i].b, faces[i].c);
|
|
||||||
// }
|
|
||||||
// console.log(max + '/' + len);
|
|
||||||
|
|
||||||
|
|
||||||
this.arrow.geometry.faces = faces;
|
this.arrow.geometry.faces = faces;
|
||||||
this.arrow.geometry.groupsNeedUpdate = true;
|
this.arrow.geometry.groupsNeedUpdate = true;
|
||||||
this.arrow.geometry.elementsNeedUpdate = true;
|
this.arrow.geometry.elementsNeedUpdate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// this.arrow.geometry.mergeVertices();
|
|
||||||
this.arrow.geometry.computeFaceNormals();
|
this.arrow.geometry.computeFaceNormals();
|
||||||
// this.arrow.geometry.computeVertexNormals();
|
|
||||||
this.arrow.geometry.computeBoundingSphere();
|
this.arrow.geometry.computeBoundingSphere();
|
||||||
|
|
||||||
// this.arrow.geometry.vertices[0] = new THREE.Vector3(); // mainCamera.position.clone();
|
|
||||||
// this.arrow.geometry.vertices[1] = this.camera.position.clone();
|
|
||||||
|
|
||||||
this.arrow.geometry.dynamic = true;
|
this.arrow.geometry.dynamic = true;
|
||||||
this.arrow.geometry.verticesNeedUpdate = true;
|
this.arrow.geometry.verticesNeedUpdate = true;
|
||||||
|
this.arrow.geometry.normalsNeedUpdate = true;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue