mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
AppFwk: Added pdm field of cvf::Mat3d
This commit is contained in:
parent
eb258ee742
commit
72d4c0b51a
@ -36,11 +36,21 @@ add_library( ${PROJECT_NAME}
|
|||||||
cafPdmXmlMat4d.cpp
|
cafPdmXmlMat4d.cpp
|
||||||
cafPdmXmlMat4d.h
|
cafPdmXmlMat4d.h
|
||||||
cafPdmFieldCvfMat4d.h
|
cafPdmFieldCvfMat4d.h
|
||||||
|
|
||||||
|
cafPdmMat3d/cafPdmCoreMat3d.h
|
||||||
|
cafPdmMat3d/cafPdmUiCoreMat3d.h
|
||||||
|
cafPdmMat3d/cafPdmXmlMat3d.cpp
|
||||||
|
cafPdmMat3d/cafPdmXmlMat3d.h
|
||||||
|
cafPdmMat3d/cafPdmFieldCvfMat3d.h
|
||||||
|
|
||||||
|
${MOC_HEADER_FILES}
|
||||||
|
${MOC_SOURCE_FILES}
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(${PROJECT_NAME}
|
target_include_directories(${PROJECT_NAME}
|
||||||
PUBLIC
|
PUBLIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/cafPdmMat3d
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries ( ${PROJECT_NAME}
|
target_link_libraries ( ${PROJECT_NAME}
|
||||||
|
82
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmCoreMat3d.h
Normal file
82
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmCoreMat3d.h
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
//##################################################################################################
|
||||||
|
//
|
||||||
|
// Custom Visualization Core library
|
||||||
|
// Copyright (C) Ceetron Solutions AS
|
||||||
|
//
|
||||||
|
// This library may be used under the terms of either the GNU General Public License or
|
||||||
|
// the GNU Lesser General Public License as follows:
|
||||||
|
//
|
||||||
|
// GNU General Public License Usage
|
||||||
|
// This library 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.
|
||||||
|
//
|
||||||
|
// This library 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 <<http://www.gnu.org/licenses/gpl.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// GNU Lesser General Public License Usage
|
||||||
|
// This library is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
// the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This library 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 Lesser General Public License at <<http://www.gnu.org/licenses/lgpl-2.1.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
//##################################################################################################
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "cvfBase.h"
|
||||||
|
#include "cvfMatrix3.h"
|
||||||
|
|
||||||
|
#include "cafInternalPdmValueFieldSpecializations.h"
|
||||||
|
|
||||||
|
#include "cafPdmXmlMat3d.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace caf
|
||||||
|
{
|
||||||
|
|
||||||
|
template <>
|
||||||
|
class PdmValueFieldSpecialization < cvf::Mat3d >
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/// Convert the field value into a QVariant
|
||||||
|
static QVariant convert(const cvf::Mat3d& value)
|
||||||
|
{
|
||||||
|
QString str;
|
||||||
|
|
||||||
|
QTextStream textStream(&str);
|
||||||
|
textStream << value;
|
||||||
|
|
||||||
|
return QVariant(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Set the field value from a QVariant
|
||||||
|
static void setFromVariant(const QVariant& variantValue, cvf::Mat3d& value)
|
||||||
|
{
|
||||||
|
QString str = variantValue.toString();
|
||||||
|
|
||||||
|
QTextStream textStream(&str);
|
||||||
|
|
||||||
|
textStream >> value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool isEqual(const QVariant& variantValue, const QVariant& variantValue2)
|
||||||
|
{
|
||||||
|
return variantValue == variantValue2;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
} // end namespace caf
|
41
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmFieldCvfMat3d.h
Normal file
41
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmFieldCvfMat3d.h
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
//##################################################################################################
|
||||||
|
//
|
||||||
|
// Custom Visualization Core library
|
||||||
|
// Copyright (C) Ceetron Solutions AS
|
||||||
|
//
|
||||||
|
// This library may be used under the terms of either the GNU General Public License or
|
||||||
|
// the GNU Lesser General Public License as follows:
|
||||||
|
//
|
||||||
|
// GNU General Public License Usage
|
||||||
|
// This library 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.
|
||||||
|
//
|
||||||
|
// This library 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 <<http://www.gnu.org/licenses/gpl.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// GNU Lesser General Public License Usage
|
||||||
|
// This library is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
// the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This library 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 Lesser General Public License at <<http://www.gnu.org/licenses/lgpl-2.1.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
//##################################################################################################
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "cafPdmCoreMat3d.h"
|
||||||
|
#include "cafPdmXmlMat3d.h"
|
||||||
|
#include "cafPdmUiCoreMat3d.h"
|
85
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmUiCoreMat3d.h
Normal file
85
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmUiCoreMat3d.h
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
//##################################################################################################
|
||||||
|
//
|
||||||
|
// Custom Visualization Core library
|
||||||
|
// Copyright (C) Ceetron Solutions AS
|
||||||
|
//
|
||||||
|
// This library may be used under the terms of either the GNU General Public License or
|
||||||
|
// the GNU Lesser General Public License as follows:
|
||||||
|
//
|
||||||
|
// GNU General Public License Usage
|
||||||
|
// This library 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.
|
||||||
|
//
|
||||||
|
// This library 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 <<http://www.gnu.org/licenses/gpl.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// GNU Lesser General Public License Usage
|
||||||
|
// This library is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
// the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This library 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 Lesser General Public License at <<http://www.gnu.org/licenses/lgpl-2.1.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
//##################################################################################################
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "cafPdmCoreMat3d.h"
|
||||||
|
|
||||||
|
#include "cafInternalPdmValueFieldSpecializations.h"
|
||||||
|
#include "cafPdmUiFieldSpecialization.h"
|
||||||
|
#include "cafPdmUiItem.h"
|
||||||
|
|
||||||
|
#include "cvfBase.h"
|
||||||
|
#include "cvfMatrix3.h"
|
||||||
|
|
||||||
|
namespace caf
|
||||||
|
{
|
||||||
|
|
||||||
|
template <>
|
||||||
|
class PdmUiFieldSpecialization < cvf::Mat3d >
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/// Convert the field value into a QVariant
|
||||||
|
static QVariant convert(const cvf::Mat3d& value)
|
||||||
|
{
|
||||||
|
return PdmValueFieldSpecialization< cvf::Mat3d >::convert(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Set the field value from a QVariant
|
||||||
|
static void setFromVariant(const QVariant& variantValue, cvf::Mat3d& value)
|
||||||
|
{
|
||||||
|
PdmValueFieldSpecialization< cvf::Mat3d >::setFromVariant(variantValue, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool isDataElementEqual(const QVariant& variantValue, const QVariant& variantValue2)
|
||||||
|
{
|
||||||
|
return PdmValueFieldSpecialization< cvf::Mat3d >::isEqual(variantValue, variantValue2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Methods to get a list of options for a field, specialized for AppEnum
|
||||||
|
static QList<PdmOptionItemInfo> valueOptions(bool* useOptionsOnly, const cvf::Mat3d&)
|
||||||
|
{
|
||||||
|
return QList<PdmOptionItemInfo>();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Methods to retrieve the possible PdmObject pointed to by a field
|
||||||
|
static void childObjects(const PdmDataValueField< cvf::Mat3d >&, std::vector<PdmObjectHandle*>*)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
} // end namespace caf
|
||||||
|
|
70
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmXmlMat3d.cpp
Normal file
70
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmXmlMat3d.cpp
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
//##################################################################################################
|
||||||
|
//
|
||||||
|
// Custom Visualization Core library
|
||||||
|
// Copyright (C) Ceetron Solutions AS
|
||||||
|
//
|
||||||
|
// This library may be used under the terms of either the GNU General Public License or
|
||||||
|
// the GNU Lesser General Public License as follows:
|
||||||
|
//
|
||||||
|
// GNU General Public License Usage
|
||||||
|
// This library 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.
|
||||||
|
//
|
||||||
|
// This library 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 <<http://www.gnu.org/licenses/gpl.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// GNU Lesser General Public License Usage
|
||||||
|
// This library is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
// the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This library 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 Lesser General Public License at <<http://www.gnu.org/licenses/lgpl-2.1.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
//##################################################################################################
|
||||||
|
|
||||||
|
#include "cafPdmXmlMat3d.h"
|
||||||
|
|
||||||
|
#include <QTextStream>
|
||||||
|
|
||||||
|
QTextStream& operator >> (QTextStream& str, cvf::Mat3d& value)
|
||||||
|
{
|
||||||
|
for (int r = 0; r < 3; ++r)
|
||||||
|
{
|
||||||
|
for (int c = 0; c < 3; ++c)
|
||||||
|
{
|
||||||
|
str >> value(r, c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTextStream& operator << (QTextStream& str, const cvf::Mat3d& value)
|
||||||
|
{
|
||||||
|
for (int r = 0; r < 3; ++r)
|
||||||
|
{
|
||||||
|
for (int c = 0; c < 3; ++c)
|
||||||
|
{
|
||||||
|
str << value(r, c);
|
||||||
|
|
||||||
|
if (r * c < 9)
|
||||||
|
{
|
||||||
|
str << " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return str;
|
||||||
|
}
|
45
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmXmlMat3d.h
Normal file
45
Fwk/AppFwk/cafPdmCvf/cafPdmMat3d/cafPdmXmlMat3d.h
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
//##################################################################################################
|
||||||
|
//
|
||||||
|
// Custom Visualization Core library
|
||||||
|
// Copyright (C) Ceetron Solutions AS
|
||||||
|
//
|
||||||
|
// This library may be used under the terms of either the GNU General Public License or
|
||||||
|
// the GNU Lesser General Public License as follows:
|
||||||
|
//
|
||||||
|
// GNU General Public License Usage
|
||||||
|
// This library 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.
|
||||||
|
//
|
||||||
|
// This library 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 <<http://www.gnu.org/licenses/gpl.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
// GNU Lesser General Public License Usage
|
||||||
|
// This library is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
|
// the Free Software Foundation; either version 2.1 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This library 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 Lesser General Public License at <<http://www.gnu.org/licenses/lgpl-2.1.html>>
|
||||||
|
// for more details.
|
||||||
|
//
|
||||||
|
//##################################################################################################
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "cvfBase.h"
|
||||||
|
#include "cvfMatrix3.h"
|
||||||
|
|
||||||
|
class QTextStream;
|
||||||
|
|
||||||
|
QTextStream& operator >> (QTextStream& str, cvf::Mat3d& value);
|
||||||
|
QTextStream& operator << (QTextStream& str, const cvf::Mat3d& value);
|
Loading…
Reference in New Issue
Block a user