[DEV] update triangle draw

This commit is contained in:
Edouard DUPIN 2017-06-28 21:56:26 +02:00
parent 9f4250cbdc
commit e789c16872
2 changed files with 26 additions and 4 deletions

View File

@ -34,7 +34,7 @@ ewol::resource::Colored3DObject::~Colored3DObject() {
}
void ewol::resource::Colored3DObject::draw(std::vector<vec3>& _vertices,
void ewol::resource::Colored3DObject::draw(const std::vector<vec3>& _vertices,
const etk::Color<float>& _color,
bool _updateDepthBuffer,
bool _depthtest) {
@ -76,7 +76,7 @@ void ewol::resource::Colored3DObject::draw(std::vector<vec3>& _vertices,
}
}
void ewol::resource::Colored3DObject::draw(std::vector<vec3>& _vertices,
void ewol::resource::Colored3DObject::draw(const std::vector<vec3>& _vertices,
const etk::Color<float>& _color,
mat4& _transformationMatrix,
bool _updateDepthBuffer,
@ -492,6 +492,23 @@ void ewol::resource::Colored3DObject::drawCone(float _radius,
draw(tmpVertices, _tmpColor, _transformationMatrix);
}
void ewol::resource::Colored3DObject::drawTriangles(const std::vector<vec3>& _vertex,
const std::vector<uint32_t>& _indice,
mat4& _transformationMatrix,
const etk::Color<float>& _tmpColor,
const vec3& _offset) {
std::vector<vec3> tmpVertices;
for (size_t iii=0; iii<_indice.size()/3; ++iii) {
tmpVertices.push_back(_vertex[_indice[iii*3 + 0]]+_offset);
tmpVertices.push_back(_vertex[_indice[iii*3 + 1]]+_offset);
tmpVertices.push_back(_vertex[_indice[iii*3 + 2]]+_offset);
//EWOL_INFO(" indices " << _indice[iii*3 + 0] << " " << _indice[iii*3 + 1] << " " << _indice[iii*3 + 2]);
//EWOL_INFO(" triangle " << _vertex[_indice[iii*3 + 0]] << " " << _vertex[_indice[iii*3 + 1]] << " " << _vertex[_indice[iii*3 + 2]]);
}
//EWOL_INFO("display " << tmpVertices.size() << " vertices form " << _indice.size());
draw(tmpVertices, _tmpColor, _transformationMatrix);
}
namespace etk {
template<> std::string to_string(ewol::resource::Colored3DObject const&) {
return "!!ewol::resource::Colored3DObject!ERROR!CAN_NOT_BE_CONVERT!!";

View File

@ -30,11 +30,11 @@ namespace ewol {
DECLARE_RESOURCE_FACTORY(Colored3DObject);
virtual ~Colored3DObject();
public:
virtual void draw(std::vector<vec3>& _vertices,
virtual void draw(const std::vector<vec3>& _vertices,
const etk::Color<float>& _color,
bool _updateDepthBuffer=true,
bool _depthtest=true);
virtual void draw(std::vector<vec3>& _vertices,
virtual void draw(const std::vector<vec3>& _vertices,
const etk::Color<float>& _color,
mat4& _transformationMatrix,
bool _updateDepthBuffer=true,
@ -77,6 +77,11 @@ namespace ewol {
int _longs,
mat4& _transformationMatrix,
const etk::Color<float>& _tmpColor);
void drawTriangles(const std::vector<vec3>& _vertex,
const std::vector<uint32_t>& _indice,
mat4& _transformationMatrix,
const etk::Color<float>& _tmpColor,
const vec3& _offset=vec3(0,0,0.1));
};
};
};