diff --git a/source/blender/yafray/intern/export_Plugin.cpp b/source/blender/yafray/intern/export_Plugin.cpp index 2baacc1a5c0..08919292e57 100644 --- a/source/blender/yafray/intern/export_Plugin.cpp +++ b/source/blender/yafray/intern/export_Plugin.cpp @@ -688,50 +688,50 @@ void yafrayPluginRender_t::writeMaterialsAndModulators() } } -void yafrayPluginRender_t::genUVcoords(vector *uvcoords,VlakRen *vlr,TFace* uvc) +void yafrayPluginRender_t::genUVcoords(vector &uvcoords,VlakRen *vlr,TFace* uvc) { if (uvc) { // use correct uv coords for this triangle if (vlr->flag & R_FACE_SPLIT) { - uvcoords->push_back(uvc->uv[0][0]);uvcoords->push_back(1-uvc->uv[0][1]); - uvcoords->push_back(uvc->uv[2][0]);uvcoords->push_back(1-uvc->uv[2][1]); - uvcoords->push_back(uvc->uv[3][0]);uvcoords->push_back(1-uvc->uv[3][1]); + uvcoords.push_back(uvc->uv[0][0]);uvcoords.push_back(1-uvc->uv[0][1]); + uvcoords.push_back(uvc->uv[2][0]);uvcoords.push_back(1-uvc->uv[2][1]); + uvcoords.push_back(uvc->uv[3][0]);uvcoords.push_back(1-uvc->uv[3][1]); } else { - uvcoords->push_back(uvc->uv[0][0]);uvcoords->push_back(1-uvc->uv[0][1]); - uvcoords->push_back(uvc->uv[1][0]);uvcoords->push_back(1-uvc->uv[1][1]); - uvcoords->push_back(uvc->uv[2][0]);uvcoords->push_back(1-uvc->uv[2][1]); + uvcoords.push_back(uvc->uv[0][0]);uvcoords.push_back(1-uvc->uv[0][1]); + uvcoords.push_back(uvc->uv[1][0]);uvcoords.push_back(1-uvc->uv[1][1]); + uvcoords.push_back(uvc->uv[2][0]);uvcoords.push_back(1-uvc->uv[2][1]); } } else { - uvcoords->push_back(0);uvcoords->push_back(0); - uvcoords->push_back(0);uvcoords->push_back(0); - uvcoords->push_back(0);uvcoords->push_back(0); + uvcoords.push_back(0);uvcoords.push_back(0); + uvcoords.push_back(0);uvcoords.push_back(0); + uvcoords.push_back(0);uvcoords.push_back(0); } } -void yafrayPluginRender_t::genCompleUVcoords(vector *uvcoords,/*VlakRen *vlr,*/TFace* uvc) +void yafrayPluginRender_t::genCompleUVcoords(vector &uvcoords,/*VlakRen *vlr,*/TFace* uvc) { if (uvc) { // use correct uv coords for this triangle - uvcoords->push_back(uvc->uv[2][0]);uvcoords->push_back(1-uvc->uv[2][1]); - uvcoords->push_back(uvc->uv[3][0]);uvcoords->push_back(1-uvc->uv[3][1]); - uvcoords->push_back(uvc->uv[0][0]);uvcoords->push_back(1-uvc->uv[0][1]); + uvcoords.push_back(uvc->uv[2][0]);uvcoords.push_back(1-uvc->uv[2][1]); + uvcoords.push_back(uvc->uv[3][0]);uvcoords.push_back(1-uvc->uv[3][1]); + uvcoords.push_back(uvc->uv[0][0]);uvcoords.push_back(1-uvc->uv[0][1]); } else { - uvcoords->push_back(0);uvcoords->push_back(0); - uvcoords->push_back(0);uvcoords->push_back(0); - uvcoords->push_back(0);uvcoords->push_back(0); + uvcoords.push_back(0);uvcoords.push_back(0); + uvcoords.push_back(0);uvcoords.push_back(0); + uvcoords.push_back(0);uvcoords.push_back(0); } } -void yafrayPluginRender_t::genVcol(vector *vcol,VlakRen *vlr, +void yafrayPluginRender_t::genVcol(vector &vcol,VlakRen *vlr, int p1,int p2,int p3,bool EXPORT_VCOL) { if ((EXPORT_VCOL) && (vlr->vcol)) @@ -741,26 +741,26 @@ void yafrayPluginRender_t::genVcol(vector *vcol,VlakRen *vlr, vr = ((vlr->vcol[p1] >> 24) & 255)/255.0; vg = ((vlr->vcol[p1] >> 16) & 255)/255.0; vb = ((vlr->vcol[p1] >> 8) & 255)/255.0; - vcol->push_back(vr);vcol->push_back(vg);vcol->push_back(vb); + vcol.push_back(vr);vcol.push_back(vg);vcol.push_back(vb); vr = ((vlr->vcol[p2] >> 24) & 255)/255.0; vg = ((vlr->vcol[p2] >> 16) & 255)/255.0; vb = ((vlr->vcol[p2] >> 8) & 255)/255.0; - vcol->push_back(vr);vcol->push_back(vg);vcol->push_back(vb); + vcol.push_back(vr);vcol.push_back(vg);vcol.push_back(vb); vr = ((vlr->vcol[p3] >> 24) & 255)/255.0; vg = ((vlr->vcol[p3] >> 16) & 255)/255.0; vb = ((vlr->vcol[p3] >> 8) & 255)/255.0; - vcol->push_back(vr);vcol->push_back(vg);vcol->push_back(vb); + vcol.push_back(vr);vcol.push_back(vg);vcol.push_back(vb); } else { - vcol->push_back(0);vcol->push_back(0);vcol->push_back(0); - vcol->push_back(0);vcol->push_back(0);vcol->push_back(0); - vcol->push_back(0);vcol->push_back(0);vcol->push_back(0); + vcol.push_back(0);vcol.push_back(0);vcol.push_back(0); + vcol.push_back(0);vcol.push_back(0);vcol.push_back(0); + vcol.push_back(0);vcol.push_back(0);vcol.push_back(0); } } void yafrayPluginRender_t::genFace(vector &faces,vector &shaders,vector &faceshader, - vector *uvcoords,vector *vcol, + vector &uvcoords,vector &vcol, map &vert_idx,VlakRen *vlr, bool has_orco,bool has_uv,bool has_vcol) { @@ -801,7 +801,7 @@ void yafrayPluginRender_t::genFace(vector &faces,vector &shaders,ve } void yafrayPluginRender_t::genCompleFace(vector &faces,/*vector &shaders,*/vector &faceshader, - vector *uvcoords,vector *vcol, + vector &uvcoords,vector &vcol, map &vert_idx,VlakRen *vlr, bool has_orco,bool has_uv,bool has_vcol) { @@ -824,7 +824,7 @@ void yafrayPluginRender_t::genCompleFace(vector &faces,/*vector &sh if(has_vcol) genVcol(vcol,vlr,2,3,0,EXPORT_VCOL); } -void yafrayPluginRender_t::genVertices(vector *verts,int &vidx, +void yafrayPluginRender_t::genVertices(vector &verts,int &vidx, map &vert_idx,VlakRen* vlr,bool has_orco) { VertRen* ver; @@ -832,33 +832,33 @@ void yafrayPluginRender_t::genVertices(vector *verts,int &vid { vert_idx[vlr->v1] = vidx++; ver = vlr->v1; - verts->push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2])); + verts.push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2])); if (has_orco) - verts->push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2])); + verts.push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2])); } if (vert_idx.find(vlr->v2)==vert_idx.end()) { vert_idx[vlr->v2] = vidx++; ver = vlr->v2; - verts->push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2])); + verts.push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2])); if (has_orco) - verts->push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2])); + verts.push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2])); } if (vert_idx.find(vlr->v3)==vert_idx.end()) { vert_idx[vlr->v3] = vidx++; ver = vlr->v3; - verts->push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2])); + verts.push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2])); if (has_orco) - verts->push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2])); + verts.push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2])); } if ((vlr->v4) && (vert_idx.find(vlr->v4)==vert_idx.end())) { vert_idx[vlr->v4] = vidx++; ver = vlr->v4; - verts->push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2])); + verts.push_back(yafray::point3d_t(ver->co[0],ver->co[1],ver->co[2])); if (has_orco) - verts->push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2])); + verts.push_back(yafray::point3d_t(ver->orco[0],ver->orco[1],ver->orco[2])); } } @@ -900,9 +900,8 @@ void yafrayPluginRender_t::writeObject(Object* obj, const vector &VLR_ if(fmat==NULL) continue; if((fmat->mode & (MA_VERTEXCOL|MA_VERTEXCOLP))!=0) {has_vcol=true;break;}; } - vector *verts=new vector; - vector *vcol=NULL; - if(has_vcol) vcol=new vector; + vector verts; + vector vcol; // now all vertices map vert_idx; // for removing duplicate verts and creating an index list int vidx = 0; // vertex index counter @@ -918,9 +917,7 @@ void yafrayPluginRender_t::writeObject(Object* obj, const vector &VLR_ vector faces; vector shaders; vector faceshader; - vector *uvcoords=NULL; - if(has_uv) - uvcoords=new vector; + vector uvcoords; for (vector::const_iterator fci2=VLR_list.begin(); fci2!=VLR_list.end();++fci2) { diff --git a/source/blender/yafray/intern/export_Plugin.h b/source/blender/yafray/intern/export_Plugin.h index 1defad65922..775156a7e71 100644 --- a/source/blender/yafray/intern/export_Plugin.h +++ b/source/blender/yafray/intern/export_Plugin.h @@ -36,19 +36,19 @@ class yafrayPluginRender_t : public yafrayRender_t virtual bool initExport(); virtual bool finishExport(); - void genUVcoords(std::vector *uvcoords,VlakRen *vlr,TFace* uvc); - void genCompleUVcoords(std::vector *uvcoords,/*VlakRen *vlr,*/TFace* uvc); - void genVcol(std::vector *vcol,VlakRen *vlr, + void genUVcoords(std::vector &uvcoords,VlakRen *vlr,TFace* uvc); + void genCompleUVcoords(std::vector &uvcoords,/*VlakRen *vlr,*/TFace* uvc); + void genVcol(std::vector &vcol,VlakRen *vlr, int p1,int p2,int p3,bool EXPORT_VCOL); void genFace(std::vector &faces,std::vector &shaders,std::vector &faceshader, - std::vector *uvcoords,std::vector *vcol, + std::vector &uvcoords,std::vector &vcol, std::map &vert_idx,VlakRen *vlr, bool has_orco,bool has_uv,bool has_vcol); void genCompleFace(std::vector &faces,/*std::vector &shaders,*/std::vector &faceshader, - std::vector *uvcoords,std::vector *vcol, + std::vector &uvcoords,std::vector &vcol, std::map &vert_idx,VlakRen *vlr, bool has_orco,bool has_uv,bool has_vcol); - void genVertices(std::vector *verts,int &vidx, + void genVertices(std::vector &verts,int &vidx, std::map &vert_idx,VlakRen* vlr,bool has_orco); }; diff --git a/source/blender/yafray/intern/yafexternal.h b/source/blender/yafray/intern/yafexternal.h index 2ff95a13611..2cf1b0a0dd1 100644 --- a/source/blender/yafray/intern/yafexternal.h +++ b/source/blender/yafray/intern/yafexternal.h @@ -141,8 +141,8 @@ class yafrayInterface_t : public renderEnvironment_t virtual void transformPush(float *m)=0; virtual void transformPop()=0; virtual void addObject_trimesh(const std::string &name, - std::vector *verts, const std::vector &faces, - std::vector *uvcoords, std::vector *vcol, + std::vector &verts, const std::vector &faces, + std::vector &uvcoords, std::vector &vcol, const std::vector &shaders,const std::vector &faceshader, float sm_angle,bool castShadows,bool useR,bool receiveR,bool caus,bool has_orco, const color_t &caus_rcolor,const color_t &caus_tcolor,float caus_IOR)=0;