Merge pull request #486 from DenisMikhalev/issue-2
Adds safety and prevents crashes for damaged filespull/490/head
commit
163bbc25c7
|
@ -64,6 +64,24 @@ static const aiImporterDesc desc = {
|
|||
"ply"
|
||||
};
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
// Internal stuff
|
||||
namespace
|
||||
{
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
// Checks that property index is within range
|
||||
template <class T>
|
||||
const T &GetProperty(const std::vector<T> &props, int idx)
|
||||
{
|
||||
if (idx >= props.size())
|
||||
throw DeadlyImportError("Invalid .ply file: Property index is out of range.");
|
||||
|
||||
return props[idx];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
// Constructor to be privately used by Importer
|
||||
PLYImporter::PLYImporter()
|
||||
|
@ -431,13 +449,13 @@ void PLYImporter::LoadTextureCoordinates(std::vector<aiVector2D>* pvOut)
|
|||
if (0xFFFFFFFF != aiPositions[0])
|
||||
{
|
||||
vOut.x = PLY::PropertyInstance::ConvertTo<float>(
|
||||
(*i).alProperties[aiPositions[0]].avList.front(),aiTypes[0]);
|
||||
GetProperty((*i).alProperties, aiPositions[0]).avList.front(),aiTypes[0]);
|
||||
}
|
||||
|
||||
if (0xFFFFFFFF != aiPositions[1])
|
||||
{
|
||||
vOut.y = PLY::PropertyInstance::ConvertTo<float>(
|
||||
(*i).alProperties[aiPositions[1]].avList.front(),aiTypes[1]);
|
||||
GetProperty((*i).alProperties, aiPositions[1]).avList.front(),aiTypes[1]);
|
||||
}
|
||||
// and add them to our nice list
|
||||
pvOut->push_back(vOut);
|
||||
|
@ -541,19 +559,19 @@ void PLYImporter::LoadVertices(std::vector<aiVector3D>* pvOut, bool p_bNormals)
|
|||
if (0xFFFFFFFF != aiPositions[0])
|
||||
{
|
||||
vOut.x = PLY::PropertyInstance::ConvertTo<float>(
|
||||
(*i).alProperties[aiPositions[0]].avList.front(),aiTypes[0]);
|
||||
GetProperty((*i).alProperties, aiPositions[0]).avList.front(),aiTypes[0]);
|
||||
}
|
||||
|
||||
if (0xFFFFFFFF != aiPositions[1])
|
||||
{
|
||||
vOut.y = PLY::PropertyInstance::ConvertTo<float>(
|
||||
(*i).alProperties[aiPositions[1]].avList.front(),aiTypes[1]);
|
||||
GetProperty((*i).alProperties, aiPositions[1]).avList.front(),aiTypes[1]);
|
||||
}
|
||||
|
||||
if (0xFFFFFFFF != aiPositions[2])
|
||||
{
|
||||
vOut.z = PLY::PropertyInstance::ConvertTo<float>(
|
||||
(*i).alProperties[aiPositions[2]].avList.front(),aiTypes[2]);
|
||||
GetProperty((*i).alProperties, aiPositions[2]).avList.front(),aiTypes[2]);
|
||||
}
|
||||
|
||||
// and add them to our nice list
|
||||
|
@ -659,28 +677,28 @@ void PLYImporter::LoadVertexColor(std::vector<aiColor4D>* pvOut)
|
|||
|
||||
if (0xFFFFFFFF != aiPositions[0])
|
||||
{
|
||||
vOut.r = NormalizeColorValue((*i).alProperties[
|
||||
aiPositions[0]].avList.front(),aiTypes[0]);
|
||||
vOut.r = NormalizeColorValue(GetProperty((*i).alProperties,
|
||||
aiPositions[0]).avList.front(),aiTypes[0]);
|
||||
}
|
||||
|
||||
if (0xFFFFFFFF != aiPositions[1])
|
||||
{
|
||||
vOut.g = NormalizeColorValue((*i).alProperties[
|
||||
aiPositions[1]].avList.front(),aiTypes[1]);
|
||||
vOut.g = NormalizeColorValue(GetProperty((*i).alProperties,
|
||||
aiPositions[1]).avList.front(),aiTypes[1]);
|
||||
}
|
||||
|
||||
if (0xFFFFFFFF != aiPositions[2])
|
||||
{
|
||||
vOut.b = NormalizeColorValue((*i).alProperties[
|
||||
aiPositions[2]].avList.front(),aiTypes[2]);
|
||||
vOut.b = NormalizeColorValue(GetProperty((*i).alProperties,
|
||||
aiPositions[2]).avList.front(),aiTypes[2]);
|
||||
}
|
||||
|
||||
// assume 1.0 for the alpha channel ifit is not set
|
||||
if (0xFFFFFFFF == aiPositions[3])vOut.a = 1.0f;
|
||||
else
|
||||
{
|
||||
vOut.a = NormalizeColorValue((*i).alProperties[
|
||||
aiPositions[3]].avList.front(),aiTypes[3]);
|
||||
vOut.a = NormalizeColorValue(GetProperty((*i).alProperties,
|
||||
aiPositions[3]).avList.front(),aiTypes[3]);
|
||||
}
|
||||
|
||||
// and add them to our nice list
|
||||
|
@ -773,11 +791,11 @@ void PLYImporter::LoadFaces(std::vector<PLY::Face>* pvOut)
|
|||
// parse the list of vertex indices
|
||||
if (0xFFFFFFFF != iProperty)
|
||||
{
|
||||
const unsigned int iNum = (unsigned int)(*i).alProperties[iProperty].avList.size();
|
||||
const unsigned int iNum = (unsigned int)GetProperty((*i).alProperties, iProperty).avList.size();
|
||||
sFace.mIndices.resize(iNum);
|
||||
|
||||
std::vector<PLY::PropertyInstance::ValueUnion>::const_iterator p =
|
||||
(*i).alProperties[iProperty].avList.begin();
|
||||
GetProperty((*i).alProperties, iProperty).avList.begin();
|
||||
|
||||
for (unsigned int a = 0; a < iNum;++a,++p)
|
||||
{
|
||||
|
@ -789,7 +807,7 @@ void PLYImporter::LoadFaces(std::vector<PLY::Face>* pvOut)
|
|||
if (0xFFFFFFFF != iMaterialIndex)
|
||||
{
|
||||
sFace.iMaterialIndex = PLY::PropertyInstance::ConvertTo<unsigned int>(
|
||||
(*i).alProperties[iMaterialIndex].avList.front(),eType2);
|
||||
GetProperty((*i).alProperties, iMaterialIndex).avList.front(),eType2);
|
||||
}
|
||||
pvOut->push_back(sFace);
|
||||
}
|
||||
|
@ -800,7 +818,7 @@ void PLYImporter::LoadFaces(std::vector<PLY::Face>* pvOut)
|
|||
// a value of -1 indicates a restart of the strip
|
||||
bool flip = false;
|
||||
for (std::vector<ElementInstance>::const_iterator i = pcList->alInstances.begin();i != pcList->alInstances.end();++i) {
|
||||
const std::vector<PLY::PropertyInstance::ValueUnion>& quak = (*i).alProperties[iProperty].avList;
|
||||
const std::vector<PLY::PropertyInstance::ValueUnion>& quak = GetProperty((*i).alProperties, iProperty).avList;
|
||||
pvOut->reserve(pvOut->size() + quak.size() + (quak.size()>>2u));
|
||||
|
||||
int aiTable[2] = {-1,-1};
|
||||
|
@ -851,30 +869,30 @@ void PLYImporter::GetMaterialColor(const std::vector<PLY::PropertyInstance>& avL
|
|||
if (0xFFFFFFFF == aiPositions[0])clrOut->r = 0.0f;
|
||||
else
|
||||
{
|
||||
clrOut->r = NormalizeColorValue(avList[
|
||||
aiPositions[0]].avList.front(),aiTypes[0]);
|
||||
clrOut->r = NormalizeColorValue(GetProperty(avList,
|
||||
aiPositions[0]).avList.front(),aiTypes[0]);
|
||||
}
|
||||
|
||||
if (0xFFFFFFFF == aiPositions[1])clrOut->g = 0.0f;
|
||||
else
|
||||
{
|
||||
clrOut->g = NormalizeColorValue(avList[
|
||||
aiPositions[1]].avList.front(),aiTypes[1]);
|
||||
clrOut->g = NormalizeColorValue(GetProperty(avList,
|
||||
aiPositions[1]).avList.front(),aiTypes[1]);
|
||||
}
|
||||
|
||||
if (0xFFFFFFFF == aiPositions[2])clrOut->b = 0.0f;
|
||||
else
|
||||
{
|
||||
clrOut->b = NormalizeColorValue(avList[
|
||||
aiPositions[2]].avList.front(),aiTypes[2]);
|
||||
clrOut->b = NormalizeColorValue(GetProperty(avList,
|
||||
aiPositions[2]).avList.front(),aiTypes[2]);
|
||||
}
|
||||
|
||||
// assume 1.0 for the alpha channel ifit is not set
|
||||
if (0xFFFFFFFF == aiPositions[3])clrOut->a = 1.0f;
|
||||
else
|
||||
{
|
||||
clrOut->a = NormalizeColorValue(avList[
|
||||
aiPositions[3]].avList.front(),aiTypes[3]);
|
||||
clrOut->a = NormalizeColorValue(GetProperty(avList,
|
||||
aiPositions[3]).avList.front(),aiTypes[3]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1025,7 +1043,7 @@ void PLYImporter::LoadMaterial(std::vector<aiMaterial*>* pvOut)
|
|||
// handle phong power and shading mode
|
||||
int iMode;
|
||||
if (0xFFFFFFFF != iPhong) {
|
||||
float fSpec = PLY::PropertyInstance::ConvertTo<float>((*i).alProperties[iPhong].avList.front(),ePhong);
|
||||
float fSpec = PLY::PropertyInstance::ConvertTo<float>(GetProperty((*i).alProperties, iPhong).avList.front(),ePhong);
|
||||
|
||||
// if shininess is 0 (and the pow() calculation would therefore always
|
||||
// become 1, not depending on the angle), use gouraud lighting
|
||||
|
@ -1043,7 +1061,7 @@ void PLYImporter::LoadMaterial(std::vector<aiMaterial*>* pvOut)
|
|||
|
||||
// handle opacity
|
||||
if (0xFFFFFFFF != iOpacity) {
|
||||
float fOpacity = PLY::PropertyInstance::ConvertTo<float>((*i).alProperties[iPhong].avList.front(),eOpacity);
|
||||
float fOpacity = PLY::PropertyInstance::ConvertTo<float>(GetProperty((*i).alProperties, iPhong).avList.front(),eOpacity);
|
||||
pcHelper->AddProperty<float>(&fOpacity, 1, AI_MATKEY_OPACITY);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,754 @@
|
|||
ply
|
||||
format ascii 1.0
|
||||
element vertex 486
|
||||
property float32 x
|
||||
property float32 y
|
||||
property float32 z
|
||||
element face 912
|
||||
property list uint8 int32 vertex_indices
|
||||
end_header
|
||||
-1.106 3.844 9.073
|
||||
-0.3523 0.4402 11.07
|
||||
1.028 3.76 9.209
|
||||
0.137 -0.5632 10.73
|
||||
2.01 4.503 5.887
|
||||
0.07813 5.232 6.794
|
||||
-0.7266 3.741 3.839
|
||||
-2.789 3.179 5.07
|
||||
-0.9185 2.402 3.279
|
||||
1.445 2.139 3.394
|
||||
-3.114 1.498 5.285
|
||||
-1.317 -1.269 8.385
|
||||
-0.854 -1.319 5.036
|
||||
-0.9351 5.347 0.6162
|
||||
-0.8184 2.622 3.235
|
||||
0.4875 5.529 -0.2241
|
||||
3.193 2.756 1.633
|
||||
3.213 1.145 -2.568
|
||||
-2.25 1.208 2.767
|
||||
0.3225 0.8339 3.323
|
||||
1.354 -1.725 1.105
|
||||
0.1887 1.133 -5.785
|
||||
-3.637 2.696 0.3325
|
||||
-3.706 0.8936 -0.5452
|
||||
-0.4326 -0.8737 -4.095
|
||||
-2.994 -0.4858 0.9023
|
||||
0.1252 -2.079 -1.51
|
||||
2.856 -0.7459 -1.187
|
||||
2.32 3.733 8.13
|
||||
2.031 3.721 9.095
|
||||
2.819 3.567 8.537
|
||||
1.994 2.581 9.711
|
||||
2.64 2.491 9.542
|
||||
3.187 2.528 8.375
|
||||
1.628 2.491 7.518
|
||||
1.62 3.721 8.274
|
||||
0.9868 2.471 8.914
|
||||
1.552 2.106 9.414
|
||||
2.657 1.774 8.918
|
||||
-1.805 3.733 8.13
|
||||
-2.094 3.721 9.095
|
||||
-1.306 3.567 8.537
|
||||
-2.131 2.581 9.711
|
||||
-1.485 2.491 9.542
|
||||
-0.938 2.528 8.375
|
||||
-2.497 2.491 7.518
|
||||
-2.505 3.721 8.274
|
||||
-3.138 2.471 8.914
|
||||
-2.573 2.106 9.414
|
||||
-1.469 1.774 8.918
|
||||
1.549 3.638 6.803
|
||||
1.355 3.638 6.7
|
||||
1.424 5.126 6.883
|
||||
1.615 5.083 6.981
|
||||
1.169 3.638 6.815
|
||||
1.237 5.115 6.997
|
||||
1.176 3.638 7.035
|
||||
1.241 5.061 7.21
|
||||
1.369 3.638 7.138
|
||||
1.433 5.018 7.308
|
||||
1.556 3.638 7.023
|
||||
1.62 5.029 7.194
|
||||
1.625 6.512 7.421
|
||||
1.811 6.429 7.504
|
||||
1.437 6.49 7.531
|
||||
1.434 6.386 7.724
|
||||
1.619 6.304 7.807
|
||||
1.808 6.326 7.697
|
||||
1.945 7.702 8.276
|
||||
2.121 7.585 8.335
|
||||
1.754 7.672 8.38
|
||||
1.74 7.525 8.542
|
||||
1.916 7.408 8.601
|
||||
2.107 7.439 8.497
|
||||
2.362 8.615 9.391
|
||||
2.526 8.473 9.417
|
||||
2.168 8.578 9.487
|
||||
2.138 8.398 9.608
|
||||
2.303 8.255 9.635
|
||||
2.497 8.293 9.539
|
||||
2.847 9.189 10.69
|
||||
2.998 9.03 10.68
|
||||
2.649 9.148 10.78
|
||||
2.603 8.947 10.85
|
||||
2.753 8.788 10.84
|
||||
2.95 8.83 10.75
|
||||
3.368 9.385 12.08
|
||||
3.503 9.22 12.03
|
||||
3.167 9.342 12.16
|
||||
3.101 9.134 12.18
|
||||
3.236 8.97 12.13
|
||||
3.438 9.013 12.06
|
||||
3.889 9.189 13.48
|
||||
4.01 9.03 13.39
|
||||
3.684 9.148 13.54
|
||||
3.599 8.947 13.51
|
||||
3.719 8.788 13.42
|
||||
3.925 8.83 13.36
|
||||
4.374 8.615 14.77
|
||||
4.481 8.473 14.65
|
||||
4.165 8.578 14.83
|
||||
4.063 8.398 14.76
|
||||
4.17 8.255 14.63
|
||||
4.379 8.293 14.57
|
||||
4.791 7.702 15.89
|
||||
4.886 7.585 15.73
|
||||
4.579 7.672 15.94
|
||||
4.462 7.525 15.82
|
||||
4.556 7.408 15.66
|
||||
4.769 7.439 15.62
|
||||
5.111 6.512 16.74
|
||||
5.196 6.429 16.56
|
||||
4.896 6.49 16.78
|
||||
4.768 6.386 16.64
|
||||
4.853 6.304 16.46
|
||||
5.068 6.326 16.42
|
||||
-1.141 5.126 6.883
|
||||
-1.072 3.638 6.7
|
||||
-1.266 3.638 6.803
|
||||
-1.332 5.083 6.981
|
||||
-0.9541 5.115 6.997
|
||||
-0.886 3.638 6.815
|
||||
-0.9585 5.061 7.21
|
||||
-0.8928 3.638 7.035
|
||||
-1.15 5.018 7.308
|
||||
-1.086 3.638 7.138
|
||||
-1.337 5.029 7.194
|
||||
-1.272 3.638 7.023
|
||||
-1.342 6.512 7.421
|
||||
-1.528 6.429 7.504
|
||||
-1.154 6.49 7.531
|
||||
-1.151 6.386 7.724
|
||||
-1.336 6.304 7.807
|
||||
-1.525 6.326 7.697
|
||||
-1.662 7.702 8.276
|
||||
-1.838 7.585 8.335
|
||||
-1.471 7.672 8.38
|
||||
-1.457 7.525 8.542
|
||||
-1.633 7.408 8.601
|
||||
-1.824 7.439 8.497
|
||||
-2.079 8.615 9.391
|
||||
-2.243 8.473 9.417
|
||||
-1.885 8.578 9.487
|
||||
-1.855 8.398 9.608
|
||||
-2.02 8.255 9.635
|
||||
-2.214 8.293 9.539
|
||||
-2.564 9.189 10.69
|
||||
-2.715 9.03 10.68
|
||||
-2.366 9.148 10.78
|
||||
-2.32 8.947 10.85
|
||||
-2.47 8.788 10.84
|
||||
-2.667 8.83 10.75
|
||||
-3.085 9.385 12.08
|
||||
-3.22 9.22 12.03
|
||||
-2.884 9.342 12.16
|
||||
-2.818 9.134 12.18
|
||||
-2.953 8.97 12.13
|
||||
-3.155 9.013 12.06
|
||||
-3.606 9.189 13.48
|
||||
-3.726 9.03 13.39
|
||||
-3.4 9.148 13.54
|
||||
-3.316 8.947 13.51
|
||||
-3.437 8.788 13.42
|
||||
-3.642 8.83 13.36
|
||||
-4.091 8.615 14.77
|
||||
-4.198 8.473 14.65
|
||||
-3.882 8.578 14.83
|
||||
-3.78 8.398 14.76
|
||||
-3.887 8.255 14.63
|
||||
-4.096 8.293 14.57
|
||||
-4.508 7.702 15.89
|
||||
-4.603 7.585 15.73
|
||||
-4.296 7.672 15.94
|
||||
-4.179 7.525 15.82
|
||||
-4.273 7.408 15.66
|
||||
-4.485 7.439 15.62
|
||||
-4.828 6.512 16.74
|
||||
-4.913 6.429 16.56
|
||||
-4.613 6.49 16.78
|
||||
-4.484 6.386 16.64
|
||||
-4.57 6.304 16.46
|
||||
-4.784 6.326 16.42
|
||||
-1.519 -2.27 2.989
|
||||
-1.987 -1.082 3.408
|
||||
-2.709 -1.989 3.536
|
||||
-1.513 -2.259 2.974
|
||||
-2.524 -1.536 2.471
|
||||
-4.318 -0.3933 4.187
|
||||
-4.692 -0.6204 3.123
|
||||
-6.274 0.9227 4.173
|
||||
-5.533 1.852 4.043
|
||||
-6.084 1.387 3.082
|
||||
-6.844 2.279 4.015
|
||||
-6.83 1.957 4.012
|
||||
-6.886 2.118 3.737
|
||||
-7.536 1.346 4.658
|
||||
-7.229 0.9683 4.298
|
||||
-8.053 1.724 3.821
|
||||
-7.747 1.346 3.46
|
||||
-9.085 -0.1982 5.078
|
||||
-9.347 -0.1982 3.597
|
||||
-8.702 -0.7393 4.247
|
||||
-10.91 -1.528 5.154
|
||||
-10.39 -2.11 4.847
|
||||
-11.08 -1.528 4.148
|
||||
-10.49 -2.11 4.26
|
||||
-11.58 -2.509 4.768
|
||||
-11.57 -2.523 4.76
|
||||
-11.59 -2.509 4.742
|
||||
-11.57 -2.523 4.744
|
||||
-12.39 -3.546 5.269
|
||||
-11.93 -3.852 5.034
|
||||
-12.52 -3.546 4.548
|
||||
-12.87 -4.803 5.622
|
||||
-12.58 -5.09 4.606
|
||||
-13.49 -4.516 4.767
|
||||
-13.11 -6.264 5.38
|
||||
-14.78 -6.803 5.643
|
||||
-14.49 -7.092 4.622
|
||||
-15.35 -8.042 5.637
|
||||
-14.73 -8.43 5.528
|
||||
-15.15 -8.236 4.95
|
||||
-15.78 -9.378 5.503
|
||||
-15.77 -9.385 5.497
|
||||
-15.78 -9.375 5.495
|
||||
-15.78 -9.378 5.486
|
||||
-15.77 -9.383 5.484
|
||||
-1.522 -2.262 -1.24
|
||||
-1.519 -2.258 -1.231
|
||||
-1.522 -2.262 -1.222
|
||||
-1.529 -2.27 -1.222
|
||||
-1.529 -2.27 -1.24
|
||||
-2.061 -1.082 -0.8906
|
||||
-2.428 -1.536 -1.907
|
||||
-3.082 -0.4963 -0.5522
|
||||
-3.082 -0.4963 -1.91
|
||||
-3.759 -1.333 -1.628
|
||||
-5.567 0.1257 -0.8323
|
||||
-5.665 1.852 -0.8818
|
||||
-6.417 0.9227 -0.8818
|
||||
-6.041 1.387 -1.924
|
||||
-6.95 2.279 -1.137
|
||||
-6.937 1.957 -1.326
|
||||
-6.943 2.118 -1.418
|
||||
-7.378 0.9683 -0.9246
|
||||
-8.108 1.724 -0.9246
|
||||
-7.743 1.346 -1.84
|
||||
-8.797 0.8371 -0.6052
|
||||
-9.793 0.269 -1.611
|
||||
-8.891 -0.6654 -1.611
|
||||
-10.59 -2.11 -0.9326
|
||||
-10.57 -0.523 -0.8679
|
||||
-11.3 -1.375 -0.9326
|
||||
-10.94 -1.742 -1.823
|
||||
-11.75 -2.506 -1.223
|
||||
-11.73 -2.523 -1.223
|
||||
-11.74 -2.514 -1.247
|
||||
-12.76 -3.466 -1.017
|
||||
-12.14 -3.852 -1.017
|
||||
-12.45 -3.659 -1.656
|
||||
-13.16 -4.803 -0.6001
|
||||
-12.7 -5.09 -1.55
|
||||
-13.62 -4.516 -1.55
|
||||
-13.36 -6.264 -0.8809
|
||||
-15.05 -6.803 -0.9114
|
||||
-14.58 -7.092 -1.866
|
||||
-15.6 -8.042 -1.016
|
||||
-14.98 -8.43 -1.016
|
||||
-15.29 -8.236 -1.658
|
||||
-16.01 -9.378 -1.222
|
||||
-15.99 -9.385 -1.226
|
||||
-16.01 -9.375 -1.231
|
||||
-16.01 -9.378 -1.24
|
||||
-16 -9.383 -1.24
|
||||
-1.522 -2.27 -4.918
|
||||
-2.105 -1.082 -4.684
|
||||
-2.827 -1.989 -4.812
|
||||
-1.513 -2.262 -4.935
|
||||
-2.29 -1.536 -5.749
|
||||
-4.562 -0.3933 -4.75
|
||||
-4.55 -0.6204 -5.878
|
||||
-6.395 0.9227 -5.432
|
||||
-5.655 1.852 -5.302
|
||||
-5.844 1.387 -6.393
|
||||
-6.877 2.279 -5.776
|
||||
-6.863 1.957 -5.773
|
||||
-6.821 2.118 -6.051
|
||||
-7.747 1.346 -5.408
|
||||
-7.335 0.9683 -5.641
|
||||
-7.947 1.724 -6.372
|
||||
-7.536 1.346 -6.605
|
||||
-9.347 -0.1982 -5.543
|
||||
-9.085 -0.1982 -7.025
|
||||
-8.702 -0.7393 -6.193
|
||||
-11.08 -1.528 -6.095
|
||||
-10.49 -2.11 -6.206
|
||||
-10.91 -1.528 -7.101
|
||||
-10.39 -2.11 -6.794
|
||||
-11.59 -2.509 -6.689
|
||||
-11.57 -2.523 -6.691
|
||||
-11.58 -2.509 -6.715
|
||||
-11.57 -2.523 -6.707
|
||||
-12.52 -3.546 -6.495
|
||||
-12.01 -3.852 -6.559
|
||||
-12.39 -3.546 -7.217
|
||||
-13.09 -4.803 -6.326
|
||||
-12.47 -5.09 -7.18
|
||||
-13.38 -4.516 -7.341
|
||||
-13.24 -6.264 -6.637
|
||||
-14.89 -6.803 -6.96
|
||||
-14.27 -7.092 -7.819
|
||||
-15.42 -8.042 -7.159
|
||||
-14.8 -8.43 -7.051
|
||||
-15 -8.236 -7.738
|
||||
-15.78 -9.378 -7.432
|
||||
-15.77 -9.385 -7.434
|
||||
-15.78 -9.375 -7.442
|
||||
-15.78 -9.378 -7.45
|
||||
-15.77 -9.383 -7.448
|
||||
1.522 -2.27 -4.918
|
||||
1.511 -2.258 -4.926
|
||||
1.513 -2.262 -4.935
|
||||
2.828 -1.989 -4.812
|
||||
2.105 -1.082 -4.684
|
||||
2.29 -1.536 -5.749
|
||||
4.55 -0.6204 -5.878
|
||||
4.562 -0.3933 -4.75
|
||||
6.395 0.9227 -5.432
|
||||
5.655 1.852 -5.302
|
||||
5.844 1.387 -6.393
|
||||
6.877 2.279 -5.776
|
||||
6.863 1.957 -5.773
|
||||
6.821 2.118 -6.051
|
||||
7.335 0.9683 -5.641
|
||||
7.747 1.346 -5.408
|
||||
7.947 1.724 -6.372
|
||||
7.536 1.346 -6.605
|
||||
9.347 -0.1982 -5.543
|
||||
9.086 -0.1982 -7.025
|
||||
8.702 -0.7393 -6.193
|
||||
11.08 -1.528 -6.095
|
||||
10.49 -2.11 -6.206
|
||||
10.91 -1.528 -7.101
|
||||
10.39 -2.11 -6.794
|
||||
11.59 -2.509 -6.689
|
||||
11.57 -2.523 -6.691
|
||||
11.58 -2.509 -6.715
|
||||
11.57 -2.523 -6.707
|
||||
12.52 -3.546 -6.495
|
||||
12.01 -3.852 -6.559
|
||||
12.39 -3.546 -7.217
|
||||
12.47 -5.09 -7.18
|
||||
13.09 -4.803 -6.326
|
||||
13.38 -4.516 -7.341
|
||||
13.24 -6.264 -6.637
|
||||
14.89 -6.803 -6.96
|
||||
14.27 -7.092 -7.819
|
||||
15.42 -8.042 -7.159
|
||||
14.8 -8.43 -7.051
|
||||
15 -8.236 -7.738
|
||||
15.78 -9.378 -7.432
|
||||
15.77 -9.385 -7.434
|
||||
15.78 -9.375 -7.442
|
||||
15.78 -9.378 -7.45
|
||||
15.77 -9.383 -7.448
|
||||
-0.9592 -0.9547 10.35
|
||||
0.007813 0.3928 11.6
|
||||
-0.7324 1.062 10.63
|
||||
0.007813 -1.855 11.37
|
||||
0.007813 -2.459 10.63
|
||||
0.007813 0.3928 9.662
|
||||
-0.3928 1.509 10.63
|
||||
0.7327 1.062 10.63
|
||||
-0.007813 0.3928 11.6
|
||||
0.9595 -0.9547 10.35
|
||||
-0.007813 -1.855 11.37
|
||||
-0.007813 -2.459 10.63
|
||||
-0.007813 0.3928 9.662
|
||||
0.3931 1.509 10.63
|
||||
1.513 -2.262 2.988
|
||||
1.511 -2.258 2.979
|
||||
1.516 -2.262 2.97
|
||||
1.522 -2.27 2.971
|
||||
1.52 -2.27 2.989
|
||||
1.987 -1.082 3.408
|
||||
2.524 -1.536 2.471
|
||||
2.933 -0.4963 3.919
|
||||
3.168 -0.4963 2.581
|
||||
3.786 -1.333 2.977
|
||||
5.429 0.1257 4.074
|
||||
5.534 1.852 4.042
|
||||
6.274 0.9227 4.173
|
||||
6.085 1.387 3.082
|
||||
6.863 1.957 3.827
|
||||
6.844 2.279 4.015
|
||||
6.886 2.118 3.737
|
||||
7.229 0.9683 4.298
|
||||
7.947 1.724 4.425
|
||||
7.747 1.346 3.46
|
||||
8.57 0.8371 4.859
|
||||
9.726 0.269 4.042
|
||||
8.838 -0.6654 3.885
|
||||
10.39 -2.11 4.847
|
||||
10.37 -0.523 4.909
|
||||
11.09 -1.375 4.97
|
||||
10.89 -1.742 4.032
|
||||
11.59 -2.506 4.763
|
||||
11.57 -2.523 4.76
|
||||
11.58 -2.514 4.739
|
||||
12.55 -3.466 5.142
|
||||
11.93 -3.852 5.034
|
||||
12.35 -3.659 4.459
|
||||
12.58 -5.09 4.606
|
||||
12.87 -4.803 5.622
|
||||
13.49 -4.516 4.767
|
||||
13.11 -6.264 5.38
|
||||
14.78 -6.803 5.643
|
||||
14.49 -7.092 4.622
|
||||
15.35 -8.042 5.637
|
||||
14.73 -8.43 5.528
|
||||
15.15 -8.236 4.95
|
||||
15.78 -9.378 5.503
|
||||
15.77 -9.385 5.497
|
||||
15.78 -9.375 5.495
|
||||
15.78 -9.378 5.486
|
||||
15.77 -9.383 5.484
|
||||
1.529 -2.27 -1.222
|
||||
1.519 -2.258 -1.231
|
||||
1.522 -2.262 -1.24
|
||||
2.795 -1.989 -0.8906
|
||||
2.062 -1.082 -0.8906
|
||||
2.428 -1.536 -1.907
|
||||
4.677 -0.6204 -1.642
|
||||
4.493 -0.3933 -0.5283
|
||||
6.417 0.9227 -0.8818
|
||||
5.665 1.852 -0.8818
|
||||
6.041 1.387 -1.924
|
||||
6.951 2.279 -1.137
|
||||
6.937 1.957 -1.137
|
||||
6.944 2.118 -1.418
|
||||
7.379 0.9683 -0.9246
|
||||
7.743 1.346 -0.623
|
||||
8.108 1.724 -1.538
|
||||
7.743 1.346 -1.84
|
||||
9.343 -0.1982 -0.4792
|
||||
9.343 -0.1982 -1.983
|
||||
8.82 -0.7393 -1.231
|
||||
11.15 -1.528 -0.7207
|
||||
10.59 -2.11 -0.9326
|
||||
11.15 -1.528 -1.742
|
||||
10.59 -2.11 -1.53
|
||||
11.75 -2.509 -1.218
|
||||
11.73 -2.523 -1.223
|
||||
11.75 -2.509 -1.245
|
||||
11.73 -2.523 -1.239
|
||||
12.63 -3.546 -0.8647
|
||||
12.14 -3.852 -1.017
|
||||
12.63 -3.546 -1.598
|
||||
12.7 -5.09 -1.55
|
||||
13.16 -4.803 -0.6001
|
||||
13.62 -4.516 -1.55
|
||||
13.36 -6.264 -0.8804
|
||||
15.05 -6.803 -0.9111
|
||||
14.58 -7.092 -1.866
|
||||
15.6 -8.042 -1.016
|
||||
14.98 -8.43 -1.016
|
||||
15.29 -8.236 -1.658
|
||||
16.01 -9.378 -1.222
|
||||
15.99 -9.385 -1.226
|
||||
16.01 -9.375 -1.231
|
||||
16.01 -9.378 -1.24
|
||||
16 -9.383 -1.24
|
||||
-0.7932 4.462 -7.734
|
||||
-0.3843 1.974 -5.495
|
||||
1.95 3.241 -7.348
|
||||
1.167 0.6428 -6.109
|
||||
3.808 0.1871 -9.572
|
||||
3.644 1.688 -11.88
|
||||
0.07617 4.961 -10.12
|
||||
3.28 -0.5704 -14.15
|
||||
0.2488 -1.848 -16.78
|
||||
-0.9744 -2.686 -16.57
|
||||
0.7307 -3.159 -16.47
|
||||
-2.678 2.963 -8.185
|
||||
-2.616 -2.779 -12.24
|
||||
-1.159 -1.533 -8.922
|
||||
3 0 1 2
|
||||
3 1 3 2
|
||||
3 2 4 5
|
||||
3 4 6 5
|
||||
3 5 6 7
|
||||
3 7 6 8
|
||||
3 2 3 9
|
||||
3 2 9 4
|
||||
3 4 9 6
|
||||
3 6 9 8
|
||||
3 5 0 2
|
||||
3 5 7 0
|
||||
3 8 10 7
|
||||
3 7 10 0
|
||||
3 0 10 1
|
||||
3 1 10 11
|
||||
3 1 11 3
|
||||
3 10 12 11
|
||||
3 11 12 3
|
||||
3 3 12 9
|
||||
3 10 8 12
|
||||
3 12 8 9
|
||||
3 13 14 15
|
||||
3 15 14 16
|
||||
3 17 15 16
|
||||
3 18 19 14
|
||||
3 14 19 16
|
||||
3 19 20 16
|
||||
3 15 17 21
|
||||
3 15 21 13
|
||||
3 14 13 18
|
||||
3 21 22 13
|
||||
3 13 22 18
|
||||
3 21 23 22
|
||||
3 21 24 23
|
||||
3 23 25 22
|
||||
3 22 25 18
|
||||
3 18 25 20
|
||||
3 18 20 19
|
||||
3 23 26 25
|
||||
3 25 26 20
|
||||
3 23 24 26
|
||||
3 26 24 27
|
||||
3 26 27 20
|
||||
3 20 27 16
|
||||
3 24 21 27
|
||||
3 27 21 17
|
||||
3 27 17 16
|
||||
3 28 29 30
|
||||
3 31 32 29
|
||||
3 29 32 30
|
||||
3 32 33 30
|
||||
3 30 33 28
|
||||
3 28 33 34
|
||||
3 28 34 35
|
||||
3 35 34 36
|
||||
3 28 35 29
|
||||
3 35 36 29
|
||||
3 29 36 31
|
||||
3 36 37 31
|
||||
3 31 37 32
|
||||
3 37 38 32
|
||||
3 32 38 33
|
||||
3 36 34 37
|
||||
3 37 34 38
|
||||
3 38 34 33
|
||||
3 39 40 41
|
||||
3 42 43 40
|
||||
3 40 43 41
|
||||
3 43 44 41
|
||||
3 41 44 39
|
||||
3 39 44 45
|
||||
3 39 45 46
|
||||
3 46 45 47
|
||||
3 39 46 40
|
||||
3 46 47 40
|
||||
3 40 47 42
|
||||
3 47 48 42
|
||||
3 42 48 43
|
||||
3 48 49 43
|
||||
3 43 49 44
|
||||
3 47 45 48
|
||||
3 48 45 49
|
||||
3 49 45 44
|
||||
3 50 51 52
|
||||
3 50 52 53
|
||||
3 51 54 55
|
||||
3 51 55 52
|
||||
3 54 56 57
|
||||
3 54 57 55
|
||||
3 56 58 59
|
||||
3 56 59 57
|
||||
3 58 60 61
|
||||
3 58 61 59
|
||||
3 60 50 53
|
||||
3 60 53 61
|
||||
3 53 52 62
|
||||
3 53 62 63
|
||||
3 52 55 64
|
||||
3 52 64 62
|
||||
3 55 57 65
|
||||
3 55 65 64
|
||||
3 57 59 66
|
||||
3 57 66 65
|
||||
3 59 61 67
|
||||
3 59 67 66
|
||||
3 61 53 63
|
||||
3 61 63 67
|
||||
3 63 62 68
|
||||
3 63 68 69
|
||||
3 62 64 70
|
||||
3 62 70 68
|
||||
3 64 65 71
|
||||
3 64 71 70
|
||||
3 65 66 72
|
||||
3 65 72 71
|
||||
3 66 67 73
|
||||
3 66 73 72
|
||||
3 67 63 69
|
||||
3 67 69 73
|
||||
3 69 68 74
|
||||
3 69 74 75
|
||||
3 68 70 76
|
||||
3 68 76 74
|
||||
3 70 71 77
|
||||
3 70 77 76
|
||||
3 71 72 78
|
||||
3 71 78 77
|
||||
3 72 73 79
|
||||
3 72 79 78
|
||||
3 73 69 75
|
||||
3 73 75 79
|
||||
3 75 74 80
|
||||
3 75 80 81
|
||||
3 74 76 82
|
||||
3 74 82 80
|
||||
3 76 77 83
|
||||
3 76 83 82
|
||||
3 77 78 84
|
||||
3 77 84 83
|
||||
3 78 79 85
|
||||
3 78 85 84
|
||||
3 79 75 81
|
||||
3 79 81 85
|
||||
3 81 80 86
|
||||
3 81 86 87
|
||||
3 80 82 88
|
||||
3 80 88 86
|
||||
3 82 83 89
|
||||
3 82 89 88
|
||||
3 83 84 90
|
||||
3 83 90 89
|
||||
3 84 85 91
|
||||
3 84 91 90
|
||||
3 85 81 87
|
||||
3 85 87 91
|
||||
3 87 86 92
|
||||
3 87 92 93
|
||||
3 86 88 94
|
||||
3 86 94 92
|
||||
3 88 89 95
|
||||
3 88 95 94
|
||||
3 89 90 96
|
||||
3 89 96 95
|
||||
3 90 91 97
|
||||
3 90 97 96
|
||||
3 91 87 93
|
||||
3 91 93 97
|
||||
3 93 92 98
|
||||
3 93 98 99
|
||||
3 92 94 100
|
||||
3 92 100 98
|
||||
3 94 95 101
|
||||
3 94 101 100
|
||||
3 95 96 102
|
||||
3 95 102 101
|
||||
3 96 97 103
|
||||
3 96 103 102
|
||||
3 97 93 99
|
||||
3 97 99 103
|
||||
3 99 98 104
|
||||
3 99 104 105
|
||||
3 98 100 106
|
||||
3 98 106 104
|
||||
3 100 101 107
|
||||
3 100 107 106
|
||||
3 101 102 108
|
||||
3 101 108 107
|
||||
3 102 103 109
|
||||
3 102 109 108
|
||||
3 103 99 105
|
||||
3 103 105 109
|
||||
3 105 104 110
|
||||
3 105 110 111
|
||||
3 104 106 112
|
||||
3 104 112 110
|
||||
3 106 107 113
|
||||
3 106 113 112
|
||||
3 107 108 114
|
||||
3 107 114 113
|
||||
3 108 109 115
|
||||
3 108 115 114
|
||||
3 109 105 111
|
||||
3 109 111 115
|
||||
3 54 51 50
|
||||
3 56 54 50
|
||||
3 58 56 50
|
||||
3 60 58 50
|
||||
3 112 113 110
|
||||
3 113 114 110
|
||||
3 114 115 110
|
||||
3 115 111 110
|
||||
3 116 117 118
|
||||
3 119 116 118
|
||||
3 120 121 117
|
||||
3 116 120 117
|
||||
3 122 123 121
|
||||
3 120 122 121
|
||||
3 124 125 123
|
||||
3 122 124 123
|
||||
3 126 127 125
|
||||
3 124 126 125
|
||||
3 119 118 127
|
||||
3 126 119 127
|
||||
3 128 116 119
|
||||
3 129 128 119
|
||||
3 130 120 116
|
||||
3 128 130 116
|
||||
3 131 122 120
|
||||
3 130 131 120
|
||||
3 132 124 122
|
||||
3 131 132 122
|
||||
3 133 126 124
|
||||
3 132 133 124
|
||||
3 129 119 126
|
||||
3 133 129 126
|
||||
3 134 128 129
|
||||
3 135 134 129
|
||||
3 136 130 128
|
||||
3 134 136 128
|
||||
3 137 131 130
|
||||
3 136 137 130
|
||||
3 138 132 131
|
||||
3 137 138 131
|
||||
3 139 133 132
|
||||
3 138 139 132
|
||||
3 135 129 133
|
||||
3 139 135 133
|
||||
3 140 134 135
|
||||
3 141 140 135
|
||||
3 142 136 134
|
||||
3 140 142 134
|
||||
3 143 137 136
|
||||
3 142 143 136
|
||||
3 144 138 137
|
||||
3 143 144 137
|
||||
3 145 139 138
|
||||
3 144 145 138
|
||||
3 141 135 139
|
|
@ -0,0 +1,165 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
Loading…
Reference in New Issue