class HmParedes extends HmAncestralObject3dVetor {
	constructor (_sala) {
		super({sala: _sala});
	}
		
	preparar() {
		super.preparar();
		this.cfg = this.sala.cfg.paredes;
		this.gui = this.sala.gui.addFolder("paredes"+" sala " + this.sala.cfg.sala);
	}

	criar() {
		super.criar();
		this.criarTextura();
		this.criarParedeExternaDianteira();
		this.criarParedeExternaEsquerda();
		this.criarParedeExternaTraseira();
		this.criarParedeExternaDireita();
	}

	criarTextura() {
		this.texturaParede = new THREE.TextureLoader().load("img/textura/marmore/crema-bege-01a.jpg");
		//this.texturaParede = THREE.ImageUtils.loadTexture("img/textura/marmore/crema-bege-01a.jpg");
	}

	criarParede(_numParede, _angulo, _eixo, _largura, _altura, _profundidade, _x, _z) {
		this.criarObjetoVetor(
			new HmParede(this, _numParede, this.texturaParede,
				_angulo, _eixo, _largura, _altura, _profundidade, _x, this.sala.altura / 2, _z));
	}

	criarParedeExternaHorizontal(_numParede, _angulo, _eixo, sinal) {
		var d = this;
		var _profundidadeSala = d.sala.profundidade;
		var _larguraParede = d.sala.largura;
		var _alturaParede = d.sala.altura;
		var _profundidadeParede = this.cfg[_numParede].profundidade;
		var _z = sinal * ((_profundidadeSala / 2) + (_profundidadeParede / 2));
		this.criarParede(_numParede, _angulo, _eixo,
				_larguraParede, _alturaParede, _profundidadeParede, 0, _z);
	}
	criarParedeExternaVertical(_numParede, _angulo, _eixo, _sinal) {
		var d = this;
		var _larguraSala = d.sala.largura;
		var _larguraParede = d.sala.profundidade; // - (_profundidadeParede * 2);
		var _alturaParede = d.sala.altura;
		var _profundidadeParede = this.cfg[_numParede].profundidade;
		var _x = _sinal * ((_larguraSala / 2) - (_profundidadeParede / 2));
		this.criarParede(_numParede,_angulo,_eixo,_larguraParede,_alturaParede,_profundidadeParede,_x,0);
	}

	criarParedeExternaDianteira() {
		this.criarParedeExternaHorizontal(0, Math.PI, "x", 1);
	}
	 
	criarParedeExternaEsquerda() {
		this.criarParedeExternaVertical(1, Math.PI * 0.5, "y", -1);
	}

	criarParedeExternaTraseira() {
		this.criarParedeExternaHorizontal(2, 0, "x", -1);
	}

	criarParedeExternaDireita() {
		this.criarParedeExternaVertical(3, Math.PI * 1.5, "y", 1);
	}
}