diff --git a/ApplicationCode/ReservoirDataModel/CMakeLists_files.cmake b/ApplicationCode/ReservoirDataModel/CMakeLists_files.cmake index fb9614f179..66f639fd08 100644 --- a/ApplicationCode/ReservoirDataModel/CMakeLists_files.cmake +++ b/ApplicationCode/ReservoirDataModel/CMakeLists_files.cmake @@ -10,6 +10,7 @@ ${CEE_CURRENT_LIST_DIR}RigCell.h ${CEE_CURRENT_LIST_DIR}RigCaseData.h ${CEE_CURRENT_LIST_DIR}RigGridBase.h ${CEE_CURRENT_LIST_DIR}RigGridManager.h +${CEE_CURRENT_LIST_DIR}RigResultAccessObject.h ${CEE_CURRENT_LIST_DIR}RigResultAccessObjectFactory.h ${CEE_CURRENT_LIST_DIR}RigLocalGrid.h ${CEE_CURRENT_LIST_DIR}RigMainGrid.h @@ -30,6 +31,7 @@ ${CEE_CURRENT_LIST_DIR}RigCell.cpp ${CEE_CURRENT_LIST_DIR}RigCaseData.cpp ${CEE_CURRENT_LIST_DIR}RigGridBase.cpp ${CEE_CURRENT_LIST_DIR}RigGridManager.cpp +${CEE_CURRENT_LIST_DIR}RigResultAccessObject.cpp ${CEE_CURRENT_LIST_DIR}RigResultAccessObjectFactory.cpp ${CEE_CURRENT_LIST_DIR}RigLocalGrid.cpp ${CEE_CURRENT_LIST_DIR}RigMainGrid.cpp diff --git a/ApplicationCode/ReservoirDataModel/RigResultAccessObject.cpp b/ApplicationCode/ReservoirDataModel/RigResultAccessObject.cpp new file mode 100644 index 0000000000..6d732c7309 --- /dev/null +++ b/ApplicationCode/ReservoirDataModel/RigResultAccessObject.cpp @@ -0,0 +1,19 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2011-2012 Statoil ASA, Ceetron AS +// +// ResInsight is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. +// +// See the GNU General Public License at +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#include "RigResultAccessObject.h" diff --git a/ApplicationCode/ReservoirDataModel/RigResultAccessObject.h b/ApplicationCode/ReservoirDataModel/RigResultAccessObject.h new file mode 100644 index 0000000000..021efe6846 --- /dev/null +++ b/ApplicationCode/ReservoirDataModel/RigResultAccessObject.h @@ -0,0 +1,75 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2011-2012 Statoil ASA, Ceetron AS +// +// ResInsight is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. +// +// See the GNU General Public License at +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#pragma once + +#include "cvfBase.h" +#include "cvfObject.h" +#include "cvfStructGrid.h" + + +class RigResultAccessObject : public cvf::Object +{ +public: + virtual double cellScalar(size_t localCellIndex) const = 0; + virtual double cellFaceScalar(size_t localCellIndex, cvf::StructGridInterface::FaceType faceId) const = 0; + + virtual QString resultName() const = 0; + + virtual void setCellScalar(size_t cellIndex, double value) = 0; +}; + + +/* + +class CellFaceScalarDataAccess : public Object +{ +public: + virtual double cellFaceScalar(size_t cellIndex, cvf::StructGridInterface faceId) const = 0; +}; + +class PlainCellFaceScalarDataAccess : public CellFaceScalarDataAccess +{ +public: + PlainCellFaceScalarDataAccess() + { + cellEdgeDataAccessObjects.resize(6); + } + + void setDataAccessObjectForFace(cvf::StructGridInterface faceId, cvf::StructGridScalarDataAccess* dataAccessObject) + { + cellEdgeDataAccessObjects[faceId] = dataAccessObject; + } + + virtual double cellFaceScalar( size_t cellIndex, cvf::StructGridInterface faceId ) const + { + cvf::StructGridScalarDataAccess* dataAccessObj = cellEdgeDataAccessObjects[faceId]; + if (dataAccessObj != NULL) + { + return dataAccessObj->cellScalar(cellIndex); + } + + return HUGE_VAL; + } +private: + cvf::Collection cellEdgeDataAccessObjects; +}; + +*/