⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itkpolygonspatialobjecttest.cxx

📁 DTMK软件开发包,此为开源软件,是一款很好的医学图像开发资源.
💻 CXX
字号:
/*=========================================================================

Program:   Insight Segmentation & Registration Toolkit
Module:    $RCSfile: itkPolygonSpatialObjectTest.cxx,v $
Language:  C++
Date:      $Date: 2008-05-13 16:50:02 $
Version:   $Revision: 1.1 $

Copyright (c) Insight Software 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.

=========================================================================*/
#if defined(_MSC_VER)
#pragma warning ( disable : 4786 )
#endif

#include "itkPolygonSpatialObject.h"
#include <iostream>

int itkPolygonSpatialObjectTest(int, char *[])
{
  bool failed = false;
  typedef itk::PolygonSpatialObject<3>  PolygonType;

  //
  // create rectangle
  PolygonType::Pointer rectangle = PolygonType::New();  
  double d1[3] = {0.0, 0.0, 0.0};
  PolygonType::PointType p1(d1);
  double d2[3] = {2.0, 0.0, 0.0};  
  PolygonType::PointType p2(d2);
  double d3[3] = {2.0, 1.0, 0.0};  
  PolygonType::PointType p3(d3);
  double d4[3] = {0.0, 1.0, 0.0};  
  PolygonType::PointType p4(d4);
  rectangle->AddPoint(p1);
  rectangle->AddPoint(p2);
  rectangle->AddPoint(p3);
  rectangle->AddPoint(p4);
  rectangle->SetThickness(10);
    
  //
  // test number of points
  std::cout << "Testing number of points for rectangle: ";
  if (rectangle->GetNumberOfPoints() != 4)
    {
    std::cout << "[Failed]" << std::endl;
    failed = true;
    }
  else
    {
    std::cout << "[Passed]" << std::endl;
    }
  
  //
  // test area
  std::cout << "Testing area for rectangle: ";
  if (rectangle->MeasureArea() != 2.0)
    {
    std::cout << "[Failed]" << std::endl;
    failed = true;
    }
  else
    {
    std::cout << "[Passed]" << std::endl;
    }

  //
  // test volume
  std::cout << "Testing volume for rectangle: ";
  if (rectangle->MeasureVolume() != 20.0)
    {
    std::cout << "[Failed]" << std::endl;
    failed = true;
    }
  else
    {
    std::cout << "[Passed]" << std::endl;
    }
    
  //
  // test perimeter
  std::cout << "Testing perimeter for rectangle: ";
  if (rectangle->MeasurePerimeter() != 6.0)
    {
    std::cerr << "Wrong perimeter for rectangle" << std::endl;
    std::cout << "[Failed]" << std::endl;
    failed = true;
    }
  else
    {
    std::cout << "[Passed]" << std::endl;
    }

  //
  // test number of points
  std::cout << "Testing closest point for rectangle: ";
  double tp1[3] = {0.25, 0.0, 0.0};
  PolygonType::PointType testPoint1(tp1);
  PolygonType::PointType closestPoint = rectangle->ClosestPoint(testPoint1);
  if (closestPoint != p1)
    {
    std::cout << "[Failed]" << std::endl;
    failed = true;
    }
  else
    {
    std::cout << "[Passed]" << std::endl;
    }

  //
  // test number of points
  std::cout << "Testing closest point for rectangle (2): ";
  double tp2[3] = {0.25, 5.0, 5.0};
  PolygonType::PointType testPoint2(tp2);
  closestPoint = rectangle->ClosestPoint(testPoint2);
  if (closestPoint != p4)
    {
    std::cout << "[Failed]" << std::endl;
    failed = true;
    }
  else
    {
    std::cout << "[Passed]" << std::endl;
    }

  return failed ? EXIT_FAILURE : EXIT_SUCCESS;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -