.dae integrated
This commit is contained in:
Youssef Assem
2019-12-11 21:55:21 +02:00
parent 154ed3f058
commit 733343b18b
3 changed files with 171 additions and 90 deletions
+33 -13
View File
@@ -1,11 +1,12 @@
#ifndef __MODEL_s__
#define __MODEL_s__
#pragma once
#include "ColladaModel.h"
#include "tinyxml2.h"
#include "geometry.h"
#include "tgaimage.h"
#include <cerrno>
#include <cstdlib>
#include <cstring>
@@ -16,31 +17,50 @@
#include <sstream>
#include <vector>
class ColladaModel {
private:
int face_count;
int vertex_count;
int normal_count;
int textureco_count;
int texcoord_count;
std::vector<std::vector<Vec3i> > faces_;
std::vector<std::vector<Vec3i> > faces_; //vertex/normal/uv
std::vector<Vec3f> vertices_;
std::vector<Vec3f> normals_;
std::vector<Vec3f> textureco_;
std::vector<Vec2f> textureco_;
TGAImage diffusemap_;
TGAImage normalmap_;
TGAImage specularmap_;
void load_texture(std::string filename, const char* suffix, TGAImage& img);
public:
ColladaModel(const char* filename);
~ColladaModel();
std::vector<Vec3i> face(int idx);
Vec3f vertex(int i);
Vec3f normal(int i);
Vec3f textureco(int i);
int nfaces();
int nvertices();
int nnormals();
int ntextureco();
};
Vec3f vertix(int iface, int nthvert);
Vec3f vertix(int i);
Vec3f normal(int iface, int nthvert);
Vec3f normal(Vec2f uv);
Vec2f uv(int iface, int nthvert);
Matrix Transform;
Matrix Rotation;
Matrix Scale;
Matrix Translation;
void translate(Vec3f tr);
void rotate(Vec3f rot);
void scale(Vec3f scl);
void ApplyTransform();
TGAColor diffuse(Vec2f uv);
float specular(Vec2f uv);
std::vector<int> face(int idx);
};
#endif