star-enclosures-3d

Extract enclosures from 3D geometry
git clone git://git.meso-star.fr/star-enclosures-3d.git
Log | Files | Refs | README | LICENSE

commit 6adc14c2906c90094f239c2af67327cd2a2a4b89
parent d89f80c06a0f20d3c9053d29c21050681ce226aa
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Tue, 27 Feb 2024 18:15:01 +0100

Add a new test that fails.

This test comes from a model that fails in city_generator.
The triangles are the glazing part of a building.
See the commit message of the fix for a description.

Diffstat:
Mcmake/CMakeLists.txt | 1+
Asrc/test_senc3d_glazing.c | 1127+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 1128 insertions(+), 0 deletions(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -162,6 +162,7 @@ if(NOT NO_TEST) new_test(test_senc3d_some_triangles) new_test(test_senc3d_unspecified_medium) new_test(test_senc3d_zero_distance) + new_test(test_senc3d_glazing) target_link_libraries(test_senc3d_enclosure Star3D) rcmake_copy_runtime_libraries(test_senc3d_enclosure) diff --git a/src/test_senc3d_glazing.c b/src/test_senc3d_glazing.c @@ -0,0 +1,1127 @@ +/* Copyright (C) 2018-2020, 2023 |Méso|Star> (contact@meso-star.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +/* This test has been created using the sg3_geometry_dump_as_C_code feature + * of star-geometry. It uses output from test_sg3_cube_on_cube. */ + +#define _POSIX_C_SOURCE 200112L /* snprintf */ + +#include "senc3d.h" +#include "test_senc3d_utils.h" + +#include <rsys/double3.h> + +#include <stdio.h> + +#define glazing_UNSPECIFIED_PROPERTY 4294967295 + +static const unsigned +glazing_vertices_count = 223; + +static const unsigned +glazing_triangles_count = 398; + +static const double +glazing_vertices[223*3] = { + 82.6042, 60.329, 2.7625, + 83.9367, 60.4228, 2.51177, + 82.6042, 60.329, 1.24942, + 84.3672, 60.4531, 1.24942, + 84.3672, 60.4531, 4.27558, + 83.4786, 60.3906, 3.4916, + 82.6042, 60.329, 4.27558, + 86.1302, 60.5772, 4.27558, + 85.0127, 60.4986, 3.24271, + 85.1251, 60.5065, 2.219, + 86.1302, 60.5772, 1.24942, + 86.1302, 60.5772, 2.7625, + 86.1319, 60.5533, 1.24942, + 84.3689, 60.4292, 1.24942, + 82.6059, 60.3051, 1.24942, + 82.6059, 60.3051, 2.7625, + 82.6059, 60.3051, 4.27558, + 84.3689, 60.4292, 4.27558, + 86.1319, 60.5533, 4.27558, + 86.1319, 60.5533, 2.7625, + 84.7508, 60.4561, 2.59095, + 83.6545, 60.3789, 3.23353, + 83.611, 60.3758, 2.219, + 89.8033, 59.2472, 2.7625, + 89.1016, 59.2344, 1.24942, + 88.3998, 59.2215, 2.7625, + 89.1016, 59.2344, 4.27558, + 89.8033, 59.2472, 1.24942, + 88.3998, 59.2215, 1.24942, + 88.3998, 59.2215, 4.27558, + 89.8033, 59.2472, 4.27558, + 89.8038, 59.2232, 1.24942, + 89.102, 59.2104, 1.24942, + 88.4002, 59.1975, 1.24942, + 88.4002, 59.1975, 2.7625, + 88.4002, 59.1975, 4.27558, + 89.102, 59.2104, 4.27558, + 89.8038, 59.2232, 4.27558, + 89.8038, 59.2232, 2.7625, + 86.1302, 60.5772, 8.4875, + 84.7976, 60.4834, 8.73823, + 86.1302, 60.5772, 10.0006, + 84.3672, 60.4531, 10.0006, + 84.3672, 60.4531, 6.97442, + 85.2558, 60.5157, 7.7584, + 86.1302, 60.5772, 6.97442, + 82.6042, 60.329, 6.97442, + 83.7217, 60.4077, 8.00729, + 83.6093, 60.3998, 9.031, + 82.6042, 60.329, 10.0006, + 82.6042, 60.329, 8.4875, + 82.6059, 60.3051, 6.97442, + 84.3689, 60.4292, 6.97442, + 86.1319, 60.5533, 6.97442, + 82.6059, 60.3051, 8.4875, + 82.6059, 60.3051, 10.0006, + 84.3689, 60.4292, 10.0006, + 86.1319, 60.5533, 10.0006, + 86.1319, 60.5533, 8.4875, + 84.7993, 60.4595, 8.73823, + 85.2575, 60.4917, 7.7584, + 83.7234, 60.3837, 8.00729, + 83.611, 60.3758, 9.031, + 82.2266, 68.3242, 10.0006, + 82.2266, 68.3242, 6.97442, + 82.8171, 72.7595, 8.4875, + 81.636, 63.889, 8.4875, + 82.8171, 72.7595, 6.97442, + 81.636, 63.889, 6.97442, + 82.8171, 72.7595, 10.0006, + 81.636, 63.889, 10.0006, + 82.7933, 72.7627, 6.97442, + 82.2028, 68.3274, 6.97442, + 81.6123, 63.8921, 6.97442, + 82.7933, 72.7627, 8.4875, + 82.7933, 72.7627, 10.0006, + 82.2028, 68.3274, 10.0006, + 81.6123, 63.8921, 10.0006, + 81.6123, 63.8921, 8.4875, + 84.5273, 76.4272, 8.4875, + 85.6048, 76.4318, 8.93555, + 84.5273, 76.4272, 10.0006, + 87.4884, 76.44, 6.97442, + 86.3533, 76.4351, 8.11727, + 86.0078, 76.4336, 6.97442, + 87.4884, 76.44, 8.4875, + 86.0078, 76.4336, 10.0006, + 84.5273, 76.4272, 6.97442, + 85.3385, 76.4307, 7.80041, + 87.4884, 76.44, 10.0006, + 86.6106, 76.4362, 9.11589, + 87.4883, 76.464, 6.97442, + 86.0077, 76.4576, 6.97442, + 84.5271, 76.4512, 6.97442, + 87.4883, 76.464, 8.4875, + 87.4883, 76.464, 10.0006, + 86.0077, 76.4576, 10.0006, + 84.5271, 76.4512, 10.0006, + 84.5271, 76.4512, 8.4875, + 85.6047, 76.4558, 8.93555, + 86.3532, 76.4591, 8.11727, + 85.3384, 76.4547, 7.80041, + 86.6105, 76.4602, 9.11589, + 90.2861, 60.7753, 8.4875, + 90.3545, 59.7013, 8.4875, + 90.3203, 60.2383, 10.0006, + 90.3203, 60.2383, 6.97442, + 90.3545, 59.7013, 6.97442, + 90.2861, 60.7753, 6.97442, + 90.3545, 59.7013, 10.0006, + 90.2861, 60.7753, 10.0006, + 90.3785, 59.7028, 6.97442, + 90.3443, 60.2398, 6.97442, + 90.31, 60.7768, 6.97442, + 90.3785, 59.7028, 8.4875, + 90.3785, 59.7028, 10.0006, + 90.3443, 60.2398, 10.0006, + 90.31, 60.7768, 10.0006, + 90.31, 60.7768, 8.4875, + 84.5273, 76.4272, 2.7625, + 85.6048, 76.4318, 3.21055, + 84.5273, 76.4272, 4.27558, + 87.4884, 76.44, 1.24942, + 86.3533, 76.4351, 2.39227, + 86.0078, 76.4336, 1.24942, + 87.4884, 76.44, 2.7625, + 86.0078, 76.4336, 4.27558, + 84.5273, 76.4272, 1.24942, + 85.3385, 76.4307, 2.07541, + 87.4884, 76.44, 4.27558, + 86.6106, 76.4362, 3.39089, + 84.5271, 76.4512, 1.24942, + 86.0077, 76.4576, 1.24942, + 87.4883, 76.464, 1.24942, + 87.4883, 76.464, 2.7625, + 87.4883, 76.464, 4.27558, + 86.0077, 76.4576, 4.27558, + 84.5271, 76.4512, 4.27558, + 84.5271, 76.4512, 2.7625, + 86.4107, 76.4593, 3.21055, + 85.6622, 76.4561, 2.39227, + 86.677, 76.4605, 2.07541, + 85.405, 76.455, 3.39089, + 81.636, 63.889, 2.7625, + 82.2266, 68.3242, 1.24942, + 82.2266, 68.3242, 4.27558, + 82.8171, 72.7595, 2.7625, + 81.636, 63.889, 1.24942, + 82.8171, 72.7595, 1.24942, + 82.8171, 72.7595, 4.27558, + 81.636, 63.889, 4.27558, + 81.6123, 63.8921, 1.24942, + 82.2028, 68.3274, 1.24942, + 82.7933, 72.7627, 1.24942, + 82.7933, 72.7627, 2.7625, + 82.7933, 72.7627, 4.27558, + 82.2028, 68.3274, 4.27558, + 81.6123, 63.8921, 4.27558, + 81.6123, 63.8921, 2.7625, + 89.8033, 59.2472, 8.4875, + 88.3998, 59.2215, 8.4875, + 89.1016, 59.2344, 10.0006, + 89.1016, 59.2344, 6.97442, + 88.3998, 59.2215, 6.97442, + 89.8033, 59.2472, 6.97442, + 88.3998, 59.2215, 10.0006, + 89.8033, 59.2472, 10.0006, + 88.4002, 59.1975, 6.97442, + 89.102, 59.2104, 6.97442, + 89.8038, 59.2232, 6.97442, + 88.4002, 59.1975, 8.4875, + 88.4002, 59.1975, 10.0006, + 89.102, 59.2104, 10.0006, + 89.8038, 59.2232, 10.0006, + 89.8038, 59.2232, 8.4875, + 90.2861, 60.7753, 2.7625, + 90.3545, 59.7013, 2.7625, + 90.3203, 60.2383, 4.27558, + 90.3203, 60.2383, 1.24942, + 90.2861, 60.7753, 1.24942, + 90.3545, 59.7013, 1.24942, + 90.3545, 59.7013, 4.27558, + 90.2861, 60.7753, 4.27558, + 90.31, 60.7768, 1.24942, + 90.3443, 60.2398, 1.24942, + 90.3785, 59.7028, 1.24942, + 90.3785, 59.7028, 2.7625, + 90.3785, 59.7028, 4.27558, + 90.3443, 60.2398, 4.27558, + 90.31, 60.7768, 4.27558, + 90.31, 60.7768, 2.7625, + 89.0607, 73.002, 2.7625, + 89.4844, 68.832, 1.24942, + 89.4844, 68.832, 4.27558, + 89.908, 64.6621, 2.7625, + 89.0607, 73.002, 1.24942, + 89.908, 64.6621, 1.24942, + 89.908, 64.6621, 4.27558, + 89.0607, 73.002, 4.27558, + 89.0846, 73.0044, 1.24942, + 89.5083, 68.8345, 1.24942, + 89.9319, 64.6645, 1.24942, + 89.9319, 64.6645, 2.7625, + 89.9319, 64.6645, 4.27558, + 89.5083, 68.8345, 4.27558, + 89.0846, 73.0044, 4.27558, + 89.0846, 73.0044, 2.7625, + 89.0607, 73.002, 8.4875, + 89.4844, 68.832, 6.97442, + 89.4844, 68.832, 10.0006, + 89.908, 64.6621, 8.4875, + 89.908, 64.6621, 6.97442, + 89.0607, 73.002, 6.97442, + 89.908, 64.6621, 10.0006, + 89.0607, 73.002, 10.0006, + 89.9319, 64.6645, 6.97442, + 89.5083, 68.8345, 6.97442, + 89.0846, 73.0044, 6.97442, + 89.9319, 64.6645, 8.4875, + 89.9319, 64.6645, 10.0006, + 89.5083, 68.8345, 10.0006, + 89.0846, 73.0044, 10.0006, + 89.0846, 73.0044, 8.4875 +}; + +static const unsigned +glazing_triangles[398*3] = { + 0, 1, 2, + 2, 1, 3, + 4, 5, 6, + 7, 8, 4, + 3, 9, 10, + 11, 8, 7, + 1, 5, 8, + 8, 5, 4, + 6, 5, 0, + 10, 9, 11, + 1, 8, 9, + 3, 1, 9, + 0, 5, 1, + 9, 8, 11, + 3, 10, 12, + 13, 14, 2, + 3, 13, 2, + 3, 12, 13, + 0, 2, 14, + 15, 16, 6, + 0, 15, 6, + 0, 14, 15, + 4, 6, 16, + 17, 18, 7, + 4, 17, 7, + 4, 16, 17, + 11, 12, 10, + 19, 7, 18, + 11, 7, 19, + 11, 19, 12, + 17, 20, 18, + 19, 20, 12, + 12, 20, 13, + 16, 21, 17, + 13, 22, 14, + 15, 21, 16, + 17, 21, 20, + 14, 22, 15, + 20, 21, 22, + 13, 20, 22, + 22, 21, 15, + 18, 20, 19, + 23, 24, 25, + 23, 25, 26, + 23, 27, 24, + 24, 28, 25, + 25, 29, 26, + 26, 30, 23, + 24, 27, 31, + 32, 33, 28, + 24, 32, 28, + 24, 31, 32, + 25, 28, 33, + 34, 35, 29, + 25, 34, 29, + 25, 33, 34, + 26, 29, 35, + 36, 37, 30, + 26, 36, 30, + 26, 35, 36, + 23, 31, 27, + 38, 30, 37, + 23, 30, 38, + 23, 38, 31, + 34, 32, 38, + 36, 34, 38, + 32, 31, 38, + 34, 33, 32, + 36, 35, 34, + 38, 37, 36, + 39, 40, 41, + 41, 40, 42, + 43, 44, 45, + 46, 47, 43, + 42, 48, 49, + 50, 47, 46, + 40, 44, 47, + 47, 44, 43, + 45, 44, 39, + 49, 48, 50, + 40, 47, 48, + 42, 40, 48, + 39, 44, 40, + 48, 47, 50, + 43, 51, 46, + 52, 45, 53, + 43, 45, 52, + 43, 52, 51, + 50, 46, 51, + 54, 55, 49, + 50, 54, 49, + 50, 51, 54, + 56, 49, 55, + 42, 49, 56, + 42, 57, 41, + 42, 56, 57, + 39, 53, 45, + 58, 41, 57, + 41, 58, 39, + 39, 58, 53, + 57, 59, 58, + 56, 59, 57, + 53, 60, 52, + 52, 61, 51, + 55, 62, 56, + 51, 61, 54, + 61, 60, 59, + 52, 60, 61, + 58, 60, 53, + 54, 62, 55, + 62, 61, 59, + 62, 59, 56, + 59, 60, 58, + 54, 61, 62, + 63, 64, 65, + 66, 64, 63, + 64, 67, 65, + 66, 68, 64, + 65, 69, 63, + 63, 70, 66, + 64, 71, 67, + 72, 68, 73, + 64, 68, 72, + 64, 72, 71, + 65, 67, 71, + 74, 75, 69, + 65, 74, 69, + 65, 71, 74, + 76, 69, 75, + 63, 69, 76, + 63, 77, 70, + 63, 76, 77, + 66, 73, 68, + 78, 70, 77, + 70, 78, 66, + 66, 78, 73, + 74, 72, 76, + 76, 72, 78, + 74, 71, 72, + 72, 73, 78, + 76, 75, 74, + 78, 77, 76, + 79, 80, 81, + 82, 83, 84, + 85, 83, 82, + 81, 80, 86, + 87, 88, 79, + 89, 90, 85, + 84, 88, 87, + 86, 90, 89, + 79, 88, 80, + 90, 83, 85, + 80, 88, 83, + 83, 88, 84, + 90, 80, 83, + 86, 80, 90, + 84, 91, 82, + 92, 87, 93, + 84, 87, 92, + 84, 92, 91, + 85, 82, 91, + 94, 95, 89, + 85, 94, 89, + 85, 91, 94, + 96, 89, 95, + 86, 89, 96, + 86, 97, 81, + 86, 96, 97, + 79, 93, 87, + 98, 81, 97, + 81, 98, 79, + 79, 98, 93, + 97, 99, 98, + 92, 100, 91, + 91, 100, 94, + 96, 99, 97, + 98, 101, 93, + 94, 102, 95, + 93, 101, 92, + 95, 102, 96, + 99, 101, 98, + 94, 100, 102, + 100, 101, 99, + 92, 101, 100, + 100, 99, 102, + 102, 99, 96, + 103, 104, 105, + 103, 106, 104, + 106, 107, 104, + 103, 108, 106, + 104, 109, 105, + 105, 110, 103, + 106, 111, 107, + 112, 108, 113, + 106, 108, 112, + 106, 112, 111, + 104, 107, 111, + 114, 115, 109, + 104, 114, 109, + 104, 111, 114, + 116, 109, 115, + 105, 109, 116, + 105, 117, 110, + 105, 116, 117, + 103, 113, 108, + 118, 110, 117, + 110, 118, 103, + 103, 118, 113, + 114, 112, 118, + 116, 114, 118, + 114, 111, 112, + 112, 113, 118, + 116, 115, 114, + 118, 117, 116, + 119, 120, 121, + 122, 123, 124, + 125, 123, 122, + 121, 120, 126, + 127, 128, 119, + 129, 130, 125, + 124, 128, 127, + 126, 130, 129, + 119, 128, 120, + 130, 123, 125, + 120, 128, 123, + 123, 128, 124, + 130, 120, 123, + 126, 120, 130, + 124, 127, 131, + 132, 133, 122, + 124, 132, 122, + 124, 131, 132, + 125, 122, 133, + 134, 135, 129, + 125, 134, 129, + 125, 133, 134, + 126, 129, 135, + 136, 137, 121, + 126, 136, 121, + 126, 135, 136, + 119, 131, 127, + 138, 121, 137, + 119, 121, 138, + 119, 138, 131, + 134, 139, 135, + 131, 140, 132, + 138, 140, 131, + 135, 139, 136, + 133, 141, 134, + 137, 142, 138, + 132, 141, 133, + 136, 142, 137, + 134, 141, 139, + 142, 140, 138, + 139, 141, 140, + 140, 141, 132, + 142, 139, 140, + 136, 139, 142, + 143, 144, 145, + 145, 144, 146, + 143, 147, 144, + 144, 148, 146, + 146, 149, 145, + 145, 150, 143, + 144, 147, 151, + 152, 153, 148, + 144, 152, 148, + 144, 151, 152, + 146, 148, 153, + 154, 155, 149, + 146, 154, 149, + 146, 153, 154, + 145, 149, 155, + 156, 157, 150, + 145, 156, 150, + 145, 155, 156, + 143, 151, 147, + 158, 150, 157, + 143, 150, 158, + 143, 158, 151, + 156, 152, 158, + 154, 152, 156, + 152, 151, 158, + 154, 153, 152, + 156, 155, 154, + 158, 157, 156, + 159, 160, 161, + 159, 162, 160, + 162, 163, 160, + 159, 164, 162, + 160, 165, 161, + 161, 166, 159, + 162, 167, 163, + 168, 164, 169, + 162, 164, 168, + 162, 168, 167, + 160, 163, 167, + 170, 171, 165, + 160, 170, 165, + 160, 167, 170, + 172, 165, 171, + 161, 165, 172, + 161, 173, 166, + 161, 172, 173, + 159, 169, 164, + 174, 166, 173, + 166, 174, 159, + 159, 174, 169, + 172, 170, 174, + 170, 168, 174, + 170, 167, 168, + 168, 169, 174, + 172, 171, 170, + 174, 173, 172, + 175, 176, 177, + 175, 178, 176, + 175, 179, 178, + 178, 180, 176, + 176, 181, 177, + 177, 182, 175, + 178, 179, 183, + 184, 185, 180, + 178, 184, 180, + 178, 183, 184, + 176, 180, 185, + 186, 187, 181, + 176, 186, 181, + 176, 185, 186, + 177, 181, 187, + 188, 189, 182, + 177, 188, 182, + 177, 187, 188, + 175, 183, 179, + 190, 182, 189, + 175, 182, 190, + 175, 190, 183, + 188, 186, 190, + 186, 184, 190, + 184, 183, 190, + 186, 185, 184, + 188, 187, 186, + 190, 189, 188, + 191, 192, 193, + 193, 192, 194, + 191, 195, 192, + 192, 196, 194, + 194, 197, 193, + 193, 198, 191, + 192, 195, 199, + 200, 201, 196, + 192, 200, 196, + 192, 199, 200, + 194, 196, 201, + 202, 203, 197, + 194, 202, 197, + 194, 201, 202, + 193, 197, 203, + 204, 205, 198, + 193, 204, 198, + 193, 203, 204, + 191, 199, 195, + 206, 198, 205, + 191, 198, 206, + 191, 206, 199, + 204, 200, 206, + 202, 200, 204, + 200, 199, 206, + 202, 201, 200, + 204, 203, 202, + 206, 205, 204, + 207, 208, 209, + 209, 208, 210, + 208, 211, 210, + 207, 212, 208, + 210, 213, 209, + 209, 214, 207, + 208, 215, 211, + 216, 212, 217, + 208, 212, 216, + 208, 216, 215, + 210, 211, 215, + 218, 219, 213, + 210, 218, 213, + 210, 215, 218, + 220, 213, 219, + 209, 213, 220, + 209, 221, 214, + 209, 220, 221, + 207, 217, 212, + 222, 214, 221, + 214, 222, 207, + 207, 222, 217, + 220, 216, 222, + 218, 216, 220, + 218, 215, 216, + 216, 217, 222, + 220, 219, 218, + 222, 221, 220 +}; + +static const unsigned +glazing_properties[398*3] = { + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY, + 0, glazing_UNSPECIFIED_PROPERTY, glazing_UNSPECIFIED_PROPERTY +}; + + +int +main(int argc, char** argv) +{ + struct mem_allocator allocator; + struct senc3d_device* dev = NULL; + struct senc3d_scene* scn = NULL; + struct context ctx = CONTEXT_NULL__; + unsigned ecount, tcount, e; + /* Triangle counts and their numbers of occurence */ + const unsigned possible_trg_counts[] = { 28, 44, 398, 42 }; + int possible_cpt[] = { 8, 3, 1, 1 }; + const size_t sz = sizeof(possible_trg_counts)/sizeof(*possible_trg_counts); + size_t i; + (void)argc, (void)argv; + ASSERT(sz == sizeof(possible_cpt)/sizeof(*possible_cpt)); + + OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); + OK(senc3d_device_create(NULL, &allocator, SENC3D_NTHREADS_DEFAULT, 1, &dev)); + + /* Degenerated triangle: duplicated vertex */ + ctx.positions = glazing_vertices; + ctx.indices = glazing_triangles; + ctx.properties = glazing_properties; + OK(senc3d_scene_create(dev, + SENC3D_CONVENTION_NORMAL_FRONT | SENC3D_CONVENTION_NORMAL_INSIDE, + glazing_triangles_count, get_indices, get_media_from_properties, + glazing_vertices_count, get_position, &ctx, &scn)); + + OK(senc3d_scene_get_triangles_count(scn, &tcount)); + CHK(tcount == glazing_triangles_count); + OK(senc3d_scene_get_enclosure_count(scn, &ecount)); + CHK(ecount == 13); + for(e = 0; e < ecount; e++) { + struct senc3d_enclosure_header header; + struct senc3d_enclosure* enc; + int found = 0; + OK(senc3d_scene_get_enclosure(scn, e, &enc)); + OK(senc3d_enclosure_get_header(enc, &header)); + for(i = 0; i < sz; i++) { + if(possible_trg_counts[i] == header.unique_primitives_count) { + possible_cpt[i]--; + found = 1; + break; + } + } + CHK(found); + OK(senc3d_enclosure_ref_put(enc)); + } + for(i = 0; i < sz; i++) { + CHK(possible_cpt[i] == 0); + } + + OK(senc3d_scene_ref_put(scn)); + OK(senc3d_device_ref_put(dev)); + + check_memory_allocator(&allocator); + mem_shutdown_proxy_allocator(&allocator); + CHK(mem_allocated_size() == 0); + return 0; +}