# TAREAS PENDIENTES Ver qué ocurre con elementos especiales de la ET, y cómo se habilita la posibilidad de ignorar esos elementos para el cálculo de la K. - añadiendo un identificador en el nombre (p.e. EXCLUYE_HE1_K) # Comprobaciones - Ver si se calcula bien la altura neta / volumen interior de espacios con cerramientos superior e inferior adiabático ## cte::Data - Calcular más cosas: - Reporte de cálculos de U, K, qsoljul, n50, etc. (datos + resultados intermedios y localizando los que pertenecen a la ET) - Estructura de elementos que pertenecen a la envolvente (agrupados por tipo y con datos de condición de contorno EXTERIOR, GROUND, ADIABATIC, INTERIOR*) - los elementos interiores de la ET son aquellos que no comunican con otros espacios interiores a la envolvente - Calcular estructura con las U de los elementos del edificio (u_values: { windows: BTreeMap<&Window>, walls:BTreeMap<&Wall> }) para usar como caché - Si los recorremos en el orden adecuado (ADIABATIC -> EXTERIOR, GROUND, INTERIOR) deberíamos minimizar recálculos si usamos caché - Si no, con una caché en u_for_wall() debería dar casi igual - Módulo para calcular propiedades de elementos - Calculador de elementos para obtener % de afección de U según intercalarios y cajón de persiana a partir de expresiones en DA DB-HE1 (p.13) - propiedades de vidrios con protecciones móviles, etc - Fshobst de huecos según retranqueos, voladizos, aletas, etc s/ 52016-1 - Generador de construcciones a partir de definición por capas - Nuevos datos / campos: - Ushwi: transmitancia de huecos con contraventanas activadas (en construcción de hueco) - Incorporar en construcciones la composición de capas (capas: Vec<(String, f32)>) - Incorporar datos de materiales para poder calcular U de composiciones - Necesita biblioteca base en Rust para interpretar construcciones: - BDCatalogo.bdc.utf8 -> Convertir a datos Rust ## BDL - Se podría eliminar la referencia entre muros y espacios, generando el polígono del muro a partir de su referencia al polígono del espacios - así eliminamos referencias a vértices de polígonos y también location - Quitar de los elementos aquellas cosas que necesitan consultas globales (con acceso a bdldata) - Comprobar qué se cambia en las plantas o en el edificio cuando se indica una cota base distinta a la 0.0 (ver si se pone la Z de la planta P01 distinta a "") - Convertir definición de muros de polygon o location a (X, Y, Z, WIDTH, HEIGHT, AZIMUTH) - Seguir eliminando bloques genéricos convirtiendo a estructuras los elementos BDL: - metadatos - horarios - condiciones operacionales - consignas - Trasladar cálculo de Fshobst de 52016-1 en lugar de DA DB-HE/1 y reutilizar módulo nuevo - Calcular dirección del rayo en cada hora - Calcular proyección horizontal del hueco en Z=0 (comprobar que el rayo iría del exterior al interior (la normal y el rayo solar proyectado sobre la normal tienen sentidos opuestos)) - Calcular proyección horizontal de las sombras en Z=0 - Calcular intersección entre proyecciones del hueco y sombras en Z=0 y ver qué fracción del hueco se tapa. - https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm - https://rosettacode.org/wiki/Sutherland-Hodgman_polygon_clipping#Rust - https://en.wikipedia.org/wiki/Vatti_clipping_algorithm - https://en.wikipedia.org/wiki/Weiler%E2%80%93Atherton_clipping_algorithm - https://github.com/lempiy/Weiler-Atherton-Clipping - https://github.com/georust/geo/issues/80 - http://www.cs.ucr.edu/~vbz/cs230papers/martinez_boolean.pdf - https://github.com/21re/rust-geo-booleanop - http://www.angusj.com/delphi/clipper.php - https://docs.rs/geo-clipper/0.4.0/geo_clipper/ - https://www.boost.org/doc/libs/1_53_0/libs/geometry/doc/html/geometry/reference/algorithms/intersection.html - Idea: hacer visualizador 3d (con 3djs).