/*========================================================================= Program: Insight Segmentation & Registration Toolkit Module: $RCSfile: SnakeParameters.cxx,v $ Language: C++ Date: $Date: 2003/12/12 19:34:01 $ Version: $Revision: 1.6 $ Copyright (c) 2003 Insight Consortium. All rights reserved. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #include "SnakeParameters.h" SnakeParameters SnakeParameters ::GetDefaultEdgeParameters() { SnakeParameters p; p.m_AutomaticTimeStep = true; p.m_TimeStepFactor = 1.0f; p.m_Ground = 5.0; p.m_SnakeType = EDGE_SNAKE; p.m_Clamp = true; p.m_PropagationWeight = 1.0; p.m_PropagationSpeedExponent = 1; p.m_CurvatureWeight = 0.2; p.m_CurvatureSpeedExponent = 0; p.m_LaplacianWeight = 0.0f; p.m_LaplacianSpeedExponent = 0; p.m_AdvectionWeight = 0; p.m_AdvectionSpeedExponent = 0; p.m_Solver = PARALLEL_SPARSE_FIELD_SOLVER; return p; } SnakeParameters SnakeParameters ::GetDefaultInOutParameters() { SnakeParameters p; p.m_AutomaticTimeStep = true; p.m_TimeStepFactor = 1.0f; p.m_Ground = 5.0; p.m_SnakeType = REGION_SNAKE; p.m_Clamp = true; p.m_PropagationWeight = 1.0; p.m_PropagationSpeedExponent = 1; p.m_CurvatureWeight = 0.2; p.m_CurvatureSpeedExponent = -1; p.m_LaplacianWeight = 0.0f; p.m_LaplacianSpeedExponent = 0; p.m_AdvectionWeight = 0; p.m_AdvectionSpeedExponent = 0; p.m_Solver = PARALLEL_SPARSE_FIELD_SOLVER; return p; } SnakeParameters SnakeParameters ::GetDefaultAllZeroParameters() { SnakeParameters p; p.m_AutomaticTimeStep = true; p.m_TimeStepFactor = 0.1f; p.m_Ground = 5.0; p.m_SnakeType = REGION_SNAKE; p.m_Clamp = true; p.m_PropagationWeight = 0.0; p.m_PropagationSpeedExponent = 0; p.m_CurvatureWeight = 0.0; p.m_CurvatureSpeedExponent = -1; p.m_LaplacianWeight = 0.0f; p.m_LaplacianSpeedExponent = 0; p.m_AdvectionWeight = 0; p.m_AdvectionSpeedExponent = 0; p.m_Solver = PARALLEL_SPARSE_FIELD_SOLVER; return p; } bool SnakeParameters ::operator == (const SnakeParameters &p) const { return( m_AutomaticTimeStep == p.m_AutomaticTimeStep && (m_AutomaticTimeStep || (m_TimeStepFactor == p.m_TimeStepFactor)) && m_Ground == p.m_Ground && m_SnakeType == p.m_SnakeType && m_Clamp == p.m_Clamp && m_PropagationWeight == p.m_PropagationWeight && m_PropagationSpeedExponent == p.m_PropagationSpeedExponent && m_CurvatureWeight == p.m_CurvatureWeight && m_CurvatureSpeedExponent == p.m_CurvatureSpeedExponent && m_LaplacianWeight == p.m_LaplacianWeight && m_LaplacianSpeedExponent == p.m_LaplacianSpeedExponent && m_AdvectionWeight == p.m_AdvectionWeight && m_AdvectionSpeedExponent == p.m_AdvectionSpeedExponent && m_Solver == p.m_Solver); }