From a32ebe4dff2681c4569a0ae4a6616d023aaa4994 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Tue, 15 Jan 2019 13:32:57 +0100 Subject: [PATCH] #3948 HoloLens : Add labels --- .../RicHoloLensExportImpl.cpp | 24 ++++++++++++++++++- .../HoloLensCommands/RicHoloLensExportImpl.h | 1 + .../HoloLensCommands/VdeVizDataExtractor.cpp | 3 +++ .../RivTextLabelSourceInfo.cpp | 6 ++--- .../RivTextLabelSourceInfo.h | 6 ++--- 5 files changed, 33 insertions(+), 7 deletions(-) diff --git a/ApplicationCode/Commands/HoloLensCommands/RicHoloLensExportImpl.cpp b/ApplicationCode/Commands/HoloLensCommands/RicHoloLensExportImpl.cpp index ac9c51f03a..6bde25c30d 100644 --- a/ApplicationCode/Commands/HoloLensCommands/RicHoloLensExportImpl.cpp +++ b/ApplicationCode/Commands/HoloLensCommands/RicHoloLensExportImpl.cpp @@ -38,15 +38,16 @@ #include "RivMeshLinesSourceInfo.h" #include "RivSimWellPipeSourceInfo.h" #include "RivSourceInfo.h" +#include "RivTextLabelSourceInfo.h" #include "RivWellPathSourceInfo.h" #include "cafEffectGenerator.h" #include "cvfPart.h" #include "cvfRenderState.h" -#include "cvfRenderState_FF.h" #include "cvfRenderStateCullFace.h" #include "cvfRenderStateTextureBindings.h" +#include "cvfRenderState_FF.h" #include "cvfTexture.h" #include "cvfTexture2D_FF.h" @@ -213,6 +214,27 @@ std::vector RicHoloLensExportImpl::partsForExport(const RimGridVi return exportParts; } +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +std::vector> RicHoloLensExportImpl::labelsForExport(const RimGridView& view) +{ + std::vector> labelAndPositions; + + auto visibleParts = view.viewer()->visibleParts(); + + for (auto& visiblePart : visibleParts) + { + const RivTextLabelSourceInfo* textLabel = dynamic_cast(visiblePart->sourceInfo()); + if (textLabel) + { + labelAndPositions.push_back(std::make_pair(textLabel->textPositionDisplayCoord(), textLabel->text())); + } + } + + return labelAndPositions; +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/Commands/HoloLensCommands/RicHoloLensExportImpl.h b/ApplicationCode/Commands/HoloLensCommands/RicHoloLensExportImpl.h index a8973e7e9d..ee928b1ced 100644 --- a/ApplicationCode/Commands/HoloLensCommands/RicHoloLensExportImpl.h +++ b/ApplicationCode/Commands/HoloLensCommands/RicHoloLensExportImpl.h @@ -40,6 +40,7 @@ class RicHoloLensExportImpl { public: static std::vector partsForExport(const RimGridView& view); + static std::vector> labelsForExport(const RimGridView& view); private: static void appendTextureImage(VdeExportPart& exportPart, cvf::Part* part); diff --git a/ApplicationCode/Commands/HoloLensCommands/VdeVizDataExtractor.cpp b/ApplicationCode/Commands/HoloLensCommands/VdeVizDataExtractor.cpp index 85a5708efb..122dff2b11 100644 --- a/ApplicationCode/Commands/HoloLensCommands/VdeVizDataExtractor.cpp +++ b/ApplicationCode/Commands/HoloLensCommands/VdeVizDataExtractor.cpp @@ -63,6 +63,9 @@ void VdeVizDataExtractor::extractViewContents(QString* modelMetaJsonStr, std::ve // First extract the parts (cvfPart + info) to be exported from from the ResInsight view const std::vector exportPartsArr = RicHoloLensExportImpl::partsForExport(m_view); + // TODO: Convert this into JSON data + const std::vector> labelAndPositions = RicHoloLensExportImpl::labelsForExport(m_view); + // Convert this to an array of export ready meshes const std::vector > meshArr = buildMeshArray(exportPartsArr); const int buildMeshes_ms = static_cast(tim.lapTime()*1000); diff --git a/ApplicationCode/ModelVisualization/RivTextLabelSourceInfo.cpp b/ApplicationCode/ModelVisualization/RivTextLabelSourceInfo.cpp index 99ffc86e87..6e3d6b1e14 100644 --- a/ApplicationCode/ModelVisualization/RivTextLabelSourceInfo.cpp +++ b/ApplicationCode/ModelVisualization/RivTextLabelSourceInfo.cpp @@ -24,7 +24,7 @@ RivTextLabelSourceInfo::RivTextLabelSourceInfo(caf::PdmObject* pdmObject, const cvf::String& text, const cvf::Vec3f& position) : RivObjectSourceInfo(pdmObject) , m_text(text) - , m_position(position) + , m_positionDisplayCoord(position) { } @@ -40,7 +40,7 @@ cvf::String RivTextLabelSourceInfo::text() const //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -cvf::Vec3f RivTextLabelSourceInfo::textPosition() const +cvf::Vec3f RivTextLabelSourceInfo::textPositionDisplayCoord() const { - return m_position; + return m_positionDisplayCoord; } diff --git a/ApplicationCode/ModelVisualization/RivTextLabelSourceInfo.h b/ApplicationCode/ModelVisualization/RivTextLabelSourceInfo.h index 8aa180882c..9d5c338c1a 100644 --- a/ApplicationCode/ModelVisualization/RivTextLabelSourceInfo.h +++ b/ApplicationCode/ModelVisualization/RivTextLabelSourceInfo.h @@ -33,12 +33,12 @@ class RivTextLabelSourceInfo : public RivObjectSourceInfo { public: - explicit RivTextLabelSourceInfo(caf::PdmObject* pdmObject, const cvf::String& text, const cvf::Vec3f& position); + explicit RivTextLabelSourceInfo(caf::PdmObject* pdmObject, const cvf::String& text, const cvf::Vec3f& positionDisplayCoord); cvf::String text() const; - cvf::Vec3f textPosition() const; + cvf::Vec3f textPositionDisplayCoord() const; private: cvf::String m_text; - cvf::Vec3f m_position; + cvf::Vec3f m_positionDisplayCoord; };