FIX: NFF face winding bug (actually it was in StandardShapes.cpp).
FIX: StandardShapes::MakeCone() - face order was incorrect in 50% of all cases. Implemented StandardShapes::MakeCircle(). Fixed a compiler warning in B3DImporter.cpp. Modified cone.nff - one texture isn't found, that's ok. The mapping should be better visible now. git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@299 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
0f5c1cf3ba
commit
6557c28ef7
|
@ -247,7 +247,7 @@ void B3DImporter::ReadBRUS(){
|
||||||
//Textures
|
//Textures
|
||||||
for( int i=0;i<n_texs;++i ){
|
for( int i=0;i<n_texs;++i ){
|
||||||
int texid=ReadInt();
|
int texid=ReadInt();
|
||||||
if( !i && texid>=0 && texid<_textures.size() ){
|
if( !i && texid>=0 && texid<(int)_textures.size() ){
|
||||||
//just use tex 0 for now
|
//just use tex 0 for now
|
||||||
const Texture &tex=_textures[texid];
|
const Texture &tex=_textures[texid];
|
||||||
aiString texname( tex.name );
|
aiString texname( tex.name );
|
||||||
|
|
|
@ -38,7 +38,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** @file Implementation of the StandardShapes class
|
/** @file StandardShapes.cpp
|
||||||
|
* @brief Implementation of the StandardShapes class
|
||||||
|
*
|
||||||
|
* The primitive geometry data comes from
|
||||||
|
* http://geometrictools.com/Documentation/PlatonicSolids.pdf.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "AssimpPCH.h"
|
#include "AssimpPCH.h"
|
||||||
|
@ -46,11 +50,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
namespace Assimp {
|
namespace Assimp {
|
||||||
|
|
||||||
// note - flip the face order
|
|
||||||
#define ADD_TRIANGLE(n0,n1,n2) \
|
# define ADD_TRIANGLE(n0,n1,n2) \
|
||||||
positions.push_back(n2); \
|
positions.push_back(n0); \
|
||||||
positions.push_back(n1); \
|
positions.push_back(n1); \
|
||||||
positions.push_back(n0);
|
positions.push_back(n2);
|
||||||
|
|
||||||
# define ADD_PENTAGON(n0,n1,n2,n3,n4) \
|
# define ADD_PENTAGON(n0,n1,n2,n3,n4) \
|
||||||
if (polygons) \
|
if (polygons) \
|
||||||
|
@ -84,9 +88,10 @@ namespace Assimp {
|
||||||
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Fast subdivision for a mesh whose verts have a magnitude of 1
|
||||||
void Subdivide(std::vector<aiVector3D>& positions)
|
void Subdivide(std::vector<aiVector3D>& positions)
|
||||||
{
|
{
|
||||||
// assume this to be constant - input must be a Platonic primitive!
|
// assume this to be constant - (fixme: must be 1.0? I think so)
|
||||||
const float fl1 = positions[0].Length();
|
const float fl1 = positions[0].Length();
|
||||||
|
|
||||||
unsigned int origSize = (unsigned int)positions.size();
|
unsigned int origSize = (unsigned int)positions.size();
|
||||||
|
@ -102,19 +107,21 @@ void Subdivide(std::vector<aiVector3D>& positions)
|
||||||
aiVector3D v3 = aiVector3D(b.x+c.x, b.y+c.y, b.z+c.z).Normalize()*fl1;
|
aiVector3D v3 = aiVector3D(b.x+c.x, b.y+c.y, b.z+c.z).Normalize()*fl1;
|
||||||
|
|
||||||
tv0 = v1; tv1 = v3; tv2 = v2; // overwrite the original
|
tv0 = v1; tv1 = v3; tv2 = v2; // overwrite the original
|
||||||
ADD_TRIANGLE(v2, v1, a);
|
ADD_TRIANGLE(v1, v2, a);
|
||||||
ADD_TRIANGLE(v3, v2, c);
|
ADD_TRIANGLE(v2, v3, c);
|
||||||
ADD_TRIANGLE(v1, v3, b);
|
ADD_TRIANGLE(v3, v1, b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Construct a mesh from given vertex positions
|
||||||
aiMesh* StandardShapes::MakeMesh(const std::vector<aiVector3D>& positions,
|
aiMesh* StandardShapes::MakeMesh(const std::vector<aiVector3D>& positions,
|
||||||
unsigned int numIndices)
|
unsigned int numIndices)
|
||||||
{
|
{
|
||||||
if (positions.size() & numIndices || positions.empty() || !numIndices)return NULL;
|
if (positions.size() & numIndices || positions.empty() || !numIndices)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
// Determine which kinds of primitives the mesh will consist of
|
// Determine which kinds of primitives the mesh consists of
|
||||||
aiMesh* out = new aiMesh();
|
aiMesh* out = new aiMesh();
|
||||||
switch (numIndices)
|
switch (numIndices)
|
||||||
{
|
{
|
||||||
|
@ -149,6 +156,7 @@ aiMesh* StandardShapes::MakeMesh(const std::vector<aiVector3D>& positions,
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Construct a mesh with a specific shape (callback)
|
||||||
aiMesh* StandardShapes::MakeMesh ( unsigned int (*GenerateFunc)(
|
aiMesh* StandardShapes::MakeMesh ( unsigned int (*GenerateFunc)(
|
||||||
std::vector<aiVector3D>&))
|
std::vector<aiVector3D>&))
|
||||||
{
|
{
|
||||||
|
@ -158,6 +166,7 @@ aiMesh* StandardShapes::MakeMesh ( unsigned int (*GenerateFunc)(
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Construct a mesh with a specific shape (callback)
|
||||||
aiMesh* StandardShapes::MakeMesh ( unsigned int (*GenerateFunc)(
|
aiMesh* StandardShapes::MakeMesh ( unsigned int (*GenerateFunc)(
|
||||||
std::vector<aiVector3D>&, bool))
|
std::vector<aiVector3D>&, bool))
|
||||||
{
|
{
|
||||||
|
@ -167,6 +176,7 @@ aiMesh* StandardShapes::MakeMesh ( unsigned int (*GenerateFunc)(
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Construct a mesh with a specific shape (callback)
|
||||||
aiMesh* StandardShapes::MakeMesh (unsigned int num, void (*GenerateFunc)(
|
aiMesh* StandardShapes::MakeMesh (unsigned int num, void (*GenerateFunc)(
|
||||||
unsigned int,std::vector<aiVector3D>&))
|
unsigned int,std::vector<aiVector3D>&))
|
||||||
{
|
{
|
||||||
|
@ -176,6 +186,7 @@ aiMesh* StandardShapes::MakeMesh (unsigned int num, void (*GenerateFunc)(
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Build an incosahedron with points.magnitude == 1
|
||||||
unsigned int StandardShapes::MakeIcosahedron(std::vector<aiVector3D>& positions)
|
unsigned int StandardShapes::MakeIcosahedron(std::vector<aiVector3D>& positions)
|
||||||
{
|
{
|
||||||
positions.reserve(positions.size()+60);
|
positions.reserve(positions.size()+60);
|
||||||
|
@ -224,6 +235,7 @@ unsigned int StandardShapes::MakeIcosahedron(std::vector<aiVector3D>& positions)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Build a dodecahedron with points.magnitude == 1
|
||||||
unsigned int StandardShapes::MakeDodecahedron(std::vector<aiVector3D>& positions,
|
unsigned int StandardShapes::MakeDodecahedron(std::vector<aiVector3D>& positions,
|
||||||
bool polygons /*= false*/)
|
bool polygons /*= false*/)
|
||||||
{
|
{
|
||||||
|
@ -271,6 +283,7 @@ unsigned int StandardShapes::MakeDodecahedron(std::vector<aiVector3D>& positions
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Build an octahedron with points.magnitude == 1
|
||||||
unsigned int StandardShapes::MakeOctahedron(std::vector<aiVector3D>& positions)
|
unsigned int StandardShapes::MakeOctahedron(std::vector<aiVector3D>& positions)
|
||||||
{
|
{
|
||||||
positions.reserve(positions.size()+24);
|
positions.reserve(positions.size()+24);
|
||||||
|
@ -295,6 +308,7 @@ unsigned int StandardShapes::MakeOctahedron(std::vector<aiVector3D>& positions)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Build a tetrahedron with points.magnitude == 1
|
||||||
unsigned int StandardShapes::MakeTetrahedron(std::vector<aiVector3D>& positions)
|
unsigned int StandardShapes::MakeTetrahedron(std::vector<aiVector3D>& positions)
|
||||||
{
|
{
|
||||||
positions.reserve(positions.size()+9);
|
positions.reserve(positions.size()+9);
|
||||||
|
@ -315,6 +329,7 @@ unsigned int StandardShapes::MakeTetrahedron(std::vector<aiVector3D>& positions)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Build a hexahedron with points.magnitude == 1
|
||||||
unsigned int StandardShapes::MakeHexahedron(std::vector<aiVector3D>& positions,
|
unsigned int StandardShapes::MakeHexahedron(std::vector<aiVector3D>& positions,
|
||||||
bool polygons /*= false*/)
|
bool polygons /*= false*/)
|
||||||
{
|
{
|
||||||
|
@ -345,6 +360,7 @@ unsigned int StandardShapes::MakeHexahedron(std::vector<aiVector3D>& positions,
|
||||||
#undef ADD_PENTAGON
|
#undef ADD_PENTAGON
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Create a subdivision sphere
|
||||||
void StandardShapes::MakeSphere(unsigned int tess,
|
void StandardShapes::MakeSphere(unsigned int tess,
|
||||||
std::vector<aiVector3D>& positions)
|
std::vector<aiVector3D>& positions)
|
||||||
{
|
{
|
||||||
|
@ -362,18 +378,20 @@ void StandardShapes::MakeSphere(unsigned int tess,
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Build a cone
|
||||||
void StandardShapes::MakeCone(float height,float radius1,
|
void StandardShapes::MakeCone(float height,float radius1,
|
||||||
float radius2,unsigned int tess,
|
float radius2,unsigned int tess,
|
||||||
std::vector<aiVector3D>& positions,bool bOpen /*= false */)
|
std::vector<aiVector3D>& positions,bool bOpen /*= false */)
|
||||||
{
|
{
|
||||||
// Sorry, a cone with less than 3 segments makes
|
// Sorry, a cone with less than 3 segments makes ABSOLUTELY NO SENSE
|
||||||
// ABSOLUTELY NO SENSE
|
|
||||||
if (tess < 3 || !height)
|
if (tess < 3 || !height)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
size_t old = positions.size();
|
||||||
|
|
||||||
// No negative radii
|
// No negative radii
|
||||||
radius1 = fabs(radius1);
|
radius1 = ::fabs(radius1);
|
||||||
radius2 = fabs(radius2);
|
radius2 = ::fabs(radius2);
|
||||||
|
|
||||||
float halfHeight = height / 2;
|
float halfHeight = height / 2;
|
||||||
|
|
||||||
|
@ -383,6 +401,7 @@ void StandardShapes::MakeCone(float height,float radius1,
|
||||||
std::swap(radius2,radius1);
|
std::swap(radius2,radius1);
|
||||||
halfHeight = -halfHeight;
|
halfHeight = -halfHeight;
|
||||||
}
|
}
|
||||||
|
else old = 0xffffffff;
|
||||||
|
|
||||||
// Use a large epsilon to check whether the cone is pointy
|
// Use a large epsilon to check whether the cone is pointy
|
||||||
if (radius1 < (radius2-radius1)*10e-3f)radius1 = 0.f;
|
if (radius1 < (radius2-radius1)*10e-3f)radius1 = 0.f;
|
||||||
|
@ -390,7 +409,7 @@ void StandardShapes::MakeCone(float height,float radius1,
|
||||||
// We will need 3*2 verts per segment + 3*2 verts per segment
|
// We will need 3*2 verts per segment + 3*2 verts per segment
|
||||||
// if the cone is closed
|
// if the cone is closed
|
||||||
const unsigned int mem = tess*6 + (!bOpen ? tess*3 * (radius1 ? 2 : 1) : 0);
|
const unsigned int mem = tess*6 + (!bOpen ? tess*3 * (radius1 ? 2 : 1) : 0);
|
||||||
positions.reserve(mem);
|
positions.reserve(positions.size () + mem);
|
||||||
|
|
||||||
// Now construct all segments
|
// Now construct all segments
|
||||||
const float angle_delta = (float)AI_MATH_TWO_PI / tess;
|
const float angle_delta = (float)AI_MATH_TWO_PI / tess;
|
||||||
|
@ -405,49 +424,79 @@ void StandardShapes::MakeCone(float height,float radius1,
|
||||||
const aiVector3D v2 = aiVector3D (s * radius2, halfHeight, t * radius2 );
|
const aiVector3D v2 = aiVector3D (s * radius2, halfHeight, t * radius2 );
|
||||||
|
|
||||||
const float next = angle + angle_delta;
|
const float next = angle + angle_delta;
|
||||||
float s2 = cos(next);
|
float s2 = ::cos(next);
|
||||||
float t2 = sin(next);
|
float t2 = ::sin(next);
|
||||||
|
|
||||||
const aiVector3D v3 = aiVector3D (s2 * radius2, halfHeight, t2 * radius2 );
|
const aiVector3D v3 = aiVector3D (s2 * radius2, halfHeight, t2 * radius2 );
|
||||||
const aiVector3D v4 = aiVector3D (s2 * radius1, -halfHeight, t2 * radius1 );
|
const aiVector3D v4 = aiVector3D (s2 * radius1, -halfHeight, t2 * radius1 );
|
||||||
|
|
||||||
positions.push_back(v1);
|
positions.push_back(v1);
|
||||||
positions.push_back(v3);
|
|
||||||
positions.push_back(v2);
|
positions.push_back(v2);
|
||||||
positions.push_back(v4);
|
|
||||||
positions.push_back(v3);
|
positions.push_back(v3);
|
||||||
|
positions.push_back(v4);
|
||||||
positions.push_back(v1);
|
positions.push_back(v1);
|
||||||
|
positions.push_back(v3);
|
||||||
|
|
||||||
if (!bOpen)
|
if (!bOpen)
|
||||||
{
|
{
|
||||||
// generate the end 'cap'
|
// generate the end 'cap'
|
||||||
positions.push_back(aiVector3D(s * radius2, halfHeight, t * radius2 ));
|
positions.push_back(aiVector3D(s * radius2, halfHeight, t * radius2 ));
|
||||||
positions.push_back(aiVector3D(0.f, halfHeight, 0.f));
|
|
||||||
positions.push_back(aiVector3D(s2 * radius2, halfHeight, t2 * radius2 ));
|
positions.push_back(aiVector3D(s2 * radius2, halfHeight, t2 * radius2 ));
|
||||||
|
positions.push_back(aiVector3D(0.f, halfHeight, 0.f));
|
||||||
|
|
||||||
|
|
||||||
if (radius1)
|
if (radius1)
|
||||||
{
|
{
|
||||||
// generate the other end 'cap'
|
// generate the other end 'cap'
|
||||||
positions.push_back(aiVector3D(s * radius1, -halfHeight, t * radius1 ));
|
positions.push_back(aiVector3D(s * radius1, -halfHeight, t * radius1 ));
|
||||||
positions.push_back(aiVector3D(0.f, -halfHeight, 0.f));
|
|
||||||
positions.push_back(aiVector3D(s2 * radius1, -halfHeight, t2 * radius1 ));
|
positions.push_back(aiVector3D(s2 * radius1, -halfHeight, t2 * radius1 ));
|
||||||
|
positions.push_back(aiVector3D(0.f, -halfHeight, 0.f));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
s = s2;
|
s = s2;
|
||||||
t = t2;
|
t = t2;
|
||||||
angle = next;
|
angle = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Need to flip face order?
|
||||||
|
if (0xffffffff != old )
|
||||||
|
{
|
||||||
|
for (size_t s = old; s < positions.size();s += 3)
|
||||||
|
std::swap(positions[s],positions[s+1]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
void StandardShapes::MakeCircle(
|
// Build a circle
|
||||||
const aiVector3D& center,
|
void StandardShapes::MakeCircle(float radius, unsigned int tess,
|
||||||
const aiVector3D& normal,
|
|
||||||
float radius,
|
|
||||||
unsigned int tess,
|
|
||||||
std::vector<aiVector3D>& positions)
|
std::vector<aiVector3D>& positions)
|
||||||
{
|
{
|
||||||
// todo
|
// Sorry, a circle with less than 3 segments makes ABSOLUTELY NO SENSE
|
||||||
|
if (tess < 3 || !radius)
|
||||||
|
return;
|
||||||
|
|
||||||
|
radius = ::fabs(radius);
|
||||||
|
|
||||||
|
// We will need 3 vertices per segment
|
||||||
|
positions.reserve(positions.size()+tess*3);
|
||||||
|
|
||||||
|
const float angle_delta = (float)AI_MATH_TWO_PI / tess;
|
||||||
|
const float angle_max = (float)AI_MATH_TWO_PI;
|
||||||
|
|
||||||
|
float s = 1.f; // cos(angle == 0);
|
||||||
|
float t = 0.f; // sin(angle == 0);
|
||||||
|
|
||||||
|
for (float angle = 0.f; angle < angle_max; )
|
||||||
|
{
|
||||||
|
positions.push_back(aiVector3D(s * radius,0.f,t * radius));
|
||||||
|
angle += angle_delta;
|
||||||
|
s = ::cos(angle);
|
||||||
|
t = ::sin(angle);
|
||||||
|
positions.push_back(aiVector3D(s * radius,0.f,t * radius));
|
||||||
|
|
||||||
|
positions.push_back(aiVector3D(0.f,0.f,0.f));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // ! Assimp
|
} // ! Assimp
|
||||||
|
|
|
@ -153,9 +153,9 @@ public:
|
||||||
*
|
*
|
||||||
* |-----| <- radius 1
|
* |-----| <- radius 1
|
||||||
*
|
*
|
||||||
* __x__ <- ]
|
* __x__ <- ] ^
|
||||||
* / \ | height
|
* / \ | height |
|
||||||
* / \ |
|
* / \ | Y
|
||||||
* / \ |
|
* / \ |
|
||||||
* / \ |
|
* / \ |
|
||||||
* /______x______\ <- ] <- end cap
|
* /______x______\ <- ] <- end cap
|
||||||
|
@ -180,16 +180,14 @@ public:
|
||||||
// ----------------------------------------------------------------
|
// ----------------------------------------------------------------
|
||||||
/** @brief Generates a flat circle
|
/** @brief Generates a flat circle
|
||||||
*
|
*
|
||||||
* @param center Center point of the circle
|
* The circle is constructed in the planed formed by the x,z
|
||||||
|
* axes of the cartesian coordinate system.
|
||||||
|
*
|
||||||
* @param radius Radius of the circle
|
* @param radius Radius of the circle
|
||||||
* @param normal Normal vector of the circle.
|
|
||||||
* This is also the normal vector of all triangles generated by
|
|
||||||
* this function.
|
|
||||||
* @param tess Number of segments.
|
* @param tess Number of segments.
|
||||||
* @param positions Receives output triangles.
|
* @param positions Receives output triangles.
|
||||||
*/
|
*/
|
||||||
static void MakeCircle(const aiVector3D& center, const aiVector3D& normal,
|
static void MakeCircle(float radius, unsigned int tess,
|
||||||
float radius, unsigned int tess,
|
|
||||||
std::vector<aiVector3D>& positions);
|
std::vector<aiVector3D>& positions);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
25
code/qnan.h
25
code/qnan.h
|
@ -3,6 +3,17 @@
|
||||||
#if (!defined AI_QNAN_H_INCLUDED)
|
#if (!defined AI_QNAN_H_INCLUDED)
|
||||||
#define AI_QNAN_H_INCLUDED
|
#define AI_QNAN_H_INCLUDED
|
||||||
|
|
||||||
|
// Data structure for a 32 Bit IEEE 754 floating-point number
|
||||||
|
union _IEEESingle
|
||||||
|
{
|
||||||
|
float Float;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
uint32_t Frac : 23;
|
||||||
|
uint32_t Exp : 8;
|
||||||
|
uint32_t Sign : 1;
|
||||||
|
} IEEE;
|
||||||
|
} ;
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// check whether a float is NaN
|
// check whether a float is NaN
|
||||||
|
@ -23,19 +34,7 @@ AI_FORCE_INLINE bool is_not_qnan(float in)
|
||||||
// they're treated like normal values.
|
// they're treated like normal values.
|
||||||
AI_FORCE_INLINE bool is_special_float(float in)
|
AI_FORCE_INLINE bool is_special_float(float in)
|
||||||
{
|
{
|
||||||
union IEEESingle
|
return (((_IEEESingle*)&in)->IEEE.Exp == (1u << 8)-1);
|
||||||
{
|
|
||||||
float Float;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint32_t Frac : 23;
|
|
||||||
uint32_t Exp : 8;
|
|
||||||
uint32_t Sign : 1;
|
|
||||||
} IEEE;
|
|
||||||
} f;
|
|
||||||
|
|
||||||
f.Float = in;
|
|
||||||
return (f.IEEE.Exp == (1u << 8)-1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !! AI_QNAN_H_INCLUDED
|
#endif // !! AI_QNAN_H_INCLUDED
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
#red
|
#red
|
||||||
f 1.0 0.0 0.0 0.5 45.2776 0 1 ./../../LWO/LWo2/MappingModes/EarthCylindric.jpg
|
f 1.0 0.0 0.0 0.5 45.2776 0 1 cantfindme.png
|
||||||
|
|
||||||
|
|
||||||
tess 4
|
tess 4
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||

|

|
||||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||||
# Visual Studio 2005
|
# Visual Studio 2005
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AssimpView", "assimp_view.vcproj", "{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "assimpview", "assimp_view.vcproj", "{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}"
|
||||||
ProjectSection(WebsiteProperties) = preProject
|
ProjectSection(WebsiteProperties) = preProject
|
||||||
Debug.AspNetCompiler.Debug = "True"
|
Debug.AspNetCompiler.Debug = "True"
|
||||||
Release.AspNetCompiler.Debug = "False"
|
Release.AspNetCompiler.Debug = "False"
|
||||||
|
@ -10,13 +10,13 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AssimpView", "assimp_view.v
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524} = {5691E159-2D9B-407F-971F-EA5C592DC524}
|
{5691E159-2D9B-407F-971F-EA5C592DC524} = {5691E159-2D9B-407F-971F-EA5C592DC524}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Assimp", "assimp.vcproj", "{5691E159-2D9B-407F-971F-EA5C592DC524}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "assimp", "assimp.vcproj", "{5691E159-2D9B-407F-971F-EA5C592DC524}"
|
||||||
ProjectSection(WebsiteProperties) = preProject
|
ProjectSection(WebsiteProperties) = preProject
|
||||||
Debug.AspNetCompiler.Debug = "True"
|
Debug.AspNetCompiler.Debug = "True"
|
||||||
Release.AspNetCompiler.Debug = "False"
|
Release.AspNetCompiler.Debug = "False"
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest", "UnitTest.vcproj", "{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}"
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unit", "UnitTest.vcproj", "{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}"
|
||||||
ProjectSection(WebsiteProperties) = preProject
|
ProjectSection(WebsiteProperties) = preProject
|
||||||
Debug.AspNetCompiler.Debug = "True"
|
Debug.AspNetCompiler.Debug = "True"
|
||||||
Release.AspNetCompiler.Debug = "False"
|
Release.AspNetCompiler.Debug = "False"
|
||||||
|
@ -25,12 +25,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest", "UnitTest.vcproj
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524} = {5691E159-2D9B-407F-971F-EA5C592DC524}
|
{5691E159-2D9B-407F-971F-EA5C592DC524} = {5691E159-2D9B-407F-971F-EA5C592DC524}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jAssimp_NOT_WORKING", "jAssimp.vcproj", "{FE78BFBA-4BA5-457D-8602-B800D498102D}"
|
|
||||||
ProjectSection(WebsiteProperties) = preProject
|
|
||||||
Debug.AspNetCompiler.Debug = "True"
|
|
||||||
Release.AspNetCompiler.Debug = "False"
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
debug|Win32 = debug|Win32
|
debug|Win32 = debug|Win32
|
||||||
|
@ -45,8 +39,8 @@ Global
|
||||||
release|x64 = release|x64
|
release|x64 = release|x64
|
||||||
release-dll|Win32 = release-dll|Win32
|
release-dll|Win32 = release-dll|Win32
|
||||||
release-dll|x64 = release-dll|x64
|
release-dll|x64 = release-dll|x64
|
||||||
release-noboost|Win32 = release-noboost|Win32
|
release-noboost-st|Win32 = release-noboost-st|Win32
|
||||||
release-noboost|x64 = release-noboost|x64
|
release-noboost-st|x64 = release-noboost-st|x64
|
||||||
release-st|Win32 = release-st|Win32
|
release-st|Win32 = release-st|Win32
|
||||||
release-st|x64 = release-st|x64
|
release-st|x64 = release-st|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
@ -75,10 +69,10 @@ Global
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-dll|Win32.Build.0 = release-dll|Win32
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-dll|Win32.Build.0 = release-dll|Win32
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-dll|x64.ActiveCfg = release-dll|x64
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-dll|x64.ActiveCfg = release-dll|x64
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-dll|x64.Build.0 = release-dll|x64
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-dll|x64.Build.0 = release-dll|x64
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-noboost|Win32.ActiveCfg = release-noboost-st|Win32
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-noboost-st|Win32.ActiveCfg = release-noboost-st|Win32
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-noboost|Win32.Build.0 = release-noboost-st|Win32
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-noboost-st|Win32.Build.0 = release-noboost-st|Win32
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-noboost|x64.ActiveCfg = release-noboost-st|x64
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-noboost-st|x64.ActiveCfg = release-noboost-st|x64
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-noboost|x64.Build.0 = release-noboost-st|x64
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-noboost-st|x64.Build.0 = release-noboost-st|x64
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-st|Win32.ActiveCfg = release-st|Win32
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-st|Win32.ActiveCfg = release-st|Win32
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-st|Win32.Build.0 = release-st|Win32
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-st|Win32.Build.0 = release-st|Win32
|
||||||
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-st|x64.ActiveCfg = release-st|x64
|
{B17B959B-BB8A-4596-AF0F-A8C8DBBC3C5E}.release-st|x64.ActiveCfg = release-st|x64
|
||||||
|
@ -107,10 +101,10 @@ Global
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|Win32.Build.0 = release-dll|Win32
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|Win32.Build.0 = release-dll|Win32
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|x64.ActiveCfg = release-dll|x64
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|x64.ActiveCfg = release-dll|x64
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|x64.Build.0 = release-dll|x64
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-dll|x64.Build.0 = release-dll|x64
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost|Win32.ActiveCfg = release-noboost-st|Win32
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|Win32.ActiveCfg = release-noboost-st|Win32
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost|Win32.Build.0 = release-noboost-st|Win32
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|Win32.Build.0 = release-noboost-st|Win32
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost|x64.ActiveCfg = release-noboost-st|x64
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|x64.ActiveCfg = release-noboost-st|x64
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost|x64.Build.0 = release-noboost-st|x64
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-noboost-st|x64.Build.0 = release-noboost-st|x64
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|Win32.ActiveCfg = release-st|Win32
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|Win32.ActiveCfg = release-st|Win32
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|Win32.Build.0 = release-st|Win32
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|Win32.Build.0 = release-st|Win32
|
||||||
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|x64.ActiveCfg = release-st|x64
|
{5691E159-2D9B-407F-971F-EA5C592DC524}.release-st|x64.ActiveCfg = release-st|x64
|
||||||
|
@ -139,30 +133,14 @@ Global
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-dll|Win32.Build.0 = release-dll|Win32
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-dll|Win32.Build.0 = release-dll|Win32
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-dll|x64.ActiveCfg = release-dll|x64
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-dll|x64.ActiveCfg = release-dll|x64
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-dll|x64.Build.0 = release-dll|x64
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-dll|x64.Build.0 = release-dll|x64
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-noboost|Win32.ActiveCfg = release-noboost-st|Win32
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-noboost-st|Win32.ActiveCfg = release-noboost-st|Win32
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-noboost|Win32.Build.0 = release-noboost-st|Win32
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-noboost-st|Win32.Build.0 = release-noboost-st|Win32
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-noboost|x64.ActiveCfg = release-noboost-st|x64
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-noboost-st|x64.ActiveCfg = release-noboost-st|x64
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-noboost|x64.Build.0 = release-noboost-st|x64
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-noboost-st|x64.Build.0 = release-noboost-st|x64
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-st|Win32.ActiveCfg = release-st|Win32
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-st|Win32.ActiveCfg = release-st|Win32
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-st|Win32.Build.0 = release-st|Win32
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-st|Win32.Build.0 = release-st|Win32
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-st|x64.ActiveCfg = release-st|x64
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-st|x64.ActiveCfg = release-st|x64
|
||||||
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-st|x64.Build.0 = release-st|x64
|
{9B9D1C90-8A03-409A-B547-AE7B48B90F1A}.release-st|x64.Build.0 = release-st|x64
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.debug|Win32.ActiveCfg = debug|Win32
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.debug|x64.ActiveCfg = debug|x64
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.debug-dll|Win32.ActiveCfg = debug|Win32
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.debug-dll|x64.ActiveCfg = debug|x64
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.debug-noboost-st|Win32.ActiveCfg = debug -noboost|Win32
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.debug-noboost-st|x64.ActiveCfg = debug -noboost|x64
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.debug-st|Win32.ActiveCfg = debug-st|Win32
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.debug-st|x64.ActiveCfg = debug-st|x64
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.release|Win32.ActiveCfg = release|Win32
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.release|x64.ActiveCfg = release|x64
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.release-dll|Win32.ActiveCfg = release|Win32
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.release-dll|x64.ActiveCfg = release|x64
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.release-noboost|Win32.ActiveCfg = release -noboost|Win32
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.release-noboost|x64.ActiveCfg = release -noboost|x64
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.release-st|Win32.ActiveCfg = release-st|Win32
|
|
||||||
{FE78BFBA-4BA5-457D-8602-B800D498102D}.release-st|x64.ActiveCfg = release-st|x64
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
Loading…
Reference in New Issue