diff --git a/CMakeLists.txt b/CMakeLists.txt index 0c10fa4baf..2451ab240a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ if (WIN32) elseif (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic") #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unknown-pragmas") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fno-strict-aliasing") endif(WIN32) if (NOT QT_CMAKE_PREFIX_PATH) diff --git a/interface/src/devices/DeviceTracker.cpp b/interface/src/devices/DeviceTracker.cpp index 54e86dfc4c..da4abe6c45 100644 --- a/interface/src/devices/DeviceTracker.cpp +++ b/interface/src/devices/DeviceTracker.cpp @@ -13,7 +13,8 @@ DeviceTracker::SingletonData::~SingletonData() { // Destroy all the device registered - for (auto device = _devicesVector.begin(); device != _devicesVector.end(); device++) { + //TODO C++11 for (auto device = _devicesVector.begin(); device != _devicesVector.end(); device++) { + for (Vector::iterator device = _devicesVector.begin(); device != _devicesVector.end(); device++) { delete (*device); } } @@ -23,7 +24,8 @@ int DeviceTracker::getNumDevices() { } DeviceTracker::ID DeviceTracker::getDeviceID(const Name& name) { - auto deviceIt = Singleton::get()->_devicesMap.find(name); + //TODO C++11 auto deviceIt = Singleton::get()->_devicesMap.find(name); + Map::iterator deviceIt = Singleton::get()->_devicesMap.find(name); if (deviceIt != Singleton::get()->_devicesMap.end()) { return (*deviceIt).second; } else { @@ -36,7 +38,7 @@ DeviceTracker* DeviceTracker::getDevice(const Name& name) { } DeviceTracker* DeviceTracker::getDevice(DeviceTracker::ID deviceID) { - if ((deviceID >= 0) && deviceID < Singleton::get()->_devicesVector.size()) { + if ((deviceID >= 0) && (unsigned int(deviceID) < Singleton::get()->_devicesVector.size())) { return Singleton::get()->_devicesVector[ deviceID ]; } else { return NULL; @@ -57,7 +59,7 @@ DeviceTracker::ID DeviceTracker::registerDevice(const Name& name, DeviceTracker* // Good to register the device deviceID = Singleton::get()->_devicesVector.size(); - Singleton::get()->_devicesMap.insert(SingletonData::Map::value_type(name, deviceID)); + Singleton::get()->_devicesMap.insert(Map::value_type(name, deviceID)); Singleton::get()->_devicesVector.push_back(device); device->assignIDAndName(deviceID, name); @@ -65,7 +67,8 @@ DeviceTracker::ID DeviceTracker::registerDevice(const Name& name, DeviceTracker* } void DeviceTracker::updateAll() { - for (auto deviceIt = Singleton::get()->_devicesVector.begin(); deviceIt != Singleton::get()->_devicesVector.end(); deviceIt++) { + //TODO C++11 for (auto deviceIt = Singleton::get()->_devicesVector.begin(); deviceIt != Singleton::get()->_devicesVector.end(); deviceIt++) { + for (Vector::iterator deviceIt = Singleton::get()->_devicesVector.begin(); deviceIt != Singleton::get()->_devicesVector.end(); deviceIt++) { if ((*deviceIt)) (*deviceIt)->update(); } diff --git a/interface/src/devices/DeviceTracker.h b/interface/src/devices/DeviceTracker.h index 2f2fd33d48..2e0f69b371 100644 --- a/interface/src/devices/DeviceTracker.h +++ b/interface/src/devices/DeviceTracker.h @@ -100,9 +100,9 @@ private: // this call is used by the singleton when the device tracker is currently beeing registered and beeing assigned an ID void assignIDAndName( const ID id, const Name& name ) { _ID = id; _name = name; } + typedef std::vector< DeviceTracker* > Vector; + typedef std::map< Name, ID > Map; struct SingletonData { - typedef std::map< Name, ID > Map; - typedef std::vector< DeviceTracker* > Vector; Map _devicesMap; Vector _devicesVector; diff --git a/interface/src/devices/Leapmotion.cpp b/interface/src/devices/Leapmotion.cpp index 94df8c804d..9aaa49cdc2 100644 --- a/interface/src/devices/Leapmotion.cpp +++ b/interface/src/devices/Leapmotion.cpp @@ -136,7 +136,8 @@ void Leapmotion::update() { } // go through all the joints and increment their counter since last update - for (auto jointIt = _jointsArray.begin(); jointIt != _jointsArray.end(); jointIt++) { + // TODO C++11 for (auto jointIt = _jointsArray.begin(); jointIt != _jointsArray.end(); jointIt++) { + for (JointTracker::Vector::iterator jointIt = _jointsArray.begin(); jointIt != _jointsArray.end(); jointIt++) { (*jointIt).tickNewFrame(); } diff --git a/interface/src/devices/MotionTracker.cpp b/interface/src/devices/MotionTracker.cpp index 2765358774..5ab2f4a23e 100644 --- a/interface/src/devices/MotionTracker.cpp +++ b/interface/src/devices/MotionTracker.cpp @@ -65,7 +65,7 @@ MotionTracker::MotionTracker() : DeviceTracker() { _jointsArray.resize(1); - _jointsMap.insert(JointTracker::map::value_type(Semantic("Root"), 0)); + _jointsMap.insert(JointTracker::Map::value_type(Semantic("Root"), 0)); } MotionTracker::~MotionTracker() @@ -89,13 +89,14 @@ MotionTracker::Index MotionTracker::addJoint(const Semantic& semantic, Index par // All good then allocate the joint Index newIndex = _jointsArray.size(); _jointsArray.push_back(JointTracker(semantic, parent)); - _jointsMap.insert(JointTracker::map::value_type(semantic, newIndex)); + _jointsMap.insert(JointTracker::Map::value_type(semantic, newIndex)); return newIndex; } MotionTracker::Index MotionTracker::findJointIndex(const Semantic& semantic) const { - auto jointIt = _jointsMap.find(semantic); + // TODO C++11 auto jointIt = _jointsMap.find(semantic); + JointTracker::Map::const_iterator jointIt = _jointsMap.find(semantic); if (jointIt != _jointsMap.end()) return (*jointIt).second; return INVALID_SEMANTIC; @@ -105,7 +106,7 @@ void MotionTracker::updateAllAbsTransform() { _jointsArray[0].updateAbsFromLocTransform(0); // Because we know the hierarchy is stored from root down the branches let's just traverse and update - for (Index i = 1; i < _jointsArray.size(); i++) { + for (Index i = 1; unsigned int(i) < _jointsArray.size(); i++) { JointTracker* joint = _jointsArray.data() + i; joint->updateAbsFromLocTransform(_jointsArray.data() + joint->getParent()); } diff --git a/interface/src/devices/MotionTracker.h b/interface/src/devices/MotionTracker.h index 660c44c842..e99f94ad27 100644 --- a/interface/src/devices/MotionTracker.h +++ b/interface/src/devices/MotionTracker.h @@ -43,8 +43,8 @@ public: class JointTracker { public: - typedef std::vector< JointTracker > vector; - typedef std::map< Semantic, Index > map; + typedef std::vector< JointTracker > Vector; + typedef std::map< Semantic, Index > Map; JointTracker(); JointTracker(const JointTracker& tracker); @@ -84,8 +84,8 @@ public: /// Access a Joint from it's index. /// Index 0 is always the "Root". /// if the index is Invalid then returns NULL. - const JointTracker* getJointTracker(Index index) const { return ((index > 0) && (index < _jointsArray.size()) ? _jointsArray.data() + index : NULL); } - JointTracker* editJointTracker(Index index) { return ((index > 0) && (index < _jointsArray.size()) ? _jointsArray.data() + index : NULL); } + const JointTracker* getJointTracker(Index index) const { return ((index > 0) && (unsigned int(index) < _jointsArray.size()) ? _jointsArray.data() + index : NULL); } + JointTracker* editJointTracker(Index index) { return ((index > 0) && (unsigned int(index) < _jointsArray.size()) ? _jointsArray.data() + index : NULL); } /// From a semantic, find the Index of the Joint. /// \return the index of the mapped Joint or INVALID_SEMANTIC if the semantic is not knowned. @@ -95,8 +95,8 @@ protected: MotionTracker(); virtual ~MotionTracker(); - JointTracker::vector _jointsArray; - JointTracker::map _jointsMap; + JointTracker::Vector _jointsArray; + JointTracker::Map _jointsMap; /// Adding joint is only done from the specialized Motion Tracker, hence this function is protected. /// The hierarchy of joints must be created from the top down to the branches. diff --git a/interface/src/scripting/ControllerScriptingInterface.cpp b/interface/src/scripting/ControllerScriptingInterface.cpp index a5d30b3c31..8d6a9486d9 100644 --- a/interface/src/scripting/ControllerScriptingInterface.cpp +++ b/interface/src/scripting/ControllerScriptingInterface.cpp @@ -262,7 +262,9 @@ glm::vec2 ControllerScriptingInterface::getViewportDimensions() const { AbstractInputController* ControllerScriptingInterface::createInputController(const QString& deviceName, const QString& tracker) { // This is where we retreive the Device Tracker category and then the sub tracker within it - auto icIt = _inputControllers.find(0); + //TODO C++11 auto icIt = _inputControllers.find(0); + InputControllerMap::iterator icIt = _inputControllers.find(0); + if (icIt != _inputControllers.end()) { return (*icIt).second; } else { @@ -281,7 +283,7 @@ AbstractInputController* ControllerScriptingInterface::createInputController(con MotionTracker* motionTracker = dynamic_cast< MotionTracker* > (DeviceTracker::getDevice(deviceID)); if (motionTracker) { MotionTracker::Index trackerID = motionTracker->findJointIndex(tracker.toStdString()); - if (trackerID > 0) { + if (trackerID >= 0) { AbstractInputController* inputController = new InputController(deviceID, trackerID, this); _inputControllers.insert(InputControllerMap::value_type(inputController->getKey(), inputController)); @@ -296,7 +298,8 @@ AbstractInputController* ControllerScriptingInterface::createInputController(con } void ControllerScriptingInterface::updateInputControllers() { - for (auto it = _inputControllers.begin(); it != _inputControllers.end(); it++) { + //TODO C++11 for (auto it = _inputControllers.begin(); it != _inputControllers.end(); it++) { + for (InputControllerMap::iterator it = _inputControllers.begin(); it != _inputControllers.end(); it++) { (*it).second->update(); } } diff --git a/libraries/script-engine/src/ScriptEngine.cpp b/libraries/script-engine/src/ScriptEngine.cpp index dcabe70011..21fac94488 100644 --- a/libraries/script-engine/src/ScriptEngine.cpp +++ b/libraries/script-engine/src/ScriptEngine.cpp @@ -68,11 +68,11 @@ void injectorFromScriptValue(const QScriptValue &object, AudioInjector* &out) { out = qobject_cast(object.toQObject()); } -QScriptValue injectorToScriptValue_InputController(QScriptEngine *engine, AbstractInputController* const &in) { +QScriptValue injectorToScriptValueInputController(QScriptEngine *engine, AbstractInputController* const &in) { return engine->newQObject(in); } -void injectorFromScriptValue_InputController(const QScriptValue &object, AbstractInputController* &out) { +void injectorFromScriptValueInputController(const QScriptValue &object, AbstractInputController* &out) { out = qobject_cast(object.toQObject()); } @@ -263,7 +263,7 @@ void ScriptEngine::init() { _engine.globalObject().setProperty("LocalVoxels", localVoxelsValue); qScriptRegisterMetaType(&_engine, injectorToScriptValue, injectorFromScriptValue); - qScriptRegisterMetaType( &_engine, injectorToScriptValue_InputController, injectorFromScriptValue_InputController); + qScriptRegisterMetaType( &_engine, injectorToScriptValueInputController, injectorFromScriptValueInputController); qScriptRegisterMetaType(&_engine, animationDetailsToScriptValue, animationDetailsFromScriptValue);