class Cenario extends AncestralComum {
antesCriar() {
super.antesCriar();
this.cpx = this.dados.cpx,
this.cpy = this.dados.cpy,
this.cpz = this.dados.cpz
}
duranteCriar() {
super.duranteCriar();
this.criarCena();
this.criarCamera();
this.criarLuzes();
this.criarControle();
}
criarCena () {
this.cena = new THREE.Scene();
}
criarCamera () {
this.camera = new THREE.PerspectiveCamera(30,window.innerWidth / window.innerHeight,1,50000);
this.camera.aspect = window.innerWidth / window.innerHeight;
this.camera.updateProjectionMatrix();
this.camera.position.set(this.cpx,this.cpy,this.cpz);
}
criarLuzes () {
}
criarControle () {
}
criarGeometriaCone(raioAcima,raioAbaixo,altura,segLarg,segAlt,Fechar,IniTheta,FimTheta) {
return new THREE.CylinderGeometry/*BufferGeometry*/(raioAcima,raioAbaixo,altura,segLarg,segAlt,Fechar,IniTheta,FimTheta);
}
criarGeometriaEsfera(raio,segLarg,segAlt,IniPhi,FimPhi,IniTheta,FimTheta,solicitante) {
return new THREE.SphereGeometry/*BufferGeometry*/(raio,segLarg,segAlt,IniPhi,FimPhi,IniTheta,FimTheta);
}
criarGeometriaTorus(raio,tubo,segRad,segTub,arco,solicitante) {
return new THREE.TorusGeometry(raio,tubo,segRad,segTub,arco);
}
criarEsferaRaio(raio) {
this.esferaRaio = undefined;
return this.esferaRaio;
}
criarMalha(geometria,materia) {
return new THREE.Mesh(geometria,material);
}
criarGeometriaPontos(geometria,cor) {
var vertices = geometria.vertices;
var numVertices = vertices.length;
var posicoes = new Float32Array(numVertices*3);
var cores = new Float32Array(numVertices*3);
//var cor = new THREE.Color(0x00ff00);
//var cor = solicitante.material[0].color;
vertices.forEach(function(vertice,i) {
var x = vertice.x;
var y = vertice.y;
var z = vertice.z;
posicoes[i*3] = x;
posicoes[i*3+1] = y;
posicoes[i*3+2] = z;
// var intensity = ( y + 0.1 ) * 5;
var intensity = 1;
cores[i*3] = cor.r * intensity;
cores[i*3+1] = cor.g * intensity;
cores[i*3+2] = cor.b * intensity;
});
/*
for (var i = 0; i < numVertices; i++) {
vertice = vertices[i];
var x = vertice.x;
var y = vertice.y;
var z = vertice.z;
posicoes[i*3] = x;
posicoes[i*3+1] = y;
posicoes[i*3+2] = z;
// var intensity = ( y + 0.1 ) * 5;
var intensity = 1;
cores[i*3] = cor.r * intensity;
cores[i*3+1] = cor.g * intensity;
cores[i*3+2] = cor.b * intensity;
}
*/
var geometriaVertices = new THREE.BufferGeometry();
geometriaVertices.addAttribute("position", new THREE.BufferAttribute(posicoes,3));
geometriaVertices.addAttribute("color", new THREE.BufferAttribute(cores,3));
geometriaVertices.computeBoundingBox();
geometria.dispose();
geometria = undefined;
return geometriaVertices;
}
}