diff --git a/openVulkanoCpp/AR/ArFrame.hpp b/openVulkanoCpp/AR/ArFrame.hpp index d1dd99d..473c09c 100644 --- a/openVulkanoCpp/AR/ArFrame.hpp +++ b/openVulkanoCpp/AR/ArFrame.hpp @@ -33,6 +33,8 @@ namespace OpenVulkano::AR Math::Vector2ui resolution; uint32_t numChannels = 1; uint32_t rowPadding = 0; + + operator bool() const { return data; } }; class ArImagePlanar @@ -97,7 +99,7 @@ namespace OpenVulkano::AR ArDepthFormat format; Math::CameraIntrinsic intrinsic; - operator bool() const { return depth.data; } + operator bool() const { return depth; } }; class ArFrame : public std::enable_shared_from_this diff --git a/openVulkanoCpp/IO/Files/Pfm.hpp b/openVulkanoCpp/IO/Files/Pfm.hpp index ed3967b..addf58e 100644 --- a/openVulkanoCpp/IO/Files/Pfm.hpp +++ b/openVulkanoCpp/IO/Files/Pfm.hpp @@ -118,6 +118,8 @@ namespace OpenVulkano } } } + + operator bool() const { return image; } static PfmImage ReadImage(std::istream& inStream) { @@ -125,5 +127,20 @@ namespace OpenVulkano image.Read(inStream); return image; } + + static PfmImage TryReadImage(std::istream& inStream) + { + PfmImage image; + try + { + image.Read(inStream); + } + catch (const std::exception& e) + { + image.header.height = image.header.width = 0; + image.image = nullptr; + } + return image; + } }; -} \ No newline at end of file +} diff --git a/openVulkanoCpp/IO/Files/Pnm.hpp b/openVulkanoCpp/IO/Files/Pnm.hpp index 95ee297..904f772 100644 --- a/openVulkanoCpp/IO/Files/Pnm.hpp +++ b/openVulkanoCpp/IO/Files/Pnm.hpp @@ -150,6 +150,8 @@ namespace OpenVulkano image = std::make_unique(size); inStream.read(image.get(), size); } + + operator bool() const { return image; } static PnmImage ReadImage(std::istream& inStream) { @@ -157,5 +159,20 @@ namespace OpenVulkano image.Read(inStream); return image; } + + static PfmImage TryReadImage(std::istream& inStream) + { + PfmImage image; + try + { + image.Read(inStream); + } + catch (const std::exception& e) + { + image.header.height = image.header.width = 0; + image.image = nullptr; + } + return image; + } }; }