From 80ae9afe4e5ce08d0e6d155240779edabff91ca9 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Tue, 30 Aug 2022 21:55:52 +0200 Subject: [PATCH 1/6] Add missing documentation. --- code/Common/Maybe.h | 79 +++++++++++++++++++++++++++++++++++++++------ code/Common/simd.h | 2 -- 2 files changed, 69 insertions(+), 12 deletions(-) diff --git a/code/Common/Maybe.h b/code/Common/Maybe.h index 3eb2e1d97..2b016e553 100644 --- a/code/Common/Maybe.h +++ b/code/Common/Maybe.h @@ -1,29 +1,88 @@ +/* +Open Asset Import Library (assimp) +---------------------------------------------------------------------- + +Copyright (c) 2006-2022, assimp team + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the +following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +---------------------------------------------------------------------- +*/ #pragma once + #include +namespace Assimp { + +/// @brief This class implements an optional type +/// @tparam T The type to store. template struct Maybe { -private: - T _val; - bool _valid; - -public: - Maybe() : - _valid(false) {} + /// @brief + Maybe() : _valid(false) {} + /// @brief + /// @param val explicit Maybe(const T &val) : - _val(val), _valid(true) { - } + _val(val), _valid(true) {} + /// @brief Validate the value + /// @return true if valid. operator bool() const { return _valid; } + /// @brief Will assign a value. + /// @param v The enw valid value. + void Set(T &v) { + ai_assert(!_valid); + + _valid = true; + _val = v; + } + + /// @brief Will return the value when it is valid. + /// @return The value. const T &Get() const { ai_assert(_valid); return _val; } -private: Maybe &operator&() = delete; + +private: + T _val; + bool _valid; }; + +} // namespace Assimp diff --git a/code/Common/simd.h b/code/Common/simd.h index 0a062a248..a1d936629 100644 --- a/code/Common/simd.h +++ b/code/Common/simd.h @@ -5,8 +5,6 @@ Open Asset Import Library (assimp) Copyright (c) 2006-2022, assimp team - - All rights reserved. Redistribution and use of this software in source and binary forms, From 362ff08855c7a2307ae38ad48c8d84fd7a353ab8 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Wed, 7 Sep 2022 21:25:46 +0200 Subject: [PATCH 2/6] Add doc + small unittest --- code/Common/Maybe.h | 3 ++- test/CMakeLists.txt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/Common/Maybe.h b/code/Common/Maybe.h index 2b016e553..769799c2c 100644 --- a/code/Common/Maybe.h +++ b/code/Common/Maybe.h @@ -63,7 +63,7 @@ struct Maybe { } /// @brief Will assign a value. - /// @param v The enw valid value. + /// @param v The new valid value. void Set(T &v) { ai_assert(!_valid); @@ -79,6 +79,7 @@ struct Maybe { } Maybe &operator&() = delete; + Maybe(const Maybe &) = delete; private: T _val; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5c87dabbe..87a5ebadb 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -89,6 +89,7 @@ SET( COMMON unit/utProfiler.cpp unit/utSharedPPData.cpp unit/utStringUtils.cpp + unit/Common/utMaybe.cpp unit/Common/utMesh.cpp unit/Common/utStandardShapes.cpp unit/Common/uiScene.cpp From 7116f46672cba31334597ab866e2e25ce69e1c40 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Wed, 7 Sep 2022 21:28:04 +0200 Subject: [PATCH 3/6] Add missing file --- test/unit/Common/utMaybe.cpp | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 test/unit/Common/utMaybe.cpp diff --git a/test/unit/Common/utMaybe.cpp b/test/unit/Common/utMaybe.cpp new file mode 100644 index 000000000..e934e62d9 --- /dev/null +++ b/test/unit/Common/utMaybe.cpp @@ -0,0 +1,54 @@ +/* +--------------------------------------------------------------------------- +Open Asset Import Library (assimp) +--------------------------------------------------------------------------- + +Copyright (c) 2006-2022, assimp team + +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the following +conditions are met: + +* Redistributions of source code must retain the above +copyright notice, this list of conditions and the +following disclaimer. + +* Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the +following disclaimer in the documentation and/or other +materials provided with the distribution. + +* Neither the name of the assimp team, nor the names of its +contributors may be used to endorse or promote products +derived from this software without specific prior +written permission of the assimp team. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +--------------------------------------------------------------------------- +*/ + +#include "UnitTestPCH.h" +#include "COmmon/Maybe.h" + +using namespace Assimp; + +class utMaybe : public ::testing::Test { + // empty +}; + +TEST_F(utMaybe, creationTest) { + Maybe first(1); + EXPECT_EQ(first.Get(), 1); +} From fff977c0b53cd4a8531ecb6a9a5d0bc9aa8cc9a4 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 8 Sep 2022 18:54:08 +0200 Subject: [PATCH 4/6] Fix review findings. --- code/Common/Maybe.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/Common/Maybe.h b/code/Common/Maybe.h index 769799c2c..190331bac 100644 --- a/code/Common/Maybe.h +++ b/code/Common/Maybe.h @@ -49,7 +49,7 @@ namespace Assimp { template struct Maybe { /// @brief - Maybe() : _valid(false) {} + Maybe() = default; /// @brief /// @param val @@ -82,7 +82,7 @@ struct Maybe { Maybe(const Maybe &) = delete; private: - T _val; + T _val = false; bool _valid; }; From 3af53a42aaff0121212167d89e0ae0cea5a8018e Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 8 Sep 2022 19:06:05 +0200 Subject: [PATCH 5/6] Fix typo --- code/Common/Maybe.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/Common/Maybe.h b/code/Common/Maybe.h index 190331bac..b23865b86 100644 --- a/code/Common/Maybe.h +++ b/code/Common/Maybe.h @@ -82,8 +82,8 @@ struct Maybe { Maybe(const Maybe &) = delete; private: - T _val = false; - bool _valid; + T _val; + bool _valid = false; }; } // namespace Assimp From 6a1a7c43cc7cf916b095d2f3a5d4e0d1cd057b1f Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Thu, 8 Sep 2022 19:32:42 +0200 Subject: [PATCH 6/6] Update utMaybe.cpp --- test/unit/Common/utMaybe.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/Common/utMaybe.cpp b/test/unit/Common/utMaybe.cpp index e934e62d9..9de300290 100644 --- a/test/unit/Common/utMaybe.cpp +++ b/test/unit/Common/utMaybe.cpp @@ -40,7 +40,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "UnitTestPCH.h" -#include "COmmon/Maybe.h" +#include "Common/Maybe.h" using namespace Assimp;