1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
/*=========================================================================
Program: Image Guided Surgery Software Toolkit
Module: $RCSfile: igstkTubeObjectTest.cxx,v $
Language: C++
Date: $Date: 2008-02-11 01:41:51 $
Version: $Revision: 1.11 $
Copyright (c) ISC Insight Software Consortium. All rights reserved.
See IGSTKCopyright.txt or http://www.igstk.org/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)
//Warning about: identifier was truncated to '255' characters in the
//debug information (MVC6.0 Debug)
#pragma warning( disable : 4786 )
#endif
#ifdef ConnectObjectToRepresentationMacro
#undef ConnectObjectToRepresentationMacro
#endif
#define ConnectObjectToRepresentationMacro( object, representation ) \
representation->RequestSetTubeObject( object );
#include "igstkTubeObject.h"
#include "igstkTubeObjectRepresentation.h"
#include "igstkSpatialObjectTestHelper.h"
int igstkTubeObjectTest( int, char * [] )
{
typedef igstk::TubeObject ObjectType;
typedef igstk::TubeObjectRepresentation RepresentationType;
typedef igstk::SpatialObjectTestHelper<
ObjectType, RepresentationType > TestHelperType;
//
// The helper constructor intializes all the elements needed for the test.
//
TestHelperType testHelper;
ObjectType * object = testHelper.GetSpatialObject();
RepresentationType * representation = testHelper.GetRepresentation();
//
// Tests that are specific to this type of SpatialObject
//
//
// Test Set/GetRadius()
typedef igstk::TubeObject::PointType PointType;
typedef igstk::TubeObject::PointListType PointListType;
PointType p1;
p1.SetPosition(0,0,0);
p1.SetRadius(2);
object->AddPoint(p1);
PointType p2;
p2.SetPosition(10,10,10);
p2.SetRadius(10);
object->AddPoint(p2);
std::cout << "Testing the GetPoints() method: ";
PointListType points = object->GetPoints();
if(points.size() != 2)
{
std::cout << "GetPoints error : " << points.size() << " v.s 2"
<< std::endl;
return EXIT_FAILURE;
}
std::cout << "[PASSED]" << std::endl;
std::cout << "Testing GetNumberOfPoints: ";
unsigned int nPoints = object->GetNumberOfPoints();
if(nPoints != 2)
{
std::cout << "GetNumberOfPoints error : " << nPoints << " v.s 2"
<< std::endl;
return EXIT_FAILURE;
}
std::cout << "[PASSED]" << std::endl;
std::cout << "Testing GetPoint: ";
const PointType * pt = object->GetPoint(1);
if(!pt)
{
std::cout << "GetPoint error" << std::endl;
return EXIT_FAILURE;
}
const PointType * ptout = object->GetPoint(10);
if(ptout)
{
std::cout << "GetPoint error" << std::endl;
return EXIT_FAILURE;
}
if(pt->GetPosition()[0] != 10)
{
std::cout << "GetPoint error: Position is not valid" << std::endl;
return EXIT_FAILURE;
}
std::cout << "[PASSED]" << std::endl;
testHelper.TestRepresentationProperties();
testHelper.ExercisePrintSelf();
testHelper.TestTransform();
testHelper.ExerciseDisplay();
// Testing UpdateRepresentationFromGeometry. Changing the Spatial Object
// geometrical parameters should trigger an update in the representation
// class.
std::cout << "Testing set properties : ";
representation->SetColor(0.9,0.7,0.1);
representation->SetOpacity(0.8);
std::cout << representation << std::endl;
std::cout << object << std::endl;
std::cout << "[PASSED]" << std::endl;
std::cout << "Testing Clear(): ";
object->Clear();
if(object->GetNumberOfPoints()>0)
{
std::cerr << "Clear() [FAILED]" << std::endl;
return EXIT_FAILURE;
}
std::cout << "[PASSED]" << std::endl;
std::cout << "Test [DONE]" << std::endl;
testHelper.TestRepresentationCopy();
testHelper.ExerciseScreenShot();
return testHelper.GetFinalTestStatus();
}
|