Merge branch 'master' into master
commit
c19bd3d1d1
|
@ -647,7 +647,7 @@ void X3DImporter::XML_ReadNode_GetAttrVal_AsArrCol4f(const int pAttrIdx, std::ve
|
||||||
|
|
||||||
XML_ReadNode_GetAttrVal_AsListCol4f(pAttrIdx, tlist);// read as list
|
XML_ReadNode_GetAttrVal_AsListCol4f(pAttrIdx, tlist);// read as list
|
||||||
// and copy to array
|
// and copy to array
|
||||||
if(tlist.size() > 0)
|
if(!tlist.empty())
|
||||||
{
|
{
|
||||||
pValue.reserve(tlist.size());
|
pValue.reserve(tlist.size());
|
||||||
for ( std::list<aiColor4D>::iterator it = tlist.begin(); it != tlist.end(); ++it )
|
for ( std::list<aiColor4D>::iterator it = tlist.begin(); it != tlist.end(); ++it )
|
||||||
|
|
|
@ -554,7 +554,7 @@ void X3DImporter::Postprocess_BuildMesh(const CX3DImporter_NodeElement& pNodeEle
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy additional information from children
|
// copy additional information from children
|
||||||
for(std::list<CX3DImporter_NodeElement*>::iterator ch_it = tnemesh.Child.begin(); ch_it != tnemesh.Child.end(); ch_it++)
|
for(std::list<CX3DImporter_NodeElement*>::iterator ch_it = tnemesh.Child.begin(); ch_it != tnemesh.Child.end(); ++ch_it)
|
||||||
{
|
{
|
||||||
ai_assert(*pMesh);
|
ai_assert(*pMesh);
|
||||||
if((*ch_it)->Type == CX3DImporter_NodeElement::ENET_Color)
|
if((*ch_it)->Type == CX3DImporter_NodeElement::ENET_Color)
|
||||||
|
|
|
@ -295,7 +295,7 @@ void X3DImporter::ParseNode_Rendering_IndexedTriangleFanSet()
|
||||||
ne_alias.CoordIndex.clear();
|
ne_alias.CoordIndex.clear();
|
||||||
int counter = 0;
|
int counter = 0;
|
||||||
int32_t idx[3];
|
int32_t idx[3];
|
||||||
for(std::vector<int32_t>::const_iterator idx_it = index.begin(); idx_it != index.end(); idx_it++)
|
for(std::vector<int32_t>::const_iterator idx_it = index.begin(); idx_it != index.end(); ++idx_it)
|
||||||
{
|
{
|
||||||
idx[2] = *idx_it;
|
idx[2] = *idx_it;
|
||||||
if (idx[2] < 0)
|
if (idx[2] < 0)
|
||||||
|
@ -617,7 +617,7 @@ void X3DImporter::ParseNode_Rendering_LineSet()
|
||||||
size_t coord_num = 0;
|
size_t coord_num = 0;
|
||||||
|
|
||||||
ne_alias.CoordIndex.clear();
|
ne_alias.CoordIndex.clear();
|
||||||
for(std::vector<int32_t>::const_iterator vc_it = ne_alias.VertexCount.begin(); vc_it != ne_alias.VertexCount.end(); vc_it++)
|
for(std::vector<int32_t>::const_iterator vc_it = ne_alias.VertexCount.begin(); vc_it != ne_alias.VertexCount.end(); ++vc_it)
|
||||||
{
|
{
|
||||||
if(*vc_it < 2) throw DeadlyImportError("LineSet. vertexCount shall be greater than or equal to two.");
|
if(*vc_it < 2) throw DeadlyImportError("LineSet. vertexCount shall be greater than or equal to two.");
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@
|
||||||
#include <assimp/postprocess.h>
|
#include <assimp/postprocess.h>
|
||||||
|
|
||||||
/* the global Assimp scene object */
|
/* the global Assimp scene object */
|
||||||
const struct aiScene* scene = NULL;
|
const C_STRUCT aiScene* scene = NULL;
|
||||||
GLuint scene_list = 0;
|
GLuint scene_list = 0;
|
||||||
struct aiVector3D scene_min, scene_max, scene_center;
|
C_STRUCT aiVector3D scene_min, scene_max, scene_center;
|
||||||
|
|
||||||
/* current rotation angle */
|
/* current rotation angle */
|
||||||
static float angle = 0.f;
|
static float angle = 0.f;
|
||||||
|
@ -49,22 +49,22 @@ void reshape(int width, int height)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
void get_bounding_box_for_node (const struct aiNode* nd,
|
void get_bounding_box_for_node (const a<C_STRUCT iNode* nd,
|
||||||
struct aiVector3D* min,
|
C_STRUCT aiVector3D* min,
|
||||||
struct aiVector3D* max,
|
C_STRUCT aiVector3D* max,
|
||||||
struct aiMatrix4x4* trafo
|
C_STRUCT aiMatrix4x4* trafo
|
||||||
){
|
){
|
||||||
struct aiMatrix4x4 prev;
|
C_STRUCT aiMatrix4x4 prev;
|
||||||
unsigned int n = 0, t;
|
unsigned int n = 0, t;
|
||||||
|
|
||||||
prev = *trafo;
|
prev = *trafo;
|
||||||
aiMultiplyMatrix4(trafo,&nd->mTransformation);
|
aiMultiplyMatrix4(trafo,&nd->mTransformation);
|
||||||
|
|
||||||
for (; n < nd->mNumMeshes; ++n) {
|
for (; n < nd->mNumMeshes; ++n) {
|
||||||
const struct aiMesh* mesh = scene->mMeshes[nd->mMeshes[n]];
|
const C_STRUCT aiMesh* mesh = scene->mMeshes[nd->mMeshes[n]];
|
||||||
for (t = 0; t < mesh->mNumVertices; ++t) {
|
for (t = 0; t < mesh->mNumVertices; ++t) {
|
||||||
|
|
||||||
struct aiVector3D tmp = mesh->mVertices[t];
|
C_STRUCT aiVector3D tmp = mesh->mVertices[t];
|
||||||
aiTransformVecByMatrix4(&tmp,trafo);
|
aiTransformVecByMatrix4(&tmp,trafo);
|
||||||
|
|
||||||
min->x = aisgl_min(min->x,tmp.x);
|
min->x = aisgl_min(min->x,tmp.x);
|
||||||
|
@ -84,9 +84,9 @@ void get_bounding_box_for_node (const struct aiNode* nd,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
void get_bounding_box (struct aiVector3D* min, struct aiVector3D* max)
|
void get_bounding_box(C_STRUCT aiVector3D* min, C_STRUCT aiVector3D* max)
|
||||||
{
|
{
|
||||||
struct aiMatrix4x4 trafo;
|
aiMatrix4x4 trafo;
|
||||||
aiIdentityMatrix4(&trafo);
|
aiIdentityMatrix4(&trafo);
|
||||||
|
|
||||||
min->x = min->y = min->z = 1e10f;
|
min->x = min->y = min->z = 1e10f;
|
||||||
|
@ -95,7 +95,7 @@ void get_bounding_box (struct aiVector3D* min, struct aiVector3D* max)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
void color4_to_float4(const struct aiColor4D *c, float f[4])
|
void color4_to_float4(const C_STRUCT aiColor4D *c, float f[4])
|
||||||
{
|
{
|
||||||
f[0] = c->r;
|
f[0] = c->r;
|
||||||
f[1] = c->g;
|
f[1] = c->g;
|
||||||
|
@ -113,16 +113,16 @@ void set_float4(float f[4], float a, float b, float c, float d)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
void apply_material(const struct aiMaterial *mtl)
|
void apply_material(const C_STRUCT aiMaterial *mtl)
|
||||||
{
|
{
|
||||||
float c[4];
|
float c[4];
|
||||||
|
|
||||||
GLenum fill_mode;
|
GLenum fill_mode;
|
||||||
int ret1, ret2;
|
int ret1, ret2;
|
||||||
struct aiColor4D diffuse;
|
C_STRUCT aiColor4D diffuse;
|
||||||
struct aiColor4D specular;
|
C_STRUCT aiColor4D specular;
|
||||||
struct aiColor4D ambient;
|
C_STRUCT aiColor4D ambient;
|
||||||
struct aiColor4D emission;
|
C_STRUCT aiColor4D emission;
|
||||||
ai_real shininess, strength;
|
ai_real shininess, strength;
|
||||||
int two_sided;
|
int two_sided;
|
||||||
int wireframe;
|
int wireframe;
|
||||||
|
@ -179,11 +179,11 @@ void apply_material(const struct aiMaterial *mtl)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
void recursive_render (const struct aiScene *sc, const struct aiNode* nd)
|
void recursive_render (const C_STRUCT aiScene *sc, const C_STRUCT aiNode* nd)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
unsigned int n = 0, t;
|
unsigned int n = 0, t;
|
||||||
struct aiMatrix4x4 m = nd->mTransformation;
|
C_STRUCT aiMatrix4x4 m = nd->mTransformation;
|
||||||
|
|
||||||
/* update transform */
|
/* update transform */
|
||||||
aiTransposeMatrix4(&m);
|
aiTransposeMatrix4(&m);
|
||||||
|
@ -192,7 +192,7 @@ void recursive_render (const struct aiScene *sc, const struct aiNode* nd)
|
||||||
|
|
||||||
/* draw all meshes assigned to this node */
|
/* draw all meshes assigned to this node */
|
||||||
for (; n < nd->mNumMeshes; ++n) {
|
for (; n < nd->mNumMeshes; ++n) {
|
||||||
const struct aiMesh* mesh = scene->mMeshes[nd->mMeshes[n]];
|
const C_STRUCT aiMesh* mesh = scene->mMeshes[nd->mMeshes[n]];
|
||||||
|
|
||||||
apply_material(sc->mMaterials[mesh->mMaterialIndex]);
|
apply_material(sc->mMaterials[mesh->mMaterialIndex]);
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ void recursive_render (const struct aiScene *sc, const struct aiNode* nd)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (t = 0; t < mesh->mNumFaces; ++t) {
|
for (t = 0; t < mesh->mNumFaces; ++t) {
|
||||||
const struct aiFace* face = &mesh->mFaces[t];
|
const C_STRUCT aiFace* face = &mesh->mFaces[t];
|
||||||
GLenum face_mode;
|
GLenum face_mode;
|
||||||
|
|
||||||
switch(face->mNumIndices) {
|
switch(face->mNumIndices) {
|
||||||
|
@ -324,7 +324,7 @@ int loadasset (const char* path)
|
||||||
/* ---------------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------------- */
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
struct aiLogStream stream;
|
C_STRUCT aiLogStream stream;
|
||||||
|
|
||||||
glutInitWindowSize(900,600);
|
glutInitWindowSize(900,600);
|
||||||
glutInitWindowPosition(100,100);
|
glutInitWindowPosition(100,100);
|
||||||
|
|
Loading…
Reference in New Issue