class HmQuadro extends HmAncestralObject3d {
	constructor (_quadros, _numQuadro) {
		super({quadros: _quadros, numQuadro: _numQuadro});
	}
		
	preparar() {
		super.preparar();
		this.cfg = this.quadros.cfg[this.numQuadro];
		this.largura = this.cfg.largura + this.cfg.medida_moldura;
		this.altura = this.cfg.altura + this.cfg.medida_moldura;
		this.profundidade = this.cfg.profundidade_moldura;
		this.meiaLargura = this.largura / 2;
		this.meiaAltura = this.altura / 2;
		this.meiaProfundidade = this.profundidade / 2;
		this.sala = this.quadros.parede.paredes.sala;
		this.meiaAlturaSala = this.sala.altura / 2;
		this.yQuadro = _constantes.camera.posicaoInicial.y - this.meiaAlturaSala;
		this.yInferiorQuadro = this.yQuadro - this.meiaAltura;
		this.piso = this.quadros.parede.paredes.sala.piso;
		this.yTopoPiso = this.piso.object3d.position.y + this.piso.meiaAltura;
		this.yInferiorMinimoQuadro =
			_constantes.quadro.alturaInferiorMinima + this.yTopoPiso - this.meiaAlturaSala;
		this.yMinimoQuadro = this.yInferiorMinimoQuadro + this.meiaAltura;
		if (this.yInferiorQuadro < this.yInferiorMinimoQuadro) {
			this.object3d.position.y = this.yMinimoQuadro; // _posMinY;
		} else {
			this.object3d.position.y = this.yQuadro;
		}
	}

	criar() {
		super.criar();
		this.pintura = this.criarObjeto(HmPintura);
		this.moldura = this.criarObjeto(HmMoldura);
		this.object3d.position.z = this.quadros.parede.meiaProfundidade + this.meiaProfundidade;
	}

	quadroInterceptado(_x,_y) {
		var _vector = new THREE.Vector3(
			(_x / window.innerWidth) * 2 - 1 , -(_y / window.innerHeight) * 2 + 1 , 0.5);
		projector.unprojectVector(_vector,_obj3D.camera);
		var _sub = _vector.sub(_obj3D.camera.position);
		var _raycaster = new THREE.Raycaster(_obj3D.camera.position, _sub.normalize());
		var _intersects = _raycaster.intersectObjects(this.object3d.children, true);
		return (_intersects.length > 0) ? _intersects[0] : null;
		// var intersects = _raycaster.intersectObjects(this.pintura.malha,true);
		/*
		if (_intersects.length > 0) {
			_quadroInterceptado = _intersects[0];
		}
			return _quadroInterceptado;
		*/
	}
}