Page MenuHomePhabricator

bug-18280-core-changes.txt

Authored By
maleike
Oct 7 2015, 3:17 PM
Size
5 KB
Referenced Files
None
Subscribers
None

bug-18280-core-changes.txt

diff --git a/Modules/Core/include/mitkDataNode.h b/Modules/Core/include/mitkDataNode.h
index 5a445f5..9f300b1 100644
--- a/Modules/Core/include/mitkDataNode.h
+++ b/Modules/Core/include/mitkDataNode.h
@@ -70,6 +70,7 @@ public:
typedef mitk::Geometry3D::Pointer Geometry3DPointer;
typedef std::vector< itk::SmartPointer< Mapper > > MapperVector;
typedef std::map<std::string, mitk::PropertyList::Pointer> MapOfPropertyLists;
+ typedef std::vector<MapOfPropertyLists::key_type> PropertyListKeyNames;
typedef std::set<std::string> GroupTagList;
/**
@@ -136,6 +137,14 @@ public:
virtual void CopyInformation(const itk::DataObject *data) override;
/**
+ * \brief The "names" used for (renderer-specific) PropertyLists in GetPropertyList(string).
+ *
+ * All possible values for the "renderer" parameters of
+ * the diverse GetProperty/List() methods.
+ */
+ PropertyListKeyNames GetPropertyListNames() const;
+
+ /**
* \brief Set the property (instance of BaseProperty) with key \a propertyKey in the PropertyList
* of the \a renderer (if NULL, use BaseRenderer-independent PropertyList). This is set-by-value.
*
diff --git a/Modules/Core/include/mitkGeometryData.h b/Modules/Core/include/mitkGeometryData.h
index 72022a8..01bc8d7 100644
--- a/Modules/Core/include/mitkGeometryData.h
+++ b/Modules/Core/include/mitkGeometryData.h
@@ -54,5 +54,16 @@ protected:
virtual ~GeometryData();
};
+/**
+* @brief Equal Compare two GeometryData objects for equality, returns true if found equal.
+* @ingroup MITKTestingAPI
+* @param rightHandSide GeometryData to compare.
+* @param leftHandSide GeometryData to compare.
+* @param eps Epsilon to use for floating point comparison. Most of the time mitk::eps will be sufficient.
+* @param verbose Flag indicating if the method should give a detailed console output.
+* @return True if every comparison is true, false in any other case.
+*/
+MITKCORE_EXPORT bool Equal( const mitk::GeometryData& leftHandSide, const mitk::GeometryData& rightHandSide, mitk::ScalarType eps, bool verbose);
+
} // namespace mitk
#endif /* MITKGEOMETRYDATA_H_HEADER_INCLUDED_C19C01E2 */
diff --git a/Modules/Core/src/DataManagement/mitkDataNode.cpp b/Modules/Core/src/DataManagement/mitkDataNode.cpp
index cd0912a..a090822 100644
--- a/Modules/Core/src/DataManagement/mitkDataNode.cpp
+++ b/Modules/Core/src/DataManagement/mitkDataNode.cpp
@@ -185,6 +185,17 @@ void mitk::DataNode::SetRequestedRegion( const itk::DataObject * /*data*/)
{
}
+mitk::DataNode::PropertyListKeyNames mitk::DataNode::GetPropertyListNames() const
+{
+ PropertyListKeyNames result;
+
+ for (auto entries : m_MapOfPropertyLists)
+ result.push_back( entries.first );
+
+ return result;
+}
+
+
void mitk::DataNode::CopyInformation(const itk::DataObject * /*data*/)
{
}
diff --git a/Modules/Core/src/DataManagement/mitkGeometryData.cpp b/Modules/Core/src/DataManagement/mitkGeometryData.cpp
index 0fb9352..921bae6 100644
--- a/Modules/Core/src/DataManagement/mitkGeometryData.cpp
+++ b/Modules/Core/src/DataManagement/mitkGeometryData.cpp
@@ -17,6 +17,7 @@ See LICENSE.txt or http://www.mitk.org for details.
#include "mitkGeometryData.h"
#include "mitkBaseProcess.h"
+#include "mitkTimeGeometry.h"
mitk::GeometryData::GeometryData()
{
@@ -60,5 +61,29 @@ void mitk::GeometryData::CopyInformation(const itk::DataObject *)
{
}
-
-
+bool mitk::Equal( const mitk::GeometryData& leftHandSide, const mitk::GeometryData& rightHandSide, mitk::ScalarType eps, bool verbose)
+{
+ unsigned int timeStepsLeft = leftHandSide.GetTimeGeometry()->CountTimeSteps();
+ unsigned int timeStepsRight = rightHandSide.GetTimeGeometry()->CountTimeSteps();
+
+ if (timeStepsLeft != timeStepsRight)
+ {
+ if (verbose)
+ {
+ MITK_INFO << "[( GeometryData::GetTimeGeometry )] number of time steps are not equal.";
+ MITK_INFO << "rightHandSide is " << timeStepsRight << " : leftHandSide is " << timeStepsLeft;
+ }
+ return false;
+ }
+
+ bool allEqual = true;
+
+ for (unsigned int t = 0; t < timeStepsLeft; ++t)
+ {
+ BaseGeometry* geomLeft = leftHandSide.GetGeometry(t);
+ BaseGeometry* geomRight = rightHandSide.GetGeometry(t);
+ allEqual &= mitk::Equal(*geomLeft, *geomRight, eps, verbose);
+ }
+
+ return allEqual; // valid with initial true for timestep count == 0
+}
diff --git a/Modules/Core/src/DataManagement/mitkLevelWindow.cpp b/Modules/Core/src/DataManagement/mitkLevelWindow.cpp
index 4085970..7280d53 100644
--- a/Modules/Core/src/DataManagement/mitkLevelWindow.cpp
+++ b/Modules/Core/src/DataManagement/mitkLevelWindow.cpp
@@ -423,17 +423,16 @@ bool mitk::LevelWindow::IsFixed() const
return m_Fixed;
}
-bool mitk::LevelWindow::operator==(const mitk::LevelWindow& levWin) const
+bool mitk::LevelWindow::operator==(const mitk::LevelWindow& other) const
{
- if ( m_RangeMin == levWin.GetRangeMin() &&
- m_RangeMax == levWin.GetRangeMax() &&
- m_LowerWindowBound == levWin.GetLowerWindowBound() && m_UpperWindowBound == levWin.GetUpperWindowBound() &&
- m_DefaultLowerBound == levWin.GetDefaultLowerBound() && m_DefaultUpperBound == levWin.GetDefaultUpperBound() && m_Fixed == levWin.IsFixed() ) {
- return true;
- }
- else {
- return false;
- }
+ return
+ mitk::Equal(this->m_RangeMin, other.m_RangeMin, mitk::sqrteps)
+ && mitk::Equal(this->m_RangeMax, other.m_RangeMax, mitk::sqrteps)
+ && mitk::Equal(this->m_LowerWindowBound, other.m_LowerWindowBound, mitk::sqrteps)
+ && mitk::Equal(this->m_UpperWindowBound, other.m_UpperWindowBound, mitk::sqrteps)
+ && mitk::Equal(this->m_DefaultLowerBound, other.m_DefaultLowerBound, mitk::sqrteps)
+ && mitk::Equal(this->m_DefaultUpperBound, other.m_DefaultUpperBound, mitk::sqrteps)
+ && m_Fixed == other.m_Fixed;
}
bool mitk::LevelWindow::operator!=(const mitk::LevelWindow& levWin) const

File Metadata

Mime Type
text/plain
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1124
Default Alt Text
bug-18280-core-changes.txt (5 KB)

Event Timeline