From d714bc124c3cc227e872a9a997da7922e3c6363d Mon Sep 17 00:00:00 2001 From: cignoni Date: Mon, 21 Nov 2011 07:23:13 +0000 Subject: [PATCH] Added function for dumping set of rects to the utility image dumping functions --- wrap/qt/PolyToQImage.cpp | 53 +++++++++++++++++++++++++++++----------- wrap/qt/PolyToQImage.h | 8 +++--- 2 files changed, 43 insertions(+), 18 deletions(-) diff --git a/wrap/qt/PolyToQImage.cpp b/wrap/qt/PolyToQImage.cpp index 30db9a23..17af14a0 100644 --- a/wrap/qt/PolyToQImage.cpp +++ b/wrap/qt/PolyToQImage.cpp @@ -1,4 +1,5 @@ #include +#include #include #include "PolyToQImage.h" @@ -6,7 +7,22 @@ using namespace vcg; using namespace std; -int dumpPolySet(const char * imageName, vector< vector > &polyVec, int width, int height) +void rectSetToPolySet(vector< Box2f > &rectVec, vector< vector > &polyVec) +{ + polyVec.clear(); + for(size_t i=0;i > &polyVec, int width, int height) { Box2f bb; for(size_t i=0;i > &polyVec, int sim.tra = Point2f(width/2.0f,height/2.0f)-bb.Center()*sim.sca; vector trVec(polyVec.size(),sim); - return dumpPolySet(imageName,polyVec,trVec,width,height); + dumpPolySet(imageName,polyVec,trVec,width,height); } -int dumpPolySet(const char * imageName, vector< vector< vector > > &polyVecVec, vector &trVec, int width, int height) +void dumpPolySet(const char * imageName, vector< vector< vector > > &polyVecVec, vector &trVec, int width, int height) { assert(polyVecVec.size() == trVec.size()); QImage img(width,height,QImage::Format_RGB32); img.fill(qRgb(128,128,128)); - QPainter painter(&img); // paint in picture + + QSvgGenerator svg; + svg.setFileName(imageName); + QPainter painter; + + if(QString(imageName).endsWith("svg",Qt::CaseInsensitive)) + painter.begin(&svg); + else painter.begin(&img); + for(size_t i=0;i ppQ; for(int j=0;j > > &pol painter.drawPolygon(&*ppQ.begin(),ppQ.size(),Qt::OddEvenFill); } painter.end(); - img = img.mirrored(false,true); - img.save(imageName); - int emptyCnt=0; - for(int i=0;i > &polyVec, vector &trVec, int width, int height) +void dumpPolySet(const char * imageName, vector< vector > &polyVec, vector &trVec, int width, int height) { vector< vector< vector > > polyVecVec(polyVec.size()); for(size_t i=0;i #include -int dumpPolySet(const char * imageName, std::vector< std::vector< std::vector > > &polyVecVec, std::vector &trVec, int width, int height); -int dumpPolySet(const char * imageName, std::vector< std::vector > &polyVec, std::vector &trVec, int width=1024,int height=1024); -int dumpPolySet(const char * imageName, std::vector< std::vector > &polyVec, int width=1024,int height=1024); - +void dumpPolySet(const char * imageName, std::vector< std::vector< std::vector > > &polyVecVec, std::vector &trVec, int width, int height); +void dumpPolySet(const char * imageName, std::vector< std::vector > &polyVec, std::vector &trVec, int width=1024,int height=1024); +void dumpPolySet(const char * imageName, std::vector< std::vector > &polyVec, int width=1024,int height=1024); +void rectSetToPolySet(std::vector< vcg::Box2f > &rectVec, std::vector< std::vector > &polyVec); #endif // POLYTOQIMAGE_H