Skip to content

Commit

Permalink
Updated project to run with Qt 5.4 and its GCC 4.9.
Browse files Browse the repository at this point in the history
Fixed SSE stack alignment issue.
Added git cleanup script.
  • Loading branch information
zlogic committed Feb 25, 2015
1 parent 95e5306 commit 959e2c7
Show file tree
Hide file tree
Showing 13 changed files with 68 additions and 79 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/cybervision-build-desktop-*/
/build-cybervision-*/
6 changes: 3 additions & 3 deletions cybervision/cybervision-app/KDTree/kdtree.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1164,7 +1164,7 @@ namespace KDTree
{
typename _Base::NoLeakAlloc noleak(this);
_Link_type new_node = noleak.get();
_M_construct_node(new_node, __V, __PARENT, __LEFT, __RIGHT);
this->_M_construct_node(new_node, __V, __PARENT, __LEFT, __RIGHT);
noleak.disconnect();
return new_node;
}
Expand All @@ -1182,8 +1182,8 @@ namespace KDTree
void
_M_delete_node(_Link_type __p)
{
_M_destroy_node(__p);
_M_deallocate_node(__p);
this->_M_destroy_node(__p);
this->_M_deallocate_node(__p);
}

_Link_type _M_root;
Expand Down
2 changes: 1 addition & 1 deletion cybervision/cybervision-app/Reconstruction/imageloader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ QString ImageLoader::extractTagStringTIFF(const QString& filename) const{


if(tag_short==TIFFTAG_META_PHENOM || tag_short== TIFFTAG_META_QUANTA)
result= QString::fromAscii(data.data(),data.size());
result= QString::fromLatin1(data.data(),data.size());

file.seek(fp);
}
Expand Down
4 changes: 2 additions & 2 deletions cybervision/cybervision-app/Reconstruction/pointmatcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ bool PointMatcher::extractMatches(const QString& filename1,const QString& filena
precomputed_file_info= QFileInfo(file1.absoluteDir(),precomputed_filename);
QFile precomputed_file(precomputed_file_info.absoluteFilePath());
if(precomputed_file.exists()){
emit sgnLogMessage(tr("Loading precomputed SIFT matches from %1").arg(QDir::convertSeparators(precomputed_file.fileName())));
emit sgnLogMessage(tr("Loading precomputed SIFT matches from %1").arg(QDir::toNativeSeparators(precomputed_file.fileName())));
precomputed_file.open(QFile::ReadOnly);
QTextStream in_stream(&precomputed_file);

Expand Down Expand Up @@ -209,7 +209,7 @@ bool PointMatcher::extractMatches(const QString& filename1,const QString& filena
emit sgnLogMessage(QString(tr("Found %1 keypoint matches")).arg(matches.size()));

if(Options::UsePrecomputedKeypointData){
emit sgnLogMessage(QString(tr("Saving computed SIFT matches to %1")).arg(QDir::convertSeparators(precomputed_file_info.fileName())));
emit sgnLogMessage(QString(tr("Saving computed SIFT matches to %1")).arg(QDir::toNativeSeparators(precomputed_file_info.fileName())));
QFile precomputed_file(precomputed_file_info.absoluteFilePath());
precomputed_file.open(QFile::WriteOnly);
QTextStream out_stream(&precomputed_file);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -503,10 +503,10 @@ QSet<int> PointTriangulator::findPeaks(const QList<QVector3D> &points) const{
{
qreal minX= points.begin()->x(), minY= points.begin()->y(), maxX= points.begin()->x(), maxY= points.begin()->y();
for(QList<QVector3D>::const_iterator it=points.begin();it!=points.end();it++){
minX= qMin(minX,it->x());
minY= qMin(minY,it->y());
maxX= qMax(maxX,it->x());
maxY= qMax(maxY,it->y());
minX= qMin(minX,(qreal)it->x());
minY= qMin(minY,(qreal)it->y());
maxX= qMax(maxX,(qreal)it->x());
maxY= qMax(maxY,(qreal)it->y());
}
values_x<<minX<<maxX;
values_y<<minY<<maxY;
Expand Down
16 changes: 8 additions & 8 deletions cybervision/cybervision-app/Reconstruction/sculptor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ QList<QVector3D> Sculptor::filterPoints(const QList<QVector3D>& points){
//These values are unwanted
qreal max_z=points.begin()->z(), min_z=points.begin()->z();
for(QList<QVector3D>::const_iterator it= points.begin();it!=points.end();it++){
max_z= qMax(max_z,it->z());
min_z= qMin(min_z,it->z());
max_z= qMax(max_z,(qreal)it->z());
min_z= qMin(min_z,(qreal)it->z());
}

for(QList<QVector3D>::const_iterator it= points.begin();it!=points.end();it++){
Expand Down Expand Up @@ -185,8 +185,8 @@ bool Sculptor::filterTriangles(QList<QVector3D>& points,const QList<Surface::Tri
//Renormalize z-coordinate
qreal zMin= std::numeric_limits<qreal>::infinity(), zMax= -std::numeric_limits<qreal>::infinity();
for(QList<QVector3D>::const_iterator it= points.begin();it!=points.end();it++){
zMin= qMin(zMin,it->z());
zMax= qMax(zMax,it->z());
zMin= qMin(zMin,(qreal)it->z());
zMax= qMax(zMax,(qreal)it->z());
}

for(QList<QVector3D>::iterator it= points.begin();it!=points.end();it++){
Expand Down Expand Up @@ -246,10 +246,10 @@ QList<QVector3D> Sculptor::interpolatePointsToGrid(const QList<QVector3D>& point
{
qreal minX= points.begin()->x(), minY= points.begin()->y(), maxX= points.begin()->x(), maxY= points.begin()->y();
for(QList<QVector3D>::const_iterator it=points.begin();it!=points.end();it++){
minX= qMin(minX,it->x());
minY= qMin(minY,it->y());
maxX= qMax(maxX,it->x());
maxY= qMax(maxY,it->y());
minX= qMin(minX,(qreal)it->x());
minY= qMin(minY,(qreal)it->y());
maxX= qMax(maxX,(qreal)it->x());
maxY= qMax(maxY,(qreal)it->y());
}
//minX= 0, minY= 0;
//maxX= imageSize.width(), maxY= imageSize.height();
Expand Down
17 changes: 10 additions & 7 deletions cybervision/cybervision-app/UI/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ void MainWindow::updateWidgetStatus(){
scaleXYValidator.setBottom(0.0);
scaleZValidator.setBottom(0.0);
angleValidator.setRange(-360.0,360.0,1000);
scaleXYValidator.setLocale(QLocale::C);
scaleZValidator.setLocale(QLocale::C);
angleValidator.setLocale(QLocale::C);
ui->scaleXYEdit->setValidator(&scaleXYValidator);
ui->scaleZEdit->setValidator(&scaleZValidator);
ui->angleEdit->setValidator(&angleValidator);
Expand Down Expand Up @@ -169,7 +172,7 @@ void MainWindow::loadDebugPreferences(){
QString fileName= fileRegexp.capturedTexts().at(1);
QString name= QFileInfo(fileName).fileName();
QListWidgetItem* newItem= new QListWidgetItem(name);
newItem->setData(32,QDir::convertSeparators(fileName));
newItem->setData(32,QDir::toNativeSeparators(fileName));
ui->imageList->addItem(newItem);

startPath= QFileInfo(fileName).canonicalPath();
Expand Down Expand Up @@ -321,7 +324,7 @@ void MainWindow::on_loadSurfaceButton_clicked(){
if(!filename.isNull()){
cybervision::Surface surface= cybervision::Surface::fromFile(filename);
if(!surface.isOk())
ui->logTextEdit->appendHtml("<b>"+QString(tr("Error loading surface from %1")).arg(QDir::convertSeparators(filename))+"</b>");
ui->logTextEdit->appendHtml("<b>"+QString(tr("Error loading surface from %1")).arg(QDir::toNativeSeparators(filename))+"</b>");

ui->openGLViewport->setSurface3D(surface);
updateWidgetStatus();
Expand Down Expand Up @@ -359,13 +362,13 @@ void MainWindow::on_openImage1_clicked(){
if(filename.isNull()){
image1Path= "";
}else{
filename= QDir::convertSeparators(filename);
filename= QDir::toNativeSeparators(filename);
image1Path= filename;
startPath= QFileInfo(filename).canonicalPath();

if(ui->imageList->findItems(QFileInfo(filename).fileName(),Qt::MatchExactly).empty()){
QListWidgetItem* newItem= new QListWidgetItem(QFileInfo(filename).fileName());
newItem->setData(32,QDir::convertSeparators(filename));
newItem->setData(32,QDir::toNativeSeparators(filename));
ui->imageList->addItem(newItem);
}
}
Expand All @@ -377,13 +380,13 @@ void MainWindow::on_openImage2_clicked(){
if(filename.isNull()){
image2Path= "";
}else{
filename= QDir::convertSeparators(filename);
filename= QDir::toNativeSeparators(filename);
image2Path= filename;
startPath= QFileInfo(filename).canonicalPath();

if(ui->imageList->findItems(QFileInfo(filename).fileName(),Qt::MatchExactly).empty()){
QListWidgetItem* newItem= new QListWidgetItem(QFileInfo(filename).fileName());
newItem->setData(32,QDir::convertSeparators(filename));
newItem->setData(32,QDir::toNativeSeparators(filename));
ui->imageList->addItem(newItem);
}
}
Expand All @@ -395,7 +398,7 @@ void MainWindow::on_addImageButton_clicked(){
for(QStringList::const_iterator it=filenames.begin();it!=filenames.end();it++){
QString name= QFileInfo(*it).fileName();
QListWidgetItem* newItem= new QListWidgetItem(name);
newItem->setData(32,QDir::convertSeparators(*it));
newItem->setData(32,QDir::toNativeSeparators(*it));
ui->imageList->addItem(newItem);

startPath= QFileInfo(*it).canonicalPath();
Expand Down
2 changes: 1 addition & 1 deletion cybervision/cybervision-app/UI/mainwindow.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>
#include <QtWidgets/QMainWindow>
#include <QTextStream>
#include <QDoubleValidator>

Expand Down
69 changes: 33 additions & 36 deletions cybervision/cybervision-app/cybervision-app.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
include( ../cybervision-options.pri )

QT += core gui opengl
QT += core gui widgets opengl
TARGET = cybervision$${CYBERVISION_SUFFIX}
TEMPLATE = app

Expand All @@ -23,7 +23,7 @@ SOURCES += main.cpp \
UI/processthread.cpp \
UI/cybervisionviewer.cpp \
UI/crosssectionwindow.cpp \
UI/aboutwindow.cpp
UI/aboutwindow.cpp

HEADERS += \
Reconstruction/pointmatcher.h \
Expand Down Expand Up @@ -77,8 +77,8 @@ HEADERS += \
UI/aboutwindow.h

FORMS += UI/mainwindow.ui \
UI/crosssectionwindow.ui \
UI/aboutwindow.ui
UI/crosssectionwindow.ui \
UI/aboutwindow.ui

RESOURCES += \
ReconstructionResources.qrc
Expand All @@ -89,24 +89,24 @@ OTHER_FILES += \
Reconstruction/SceneJSTemplate.js \
UI/cybervision.rc \
UI/translations/cybervision-app_ru.ts \
UI/icons/texture-right.png \
UI/icons/texture-left.png \
UI/icons/texture-empty.png \
UI/icons/plus.png \
UI/icons/pencil-ruler.png \
UI/icons/minus.png \
UI/icons/grid.png \
UI/icons/document-import.png \
UI/icons/disk.png \
UI/icons/cybervision.png \
UI/icons/cybervision.ico \
UI/icons/border-draw.png \
UI/icons/arrow-move.png \
UI/icons/arrow-circle.png \
UI/icons/application-task.png \
UI/icons/cybervision-large.png \
UI/icons/pictures-stack.png \
UI/icons/magnifier--pencil.png \
UI/icons/texture-right.png \
UI/icons/texture-left.png \
UI/icons/texture-empty.png \
UI/icons/plus.png \
UI/icons/pencil-ruler.png \
UI/icons/minus.png \
UI/icons/grid.png \
UI/icons/document-import.png \
UI/icons/disk.png \
UI/icons/cybervision.png \
UI/icons/cybervision.ico \
UI/icons/border-draw.png \
UI/icons/arrow-move.png \
UI/icons/arrow-circle.png \
UI/icons/application-task.png \
UI/icons/cybervision-large.png \
UI/icons/pictures-stack.png \
UI/icons/magnifier--pencil.png \
UI/icons/information.png

TRANSLATIONS = UI/translations/cybervision-app_ru.ts
Expand All @@ -120,7 +120,7 @@ DEPENDPATH += $$PWD/../libsiftfast
#CONFIG(debug, debug|release): DESTDIR = ../debug

equals(CYBERVISION_OPENCL, true){
DEFINES += CYBERVISION_OPENCL
DEFINES += CYBERVISION_OPENCL
}

equals(CYBERVISION_DEMO, true){
Expand All @@ -138,26 +138,23 @@ win32-g++ {

equals(CYBERVISION_SSE, true): QMAKE_CXXFLAGS += -msse3

equals(CYBERVISION_OPENCL, true){
equals(CYBERVISION_OPENCL, true){
LIBS += -lOpenCL
}

#QMAKE_CXXFLAGS += -U_WIN32
#QMAKE_CFLAGS += -U_WIN32
}
}

win32-msvc* {
INCLUDEPATH += $$quote(C:/QtSDK/MSVC-Libs/include)
INCLUDEPATH += $$quote(C:/QtSDK/MSVC-Libs/include)

QMAKE_CXXFLAGS_RELEASE += /O2
equals(CYBERVISION_OPENMP,true): QMAKE_CXXFLAGS += /openmp

equals(CYBERVISION_SSE, true): QMAKE_CXXFLAGS += /arch:SSE2

equals(CYBERVISION_OPENCL, true){
QMAKE_LIBDIR += $$quote(C:/QtSDK/MSVC-Libs/lib/x86)
LIBS += -lOpenCL
}
equals(CYBERVISION_OPENCL, true){
QMAKE_LIBDIR += $$quote(C:/QtSDK/MSVC-Libs/lib/x86)
LIBS += -lOpenCL
}
}
unix {
equals(CYBERVISION_OPENMP,true){
Expand All @@ -167,10 +164,10 @@ unix {

equals(CYBERVISION_SSE, true): QMAKE_CXXFLAGS += -msse3

equals(CYBERVISION_OPENCL, true){
equals(CYBERVISION_OPENCL, true){
INCLUDEPATH += /opt/AMDAPP/include
LIBS += -L/opt/AMDAPP/lib/x86_64 -lOpenCL -lGLU
}
LIBS += -L/opt/AMDAPP/lib/x86_64 -lOpenCL -lGLU
}
}

win32-msvc*:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libsiftfast/release -lsiftfast$${CYBERVISION_SUFFIX}
Expand Down
2 changes: 1 addition & 1 deletion cybervision/cybervision-app/main.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include <QtGui/QApplication>
#include <QtWidgets/QApplication>
#include "UI/mainwindow.h"
#include <QTranslator>

Expand Down
14 changes: 0 additions & 14 deletions cybervision/libsiftfast/SIFT/libsiftfast.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,20 +124,6 @@ inline vec_float4 atan2f4( vec_float4 y, vec_float4 x );

#endif

inline u64 GetMicroTime()
{
#ifdef _WIN32
LARGE_INTEGER count, freq;
QueryPerformanceCounter(&count);
QueryPerformanceFrequency(&freq);
return (count.QuadPart * 1000000) / freq.QuadPart;
#else
struct timeval t;
gettimeofday(&t, NULL);
return (u64)t.tv_sec*1000000+t.tv_usec;
#endif
}

// aligned malloc and free
inline void* sift_aligned_malloc(size_t size, size_t align)
{
Expand Down
3 changes: 1 addition & 2 deletions cybervision/libsiftfast/libsiftfast.pro
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ win32-g++ {
LIBS += -lgomp -lpthread
}
equals(CYBERVISION_SSE, true): QMAKE_CXXFLAGS += -msse3
QMAKE_CXXFLAGS += -U_WIN32
QMAKE_CFLAGS += -U_WIN32
QMAKE_CXXFLAGS += -mstackrealign
}
win32-msvc* {
DEFINES += DLL_EXPORTS
Expand Down
3 changes: 3 additions & 0 deletions git-compact.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
"C:\Program Files (x86)\Git\bin\sh.exe" -login -i -c "git gc --prune=now --aggressive"
"C:\Program Files (x86)\Git\bin\sh.exe" -login -i -c "git reflog expire --all"
pause

0 comments on commit 959e2c7

Please sign in to comment.