comparison OrthancStone/UnitTestsSources/TestStructureSet.cpp @ 1895:14c8f339d480

removed redundant definitions Point2D, Point3D and Vector3D from DicomStructureSetUtils.h
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 19 Jan 2022 14:51:55 +0100
parents 438071a29f77
children affde38b84de
comparison
equal deleted inserted replaced
1894:438071a29f77 1895:14c8f339d480
70 70
71 EXPECT_EQ(groundTruthItems, pointCount); 71 EXPECT_EQ(groundTruthItems, pointCount);
72 72
73 for (size_t i = 0; i < polygon.GetPointCount(); ++i) 73 for (size_t i = 0; i < polygon.GetPointCount(); ++i)
74 { 74 {
75 const Point3D& point = polygon.GetPoint(i); 75 const Vector& point = polygon.GetPoint(i);
76 76
77 // loop over X, Y then Z. 77 // loop over X, Y then Z.
78 for (size_t j = 0; j < 3; ++j) 78 for (size_t j = 0; j < 3; ++j)
79 { 79 {
80 size_t index = 3 * i + j; 80 size_t index = 3 * i + j;
242 #endif 242 #endif
243 243
244 #ifdef BGO_ENABLE_DICOMSTRUCTURESETLOADER2 244 #ifdef BGO_ENABLE_DICOMSTRUCTURESETLOADER2
245 245
246 static bool CutStructureWithPlane( 246 static bool CutStructureWithPlane(
247 std::vector< std::pair<Point2D, Point2D> >& segments, 247 std::vector< std::pair<ScenePoint2D, ScenePoint2D> >& segments,
248 const DicomStructure2& structure, 248 const DicomStructure2& structure,
249 const double originX, const double originY, const double originZ, 249 const double originX, const double originY, const double originZ,
250 const double axisX_X, const double axisX_Y, const double axisX_Z, 250 const double axisX_X, const double axisX_Y, const double axisX_Z,
251 const double axisY_X, const double axisY_Y, const double axisY_Z 251 const double axisY_X, const double axisY_Y, const double axisY_Z
252 ) 252 )
253 { 253 {
254 // create an AXIAL cutting plane, too far away from the volume 254 // create an AXIAL cutting plane, too far away from the volume
255 // (> sliceThickness/2) 255 // (> sliceThickness/2)
256 Point3D origin, axisX, axisY; 256 Vector origin, axisX, axisY;
257 LinearAlgebra::AssignVector(origin, originX, originY, originZ); 257 LinearAlgebra::AssignVector(origin, originX, originY, originZ);
258 LinearAlgebra::AssignVector(axisX, axisX_X, axisX_Y, axisX_Z); 258 LinearAlgebra::AssignVector(axisX, axisX_X, axisX_Y, axisX_Z);
259 LinearAlgebra::AssignVector(axisY, axisY_X, axisY_Y, axisY_Z); 259 LinearAlgebra::AssignVector(axisY, axisY_X, axisY_Y, axisY_Z);
260 CoordinateSystem3D cuttingPlane(origin, axisX, axisY); 260 CoordinateSystem3D cuttingPlane(origin, axisX, axisY);
261 261
284 for (size_t slice = 0; slice < 3; ++slice) 284 for (size_t slice = 0; slice < 3; ++slice)
285 { 285 {
286 DicomStructurePolygon2 polygon("Oblomptu", "CLOSED_PLANAR"); 286 DicomStructurePolygon2 polygon("Oblomptu", "CLOSED_PLANAR");
287 for (size_t ip = 0; ip < pointsCoord1Count; ++ip) 287 for (size_t ip = 0; ip < pointsCoord1Count; ++ip)
288 { 288 {
289 Point3D pt; 289 Vector pt;
290 double pt0 = pointsCoord1[ip]; 290 double pt0 = pointsCoord1[ip];
291 double pt1 = pointsCoord2[ip]; 291 double pt1 = pointsCoord2[ip];
292 double pt2 = 4 * (static_cast<double>(slice) - 1); // -4, 0, 4 292 double pt2 = 4 * (static_cast<double>(slice) - 1); // -4, 0, 4
293 LinearAlgebra::AssignVector(pt, pt0, pt1, pt2); 293 LinearAlgebra::AssignVector(pt, pt0, pt1, pt2);
294 polygon.AddPoint(pt); 294 polygon.AddPoint(pt);
301 301
302 TEST(StructureSet2, CutAxialOutsideTop) 302 TEST(StructureSet2, CutAxialOutsideTop)
303 { 303 {
304 DicomStructure2 structure; 304 DicomStructure2 structure;
305 CreateBasicStructure(structure); 305 CreateBasicStructure(structure);
306 std::vector< std::pair<Point2D, Point2D> > segments; 306 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
307 307
308 // create an AXIAL cutting plane, too far away from the volume 308 // create an AXIAL cutting plane, too far away from the volume
309 // (> sliceThickness/2) 309 // (> sliceThickness/2)
310 bool ok = CutStructureWithPlane(segments, structure, 310 bool ok = CutStructureWithPlane(segments, structure,
311 0, 0, 7, 311 0, 0, 7,
317 317
318 TEST(StructureSet2, CutAxialOutsideBottom) 318 TEST(StructureSet2, CutAxialOutsideBottom)
319 { 319 {
320 DicomStructure2 structure; 320 DicomStructure2 structure;
321 CreateBasicStructure(structure); 321 CreateBasicStructure(structure);
322 std::vector< std::pair<Point2D, Point2D> > segments; 322 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
323 323
324 // create an AXIAL cutting plane, too far away from the volume 324 // create an AXIAL cutting plane, too far away from the volume
325 // (> sliceThickness/2) 325 // (> sliceThickness/2)
326 bool ok = CutStructureWithPlane(segments, structure, 326 bool ok = CutStructureWithPlane(segments, structure,
327 0, 0, -6.66, 327 0, 0, -6.66,
332 332
333 TEST(StructureSet2, CutAxialInsideClose) 333 TEST(StructureSet2, CutAxialInsideClose)
334 { 334 {
335 DicomStructure2 structure; 335 DicomStructure2 structure;
336 CreateBasicStructure(structure); 336 CreateBasicStructure(structure);
337 std::vector< std::pair<Point2D, Point2D> > segments; 337 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
338 338
339 // create an AXIAL cutting plane in the volume 339 // create an AXIAL cutting plane in the volume
340 bool ok = CutStructureWithPlane(segments, structure, 340 bool ok = CutStructureWithPlane(segments, structure,
341 0, 0, 1.1, 341 0, 0, 1.1,
342 1, 0, 0, 342 1, 0, 0,
347 for (size_t i = 0; i < segments.size(); ++i) 347 for (size_t i = 0; i < segments.size(); ++i)
348 { 348 {
349 EXPECT_LT(i, POLYGON_POINT_COUNT); 349 EXPECT_LT(i, POLYGON_POINT_COUNT);
350 EXPECT_LT(i, POLYGON_POINT_COUNT); 350 EXPECT_LT(i, POLYGON_POINT_COUNT);
351 351
352 const Point2D& pt = segments[i].first; 352 const ScenePoint2D& pt = segments[i].first;
353 353
354 // ...should be at the same location as the 3D coords since the plane 354 // ...should be at the same location as the 3D coords since the plane
355 // is rooted at 0,0,0 with normal 0,0,1 355 // is rooted at 0,0,0 with normal 0,0,1
356 EXPECT_NEAR(pt.x, pointsCoord1[i], DELTA_MAX); 356 EXPECT_NEAR(pt.GetX(), pointsCoord1[i], DELTA_MAX);
357 EXPECT_NEAR(pt.y, pointsCoord2[i], DELTA_MAX); 357 EXPECT_NEAR(pt.GetY(), pointsCoord2[i], DELTA_MAX);
358 } 358 }
359 } 359 }
360 360
361 361
362 TEST(StructureSet2, CutAxialInsideFar) 362 TEST(StructureSet2, CutAxialInsideFar)
363 { 363 {
364 DicomStructure2 structure; 364 DicomStructure2 structure;
365 CreateBasicStructure(structure); 365 CreateBasicStructure(structure);
366 std::vector< std::pair<Point2D, Point2D> > segments; 366 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
367 367
368 // create an AXIAL cutting plane 368 // create an AXIAL cutting plane
369 Point3D origin, axisX, axisY; 369 Vector origin, axisX, axisY;
370 LinearAlgebra::AssignVector(origin, 0, 0, 0); 370 LinearAlgebra::AssignVector(origin, 0, 0, 0);
371 LinearAlgebra::AssignVector(axisX, 1, 0, 0); 371 LinearAlgebra::AssignVector(axisX, 1, 0, 0);
372 LinearAlgebra::AssignVector(axisY, 0, 1, 0); 372 LinearAlgebra::AssignVector(axisY, 0, 1, 0);
373 CoordinateSystem3D cuttingPlane(origin, axisX, axisY); 373 CoordinateSystem3D cuttingPlane(origin, axisX, axisY);
374 374
381 { 381 {
382 EXPECT_LT(i, pointsCoord1Count); 382 EXPECT_LT(i, pointsCoord1Count);
383 EXPECT_LT(i, pointsCoord2Count); 383 EXPECT_LT(i, pointsCoord2Count);
384 384
385 // the 2D points of the projected polygon 385 // the 2D points of the projected polygon
386 const Point2D& pt = segments[i].first; 386 const ScenePoint2D& pt = segments[i].first;
387 387
388 // ...should be at the same location as the 3D coords since the plane 388 // ...should be at the same location as the 3D coords since the plane
389 // is rooted at 0,0,0 with normal 0,0,1 389 // is rooted at 0,0,0 with normal 0,0,1
390 EXPECT_NEAR(pt.x, pointsCoord1[i], DELTA_MAX); 390 EXPECT_NEAR(pt.GetX(), pointsCoord1[i], DELTA_MAX);
391 EXPECT_NEAR(pt.y, pointsCoord2[i], DELTA_MAX); 391 EXPECT_NEAR(pt.GetY(), pointsCoord2[i], DELTA_MAX);
392 } 392 }
393 } 393 }
394 394
395 TEST(StructureSet2, CutCoronalOutsideClose) 395 TEST(StructureSet2, CutCoronalOutsideClose)
396 { 396 {
397 DicomStructure2 structure; 397 DicomStructure2 structure;
398 CreateBasicStructure(structure); 398 CreateBasicStructure(structure);
399 std::vector< std::pair<Point2D, Point2D> > segments; 399 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
400 400
401 // create an X,Z cutting plane, outside of the volume 401 // create an X,Z cutting plane, outside of the volume
402 Point3D origin, axisX, axisY; 402 Vector origin, axisX, axisY;
403 LinearAlgebra::AssignVector(origin, 0, 0, 0); 403 LinearAlgebra::AssignVector(origin, 0, 0, 0);
404 LinearAlgebra::AssignVector(axisX, 1, 0, 0); 404 LinearAlgebra::AssignVector(axisX, 1, 0, 0);
405 LinearAlgebra::AssignVector(axisY, 0, 0, 1); 405 LinearAlgebra::AssignVector(axisY, 0, 0, 1);
406 CoordinateSystem3D cuttingPlane(origin, axisX, axisY); 406 CoordinateSystem3D cuttingPlane(origin, axisX, axisY);
407 407
414 { 414 {
415 DicomStructure2 structure; 415 DicomStructure2 structure;
416 CreateBasicStructure(structure); 416 CreateBasicStructure(structure);
417 417
418 // create an X,Z cutting plane, outside of the volume 418 // create an X,Z cutting plane, outside of the volume
419 Point3D origin, axisX, axisY; 419 Vector origin, axisX, axisY;
420 LinearAlgebra::AssignVector(origin, 0, 3, 0); 420 LinearAlgebra::AssignVector(origin, 0, 3, 0);
421 LinearAlgebra::AssignVector(axisX, 1, 0, 0); 421 LinearAlgebra::AssignVector(axisX, 1, 0, 0);
422 LinearAlgebra::AssignVector(axisY, 0, 0, 1); 422 LinearAlgebra::AssignVector(axisY, 0, 0, 1);
423 CoordinateSystem3D cuttingPlane(origin, axisX, axisY); 423 CoordinateSystem3D cuttingPlane(origin, axisX, axisY);
424 424
430 430
431 const DicomStructurePolygon2& topSlab = structure.GetPolygons()[i]; 431 const DicomStructurePolygon2& topSlab = structure.GetPolygons()[i];
432 432
433 // let's compute the intersection between the polygon and the plane 433 // let's compute the intersection between the polygon and the plane
434 // intersections are in plane coords 434 // intersections are in plane coords
435 std::vector<Point2D> intersects; 435 std::vector<ScenePoint2D> intersects;
436 topSlab.ProjectOnConstantPlane(intersects, cuttingPlane); 436 topSlab.ProjectOnConstantPlane(intersects, cuttingPlane);
437 437
438 ASSERT_EQ(4u, intersects.size()); 438 ASSERT_EQ(4u, intersects.size());
439 439
440 EXPECT_NEAR(2, intersects[0].x, DELTA_MAX); 440 EXPECT_NEAR(2, intersects[0].GetX(), DELTA_MAX);
441 EXPECT_NEAR(4, intersects[1].x, DELTA_MAX); 441 EXPECT_NEAR(4, intersects[1].GetX(), DELTA_MAX);
442 EXPECT_NEAR(7, intersects[2].x, DELTA_MAX); 442 EXPECT_NEAR(7, intersects[2].GetX(), DELTA_MAX);
443 EXPECT_NEAR(8, intersects[3].x, DELTA_MAX); 443 EXPECT_NEAR(8, intersects[3].GetX(), DELTA_MAX);
444 444
445 for (size_t i = 0; i < 4u; ++i) 445 for (size_t i = 0; i < 4u; ++i)
446 { 446 {
447 EXPECT_NEAR(polygonZ, intersects[i].y, DELTA_MAX); 447 EXPECT_NEAR(polygonZ, intersects[i].GetY(), DELTA_MAX);
448 } 448 }
449 } 449 }
450 } 450 }
451 451
452 TEST(StructureSet2, CutCoronalInsideClose) 452 TEST(StructureSet2, CutCoronalInsideClose)
453 { 453 {
454 DicomStructure2 structure; 454 DicomStructure2 structure;
455 CreateBasicStructure(structure); 455 CreateBasicStructure(structure);
456 std::vector< std::pair<Point2D, Point2D> > segments; 456 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
457 457
458 // create an X,Z cutting plane, outside of the volume 458 // create an X,Z cutting plane, outside of the volume
459 Point3D origin, axisX, axisY; 459 Vector origin, axisX, axisY;
460 LinearAlgebra::AssignVector(origin, 0, 3, 0); 460 LinearAlgebra::AssignVector(origin, 0, 3, 0);
461 LinearAlgebra::AssignVector(axisX, 1, 0, 0); 461 LinearAlgebra::AssignVector(axisX, 1, 0, 0);
462 LinearAlgebra::AssignVector(axisY, 0, 0, 1); 462 LinearAlgebra::AssignVector(axisY, 0, 0, 1);
463 CoordinateSystem3D cuttingPlane(origin, axisX, axisY); 463 CoordinateSystem3D cuttingPlane(origin, axisX, axisY);
464 464
468 468
469 size_t numberOfVeryShortSegments = 0; 469 size_t numberOfVeryShortSegments = 0;
470 for (size_t iSegment = 0; iSegment < segments.size(); ++iSegment) 470 for (size_t iSegment = 0; iSegment < segments.size(); ++iSegment)
471 { 471 {
472 // count the NON vertical very short segments 472 // count the NON vertical very short segments
473 if (LinearAlgebra::IsNear(segments[iSegment].first.x, segments[iSegment].second.x)) 473 if (LinearAlgebra::IsNear(segments[iSegment].first.GetX(), segments[iSegment].second.GetX()))
474 { 474 {
475 if (LinearAlgebra::IsNear(segments[iSegment].first.y, segments[iSegment].second.y)) 475 if (LinearAlgebra::IsNear(segments[iSegment].first.GetY(), segments[iSegment].second.GetY()))
476 { 476 {
477 numberOfVeryShortSegments++; 477 numberOfVeryShortSegments++;
478 } 478 }
479 } 479 }
480 } 480 }
549 549
550 TEST(StructureSet2, CutSagittalInsideClose) 550 TEST(StructureSet2, CutSagittalInsideClose)
551 { 551 {
552 DicomStructure2 structure; 552 DicomStructure2 structure;
553 CreateBasicStructure(structure); 553 CreateBasicStructure(structure);
554 std::vector< std::pair<Point2D, Point2D> > segments; 554 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
555 555
556 // create an X,Z cutting plane, inside of the volume 556 // create an X,Z cutting plane, inside of the volume
557 Point3D origin, axisX, axisY; 557 Vector origin, axisX, axisY;
558 LinearAlgebra::AssignVector(origin, 0, 3, 0); 558 LinearAlgebra::AssignVector(origin, 0, 3, 0);
559 LinearAlgebra::AssignVector(axisX, 1, 0, 0); 559 LinearAlgebra::AssignVector(axisX, 1, 0, 0);
560 LinearAlgebra::AssignVector(axisY, 0, 0, 1); 560 LinearAlgebra::AssignVector(axisY, 0, 0, 1);
561 CoordinateSystem3D cuttingPlane(origin, axisX, axisY); 561 CoordinateSystem3D cuttingPlane(origin, axisX, axisY);
562 562
627 */ 627 */
628 628
629 629
630 /* 630 /*
631 void ProcessBoundaryList( 631 void ProcessBoundaryList(
632 std::vector< std::pair<Point2D, Point2D> >& segments, 632 std::vector< std::pair<ScenePoint2D, ScenePoint2D> >& segments,
633 const std::vector<std::pair<double, RectangleBoundaryKind> >& boundaries, 633 const std::vector<std::pair<double, RectangleBoundaryKind> >& boundaries,
634 double y) 634 double y)
635 */ 635 */
636 636
637 637
729 { 729 {
730 std::vector< RtStructRectanglesInSlab > slabCuts; 730 std::vector< RtStructRectanglesInSlab > slabCuts;
731 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries; 731 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries;
732 FillTestRectangleList(slabCuts); 732 FillTestRectangleList(slabCuts);
733 boundaries.clear(); 733 boundaries.clear();
734 std::vector< std::pair<Point2D, Point2D> > segments; 734 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
735 ASSERT_NO_THROW(ProcessBoundaryList(segments, boundaries, 42.0)); 735 ASSERT_NO_THROW(ProcessBoundaryList(segments, boundaries, 42.0));
736 ASSERT_EQ(0u, segments.size()); 736 ASSERT_EQ(0u, segments.size());
737 } 737 }
738 738
739 TEST(StructureSet2, ConvertListOfSlabsToSegments_TopRow_Horizontal) 739 TEST(StructureSet2, ConvertListOfSlabsToSegments_TopRow_Horizontal)
741 std::vector< RtStructRectanglesInSlab > slabCuts; 741 std::vector< RtStructRectanglesInSlab > slabCuts;
742 FillTestRectangleList(slabCuts); 742 FillTestRectangleList(slabCuts);
743 743
744 // top row 744 // top row
745 { 745 {
746 std::vector< std::pair<Point2D, Point2D> > segments; 746 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
747 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries; 747 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries;
748 AddSlabBoundaries(boundaries, slabCuts, 0); 748 AddSlabBoundaries(boundaries, slabCuts, 0);
749 ProcessBoundaryList(segments, boundaries, slabCuts[0][0].ymin); 749 ProcessBoundaryList(segments, boundaries, slabCuts[0][0].ymin);
750 750
751 ASSERT_EQ(2u, segments.size()); 751 ASSERT_EQ(2u, segments.size());
752 752
753 ASSERT_NEAR( 5.0, segments[0].first.x, DELTA_MAX); 753 ASSERT_NEAR( 5.0, segments[0].first.GetX(), DELTA_MAX);
754 ASSERT_NEAR(31.0, segments[0].second.x, DELTA_MAX); 754 ASSERT_NEAR(31.0, segments[0].second.GetX(), DELTA_MAX);
755 ASSERT_NEAR( 0.0, segments[0].first.y, DELTA_MAX); 755 ASSERT_NEAR( 0.0, segments[0].first.GetY(), DELTA_MAX);
756 ASSERT_NEAR( 0.0, segments[0].second.y, DELTA_MAX); 756 ASSERT_NEAR( 0.0, segments[0].second.GetY(), DELTA_MAX);
757 757
758 ASSERT_NEAR(36.0, segments[1].first.x, DELTA_MAX); 758 ASSERT_NEAR(36.0, segments[1].first.GetX(), DELTA_MAX);
759 ASSERT_NEAR(50.0, segments[1].second.x, DELTA_MAX); 759 ASSERT_NEAR(50.0, segments[1].second.GetX(), DELTA_MAX);
760 ASSERT_NEAR( 0.0, segments[1].first.y, DELTA_MAX); 760 ASSERT_NEAR( 0.0, segments[1].first.GetY(), DELTA_MAX);
761 ASSERT_NEAR( 0.0, segments[1].second.y, DELTA_MAX); 761 ASSERT_NEAR( 0.0, segments[1].second.GetY(), DELTA_MAX);
762 } 762 }
763 } 763 }
764 764
765 TEST(StructureSet2, ConvertListOfSlabsToSegments_All_Horizontal) 765 TEST(StructureSet2, ConvertListOfSlabsToSegments_All_Horizontal)
766 { 766 {
770 770
771 // top row 771 // top row
772 { 772 {
773 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries; 773 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries;
774 AddSlabBoundaries(boundaries, slabCuts, 0); 774 AddSlabBoundaries(boundaries, slabCuts, 0);
775 std::vector< std::pair<Point2D, Point2D> > segments; 775 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
776 ProcessBoundaryList(segments, boundaries, slabCuts[0][0].ymin); 776 ProcessBoundaryList(segments, boundaries, slabCuts[0][0].ymin);
777 } 777 }
778 778
779 // mids 779 // mids
780 { 780 {
781 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries; 781 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries;
782 AddSlabBoundaries(boundaries, slabCuts, 0); 782 AddSlabBoundaries(boundaries, slabCuts, 0);
783 AddSlabBoundaries(boundaries, slabCuts, 1); 783 AddSlabBoundaries(boundaries, slabCuts, 1);
784 std::vector< std::pair<Point2D, Point2D> > segments; 784 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
785 ProcessBoundaryList(segments, boundaries, slabCuts[0][0].ymax); 785 ProcessBoundaryList(segments, boundaries, slabCuts[0][0].ymax);
786 786
787 ASSERT_EQ(4u, segments.size()); 787 ASSERT_EQ(4u, segments.size());
788 788
789 ASSERT_NEAR(05.0, segments[0].first.x, DELTA_MAX); 789 ASSERT_NEAR(05.0, segments[0].first.GetX(), DELTA_MAX);
790 ASSERT_NEAR(20.0, segments[0].second.x, DELTA_MAX); 790 ASSERT_NEAR(20.0, segments[0].second.GetX(), DELTA_MAX);
791 ASSERT_NEAR(05.0, segments[0].first.y, DELTA_MAX); 791 ASSERT_NEAR(05.0, segments[0].first.GetY(), DELTA_MAX);
792 ASSERT_NEAR(05.0, segments[0].second.y, DELTA_MAX); 792 ASSERT_NEAR(05.0, segments[0].second.GetY(), DELTA_MAX);
793 793
794 ASSERT_NEAR(31.0, segments[1].first.x, DELTA_MAX); 794 ASSERT_NEAR(31.0, segments[1].first.GetX(), DELTA_MAX);
795 ASSERT_NEAR(36.0, segments[1].second.x, DELTA_MAX); 795 ASSERT_NEAR(36.0, segments[1].second.GetX(), DELTA_MAX);
796 ASSERT_NEAR(05.0, segments[1].first.y, DELTA_MAX); 796 ASSERT_NEAR(05.0, segments[1].first.GetY(), DELTA_MAX);
797 ASSERT_NEAR(05.0, segments[1].second.y, DELTA_MAX); 797 ASSERT_NEAR(05.0, segments[1].second.GetY(), DELTA_MAX);
798 798
799 ASSERT_NEAR(45.0, segments[2].first.x, DELTA_MAX); 799 ASSERT_NEAR(45.0, segments[2].first.GetX(), DELTA_MAX);
800 ASSERT_NEAR(50.0, segments[2].second.x, DELTA_MAX); 800 ASSERT_NEAR(50.0, segments[2].second.GetX(), DELTA_MAX);
801 ASSERT_NEAR(05.0, segments[2].first.y, DELTA_MAX); 801 ASSERT_NEAR(05.0, segments[2].first.GetY(), DELTA_MAX);
802 ASSERT_NEAR(05.0, segments[2].second.y, DELTA_MAX); 802 ASSERT_NEAR(05.0, segments[2].second.GetY(), DELTA_MAX);
803 803
804 ASSERT_NEAR(52.0, segments[3].first.x, DELTA_MAX); 804 ASSERT_NEAR(52.0, segments[3].first.GetX(), DELTA_MAX);
805 ASSERT_NEAR(70.0, segments[3].second.x, DELTA_MAX); 805 ASSERT_NEAR(70.0, segments[3].second.GetX(), DELTA_MAX);
806 ASSERT_NEAR(05.0, segments[3].first.y, DELTA_MAX); 806 ASSERT_NEAR(05.0, segments[3].first.GetY(), DELTA_MAX);
807 ASSERT_NEAR(05.0, segments[3].second.y, DELTA_MAX); 807 ASSERT_NEAR(05.0, segments[3].second.GetY(), DELTA_MAX);
808 } 808 }
809 809
810 // bottom row 810 // bottom row
811 { 811 {
812 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries; 812 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries;
813 AddSlabBoundaries(boundaries, slabCuts, 1); 813 AddSlabBoundaries(boundaries, slabCuts, 1);
814 std::vector< std::pair<Point2D, Point2D> > segments; 814 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
815 ProcessBoundaryList(segments, boundaries, slabCuts[1][0].ymax); 815 ProcessBoundaryList(segments, boundaries, slabCuts[1][0].ymax);
816 816
817 ASSERT_EQ(2u, segments.size()); 817 ASSERT_EQ(2u, segments.size());
818 818
819 ASSERT_NEAR(20.0, segments[0].first.x, DELTA_MAX); 819 ASSERT_NEAR(20.0, segments[0].first.GetX(), DELTA_MAX);
820 ASSERT_NEAR(45.0, segments[0].second.x, DELTA_MAX); 820 ASSERT_NEAR(45.0, segments[0].second.GetX(), DELTA_MAX);
821 ASSERT_NEAR(10.0, segments[0].first.y, DELTA_MAX); 821 ASSERT_NEAR(10.0, segments[0].first.GetY(), DELTA_MAX);
822 ASSERT_NEAR(10.0, segments[0].second.y, DELTA_MAX); 822 ASSERT_NEAR(10.0, segments[0].second.GetY(), DELTA_MAX);
823 823
824 ASSERT_NEAR(52.0, segments[1].first.x, DELTA_MAX); 824 ASSERT_NEAR(52.0, segments[1].first.GetX(), DELTA_MAX);
825 ASSERT_NEAR(70.0, segments[1].second.x, DELTA_MAX); 825 ASSERT_NEAR(70.0, segments[1].second.GetX(), DELTA_MAX);
826 ASSERT_NEAR(10.0, segments[1].first.y, DELTA_MAX); 826 ASSERT_NEAR(10.0, segments[1].first.GetY(), DELTA_MAX);
827 ASSERT_NEAR(10.0, segments[1].second.y, DELTA_MAX); 827 ASSERT_NEAR(10.0, segments[1].second.GetY(), DELTA_MAX);
828 } 828 }
829 829
830 } 830 }
831 831
832 TEST(StructureSet2, ConvertListOfSlabsToSegments_Complete_Empty) 832 TEST(StructureSet2, ConvertListOfSlabsToSegments_Complete_Empty)
833 { 833 {
834 std::vector< RtStructRectanglesInSlab > slabCuts; 834 std::vector< RtStructRectanglesInSlab > slabCuts;
835 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries; 835 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries;
836 836
837 std::vector< std::pair<Point2D, Point2D> > segments; 837 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
838 838
839 ASSERT_NO_THROW(ConvertListOfSlabsToSegments(segments, slabCuts, 0)); 839 ASSERT_NO_THROW(ConvertListOfSlabsToSegments(segments, slabCuts, 0));
840 ASSERT_EQ(0u, segments.size()); 840 ASSERT_EQ(0u, segments.size());
841 } 841 }
842 842
844 { 844 {
845 std::vector< RtStructRectanglesInSlab > slabCuts; 845 std::vector< RtStructRectanglesInSlab > slabCuts;
846 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries; 846 std::vector<std::pair<double, RectangleBoundaryKind> > boundaries;
847 size_t totalRectCount = FillTestRectangleList(slabCuts); 847 size_t totalRectCount = FillTestRectangleList(slabCuts);
848 848
849 std::vector< std::pair<Point2D, Point2D> > segments; 849 std::vector< std::pair<ScenePoint2D, ScenePoint2D> > segments;
850 850
851 ASSERT_NO_THROW(ConvertListOfSlabsToSegments(segments, slabCuts, totalRectCount)); 851 ASSERT_NO_THROW(ConvertListOfSlabsToSegments(segments, slabCuts, totalRectCount));
852 ASSERT_EQ(60u, segments.size()); 852 ASSERT_EQ(60u, segments.size());
853 853
854 size_t i = 0; 854 size_t i = 0;
855 855
856 ASSERT_NEAR(segments[i].first.x, 5.0000000000000000, DELTA_MAX); 856 ASSERT_NEAR(segments[i].first.GetX(), 5.0000000000000000, DELTA_MAX);
857 ASSERT_NEAR(segments[i].first.y, 0.0000000000000000, DELTA_MAX); 857 ASSERT_NEAR(segments[i].first.GetY(), 0.0000000000000000, DELTA_MAX);
858 ASSERT_NEAR(segments[i].second.x, 5.0000000000000000, DELTA_MAX); 858 ASSERT_NEAR(segments[i].second.GetX(), 5.0000000000000000, DELTA_MAX);
859 ASSERT_NEAR(segments[i].second.y, 5.0000000000000000, DELTA_MAX); 859 ASSERT_NEAR(segments[i].second.GetY(), 5.0000000000000000, DELTA_MAX);
860 i++; 860 i++;
861 ASSERT_NEAR(segments[i].first.x, 31.000000000000000, DELTA_MAX); 861 ASSERT_NEAR(segments[i].first.GetX(), 31.000000000000000, DELTA_MAX);
862 ASSERT_NEAR(segments[i].first.y, 0.0000000000000000, DELTA_MAX); 862 ASSERT_NEAR(segments[i].first.GetY(), 0.0000000000000000, DELTA_MAX);
863 ASSERT_NEAR(segments[i].second.x, 31.000000000000000, DELTA_MAX); 863 ASSERT_NEAR(segments[i].second.GetX(), 31.000000000000000, DELTA_MAX);
864 ASSERT_NEAR(segments[i].second.y, 5.0000000000000000, DELTA_MAX); 864 ASSERT_NEAR(segments[i].second.GetY(), 5.0000000000000000, DELTA_MAX);
865 i++; 865 i++;
866 ASSERT_NEAR(segments[i].first.x, 36.000000000000000, DELTA_MAX); 866 ASSERT_NEAR(segments[i].first.GetX(), 36.000000000000000, DELTA_MAX);
867 ASSERT_NEAR(segments[i].first.y, 0.0000000000000000, DELTA_MAX); 867 ASSERT_NEAR(segments[i].first.GetY(), 0.0000000000000000, DELTA_MAX);
868 ASSERT_NEAR(segments[i].second.x, 36.000000000000000, DELTA_MAX); 868 ASSERT_NEAR(segments[i].second.GetX(), 36.000000000000000, DELTA_MAX);
869 ASSERT_NEAR(segments[i].second.y, 5.0000000000000000, DELTA_MAX); 869 ASSERT_NEAR(segments[i].second.GetY(), 5.0000000000000000, DELTA_MAX);
870 i++; 870 i++;
871 ASSERT_NEAR(segments[i].first.x, 50.000000000000000, DELTA_MAX); 871 ASSERT_NEAR(segments[i].first.GetX(), 50.000000000000000, DELTA_MAX);
872 ASSERT_NEAR(segments[i].first.y, 0.0000000000000000, DELTA_MAX); 872 ASSERT_NEAR(segments[i].first.GetY(), 0.0000000000000000, DELTA_MAX);
873 ASSERT_NEAR(segments[i].second.x, 50.000000000000000, DELTA_MAX); 873 ASSERT_NEAR(segments[i].second.GetX(), 50.000000000000000, DELTA_MAX);
874 ASSERT_NEAR(segments[i].second.y, 5.0000000000000000, DELTA_MAX); 874 ASSERT_NEAR(segments[i].second.GetY(), 5.0000000000000000, DELTA_MAX);
875 i++; 875 i++;
876 ASSERT_NEAR(segments[i].first.x, 20.000000000000000, DELTA_MAX); 876 ASSERT_NEAR(segments[i].first.GetX(), 20.000000000000000, DELTA_MAX);
877 ASSERT_NEAR(segments[i].first.y, 5.0000000000000000, DELTA_MAX); 877 ASSERT_NEAR(segments[i].first.GetY(), 5.0000000000000000, DELTA_MAX);
878 ASSERT_NEAR(segments[i].second.x, 20.000000000000000, DELTA_MAX); 878 ASSERT_NEAR(segments[i].second.GetX(), 20.000000000000000, DELTA_MAX);
879 ASSERT_NEAR(segments[i].second.y, 10.000000000000000, DELTA_MAX); 879 ASSERT_NEAR(segments[i].second.GetY(), 10.000000000000000, DELTA_MAX);
880 i++; 880 i++;
881 ASSERT_NEAR(segments[i].first.x, 45.000000000000000, DELTA_MAX); 881 ASSERT_NEAR(segments[i].first.GetX(), 45.000000000000000, DELTA_MAX);
882 ASSERT_NEAR(segments[i].first.y, 5.0000000000000000, DELTA_MAX); 882 ASSERT_NEAR(segments[i].first.GetY(), 5.0000000000000000, DELTA_MAX);
883 ASSERT_NEAR(segments[i].second.x, 45.000000000000000, DELTA_MAX); 883 ASSERT_NEAR(segments[i].second.GetX(), 45.000000000000000, DELTA_MAX);
884 ASSERT_NEAR(segments[i].second.y, 10.000000000000000, DELTA_MAX); 884 ASSERT_NEAR(segments[i].second.GetY(), 10.000000000000000, DELTA_MAX);
885 i++; 885 i++;
886 ASSERT_NEAR(segments[i].first.x, 52.000000000000000, DELTA_MAX); 886 ASSERT_NEAR(segments[i].first.GetX(), 52.000000000000000, DELTA_MAX);
887 ASSERT_NEAR(segments[i].first.y, 5.0000000000000000, DELTA_MAX); 887 ASSERT_NEAR(segments[i].first.GetY(), 5.0000000000000000, DELTA_MAX);
888 ASSERT_NEAR(segments[i].second.x, 52.000000000000000, DELTA_MAX); 888 ASSERT_NEAR(segments[i].second.GetX(), 52.000000000000000, DELTA_MAX);
889 ASSERT_NEAR(segments[i].second.y, 10.000000000000000, DELTA_MAX); 889 ASSERT_NEAR(segments[i].second.GetY(), 10.000000000000000, DELTA_MAX);
890 i++; 890 i++;
891 ASSERT_NEAR(segments[i].first.x, 70.000000000000000, DELTA_MAX); 891 ASSERT_NEAR(segments[i].first.GetX(), 70.000000000000000, DELTA_MAX);
892 ASSERT_NEAR(segments[i].first.y, 5.0000000000000000, DELTA_MAX); 892 ASSERT_NEAR(segments[i].first.GetY(), 5.0000000000000000, DELTA_MAX);
893 ASSERT_NEAR(segments[i].second.x, 70.000000000000000, DELTA_MAX); 893 ASSERT_NEAR(segments[i].second.GetX(), 70.000000000000000, DELTA_MAX);
894 ASSERT_NEAR(segments[i].second.y, 10.000000000000000, DELTA_MAX); 894 ASSERT_NEAR(segments[i].second.GetY(), 10.000000000000000, DELTA_MAX);
895 i++; 895 i++;
896 ASSERT_NEAR(segments[i].first.x, 0.0000000000000000, DELTA_MAX); 896 ASSERT_NEAR(segments[i].first.GetX(), 0.0000000000000000, DELTA_MAX);
897 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 897 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
898 ASSERT_NEAR(segments[i].second.x, 0.0000000000000000, DELTA_MAX); 898 ASSERT_NEAR(segments[i].second.GetX(), 0.0000000000000000, DELTA_MAX);
899 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 899 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
900 i++; 900 i++;
901 ASSERT_NEAR(segments[i].first.x, 32.000000000000000, DELTA_MAX); 901 ASSERT_NEAR(segments[i].first.GetX(), 32.000000000000000, DELTA_MAX);
902 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 902 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
903 ASSERT_NEAR(segments[i].second.x, 32.000000000000000, DELTA_MAX); 903 ASSERT_NEAR(segments[i].second.GetX(), 32.000000000000000, DELTA_MAX);
904 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 904 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
905 i++; 905 i++;
906 ASSERT_NEAR(segments[i].first.x, 35.000000000000000, DELTA_MAX); 906 ASSERT_NEAR(segments[i].first.GetX(), 35.000000000000000, DELTA_MAX);
907 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 907 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
908 ASSERT_NEAR(segments[i].second.x, 35.000000000000000, DELTA_MAX); 908 ASSERT_NEAR(segments[i].second.GetX(), 35.000000000000000, DELTA_MAX);
909 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 909 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
910 i++; 910 i++;
911 ASSERT_NEAR(segments[i].first.x, 44.000000000000000, DELTA_MAX); 911 ASSERT_NEAR(segments[i].first.GetX(), 44.000000000000000, DELTA_MAX);
912 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 912 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
913 ASSERT_NEAR(segments[i].second.x, 44.000000000000000, DELTA_MAX); 913 ASSERT_NEAR(segments[i].second.GetX(), 44.000000000000000, DELTA_MAX);
914 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 914 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
915 i++; 915 i++;
916 ASSERT_NEAR(segments[i].first.x, 60.000000000000000, DELTA_MAX); 916 ASSERT_NEAR(segments[i].first.GetX(), 60.000000000000000, DELTA_MAX);
917 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 917 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
918 ASSERT_NEAR(segments[i].second.x, 60.000000000000000, DELTA_MAX); 918 ASSERT_NEAR(segments[i].second.GetX(), 60.000000000000000, DELTA_MAX);
919 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 919 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
920 i++; 920 i++;
921 ASSERT_NEAR(segments[i].first.x, 75.000000000000000, DELTA_MAX); 921 ASSERT_NEAR(segments[i].first.GetX(), 75.000000000000000, DELTA_MAX);
922 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 922 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
923 ASSERT_NEAR(segments[i].second.x, 75.000000000000000, DELTA_MAX); 923 ASSERT_NEAR(segments[i].second.GetX(), 75.000000000000000, DELTA_MAX);
924 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 924 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
925 i++; 925 i++;
926 ASSERT_NEAR(segments[i].first.x, 10.000000000000000, DELTA_MAX); 926 ASSERT_NEAR(segments[i].first.GetX(), 10.000000000000000, DELTA_MAX);
927 ASSERT_NEAR(segments[i].first.y, 15.000000000000000, DELTA_MAX); 927 ASSERT_NEAR(segments[i].first.GetY(), 15.000000000000000, DELTA_MAX);
928 ASSERT_NEAR(segments[i].second.x, 10.000000000000000, DELTA_MAX); 928 ASSERT_NEAR(segments[i].second.GetX(), 10.000000000000000, DELTA_MAX);
929 ASSERT_NEAR(segments[i].second.y, 20.000000000000000, DELTA_MAX); 929 ASSERT_NEAR(segments[i].second.GetY(), 20.000000000000000, DELTA_MAX);
930 i++; 930 i++;
931 ASSERT_NEAR(segments[i].first.x, 41.000000000000000, DELTA_MAX); 931 ASSERT_NEAR(segments[i].first.GetX(), 41.000000000000000, DELTA_MAX);
932 ASSERT_NEAR(segments[i].first.y, 15.000000000000000, DELTA_MAX); 932 ASSERT_NEAR(segments[i].first.GetY(), 15.000000000000000, DELTA_MAX);
933 ASSERT_NEAR(segments[i].second.x, 41.000000000000000, DELTA_MAX); 933 ASSERT_NEAR(segments[i].second.GetX(), 41.000000000000000, DELTA_MAX);
934 ASSERT_NEAR(segments[i].second.y, 20.000000000000000, DELTA_MAX); 934 ASSERT_NEAR(segments[i].second.GetY(), 20.000000000000000, DELTA_MAX);
935 i++; 935 i++;
936 ASSERT_NEAR(segments[i].first.x, 46.000000000000000, DELTA_MAX); 936 ASSERT_NEAR(segments[i].first.GetX(), 46.000000000000000, DELTA_MAX);
937 ASSERT_NEAR(segments[i].first.y, 15.000000000000000, DELTA_MAX); 937 ASSERT_NEAR(segments[i].first.GetY(), 15.000000000000000, DELTA_MAX);
938 ASSERT_NEAR(segments[i].second.x, 46.000000000000000, DELTA_MAX); 938 ASSERT_NEAR(segments[i].second.GetX(), 46.000000000000000, DELTA_MAX);
939 ASSERT_NEAR(segments[i].second.y, 20.000000000000000, DELTA_MAX); 939 ASSERT_NEAR(segments[i].second.GetY(), 20.000000000000000, DELTA_MAX);
940 i++; 940 i++;
941 ASSERT_NEAR(segments[i].first.x, 80.000000000000000, DELTA_MAX); 941 ASSERT_NEAR(segments[i].first.GetX(), 80.000000000000000, DELTA_MAX);
942 ASSERT_NEAR(segments[i].first.y, 15.000000000000000, DELTA_MAX); 942 ASSERT_NEAR(segments[i].first.GetY(), 15.000000000000000, DELTA_MAX);
943 ASSERT_NEAR(segments[i].second.x, 80.000000000000000, DELTA_MAX); 943 ASSERT_NEAR(segments[i].second.GetX(), 80.000000000000000, DELTA_MAX);
944 ASSERT_NEAR(segments[i].second.y, 20.000000000000000, DELTA_MAX); 944 ASSERT_NEAR(segments[i].second.GetY(), 20.000000000000000, DELTA_MAX);
945 i++; 945 i++;
946 ASSERT_NEAR(segments[i].first.x, 34.000000000000000, DELTA_MAX); 946 ASSERT_NEAR(segments[i].first.GetX(), 34.000000000000000, DELTA_MAX);
947 ASSERT_NEAR(segments[i].first.y, 20.000000000000000, DELTA_MAX); 947 ASSERT_NEAR(segments[i].first.GetY(), 20.000000000000000, DELTA_MAX);
948 ASSERT_NEAR(segments[i].second.x, 34.000000000000000, DELTA_MAX); 948 ASSERT_NEAR(segments[i].second.GetX(), 34.000000000000000, DELTA_MAX);
949 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 949 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
950 i++; 950 i++;
951 ASSERT_NEAR(segments[i].first.x, 42.000000000000000, DELTA_MAX); 951 ASSERT_NEAR(segments[i].first.GetX(), 42.000000000000000, DELTA_MAX);
952 ASSERT_NEAR(segments[i].first.y, 20.000000000000000, DELTA_MAX); 952 ASSERT_NEAR(segments[i].first.GetY(), 20.000000000000000, DELTA_MAX);
953 ASSERT_NEAR(segments[i].second.x, 42.000000000000000, DELTA_MAX); 953 ASSERT_NEAR(segments[i].second.GetX(), 42.000000000000000, DELTA_MAX);
954 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 954 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
955 i++; 955 i++;
956 ASSERT_NEAR(segments[i].first.x, 90.000000000000000, DELTA_MAX); 956 ASSERT_NEAR(segments[i].first.GetX(), 90.000000000000000, DELTA_MAX);
957 ASSERT_NEAR(segments[i].first.y, 20.000000000000000, DELTA_MAX); 957 ASSERT_NEAR(segments[i].first.GetY(), 20.000000000000000, DELTA_MAX);
958 ASSERT_NEAR(segments[i].second.x, 90.000000000000000, DELTA_MAX); 958 ASSERT_NEAR(segments[i].second.GetX(), 90.000000000000000, DELTA_MAX);
959 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 959 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
960 i++; 960 i++;
961 ASSERT_NEAR(segments[i].first.x, 96.000000000000000, DELTA_MAX); 961 ASSERT_NEAR(segments[i].first.GetX(), 96.000000000000000, DELTA_MAX);
962 ASSERT_NEAR(segments[i].first.y, 20.000000000000000, DELTA_MAX); 962 ASSERT_NEAR(segments[i].first.GetY(), 20.000000000000000, DELTA_MAX);
963 ASSERT_NEAR(segments[i].second.x, 96.000000000000000, DELTA_MAX); 963 ASSERT_NEAR(segments[i].second.GetX(), 96.000000000000000, DELTA_MAX);
964 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 964 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
965 i++; 965 i++;
966 ASSERT_NEAR(segments[i].first.x, 1.0000000000000000, DELTA_MAX); 966 ASSERT_NEAR(segments[i].first.GetX(), 1.0000000000000000, DELTA_MAX);
967 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 967 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
968 ASSERT_NEAR(segments[i].second.x, 1.0000000000000000, DELTA_MAX); 968 ASSERT_NEAR(segments[i].second.GetX(), 1.0000000000000000, DELTA_MAX);
969 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 969 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
970 i++; 970 i++;
971 ASSERT_NEAR(segments[i].first.x, 33.000000000000000, DELTA_MAX); 971 ASSERT_NEAR(segments[i].first.GetX(), 33.000000000000000, DELTA_MAX);
972 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 972 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
973 ASSERT_NEAR(segments[i].second.x, 33.000000000000000, DELTA_MAX); 973 ASSERT_NEAR(segments[i].second.GetX(), 33.000000000000000, DELTA_MAX);
974 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 974 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
975 i++; 975 i++;
976 ASSERT_NEAR(segments[i].first.x, 40.000000000000000, DELTA_MAX); 976 ASSERT_NEAR(segments[i].first.GetX(), 40.000000000000000, DELTA_MAX);
977 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 977 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
978 ASSERT_NEAR(segments[i].second.x, 40.000000000000000, DELTA_MAX); 978 ASSERT_NEAR(segments[i].second.GetX(), 40.000000000000000, DELTA_MAX);
979 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 979 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
980 i++; 980 i++;
981 ASSERT_NEAR(segments[i].first.x, 43.000000000000000, DELTA_MAX); 981 ASSERT_NEAR(segments[i].first.GetX(), 43.000000000000000, DELTA_MAX);
982 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 982 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
983 ASSERT_NEAR(segments[i].second.x, 43.000000000000000, DELTA_MAX); 983 ASSERT_NEAR(segments[i].second.GetX(), 43.000000000000000, DELTA_MAX);
984 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 984 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
985 i++; 985 i++;
986 ASSERT_NEAR(segments[i].first.x, 51.000000000000000, DELTA_MAX); 986 ASSERT_NEAR(segments[i].first.GetX(), 51.000000000000000, DELTA_MAX);
987 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 987 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
988 ASSERT_NEAR(segments[i].second.x, 51.000000000000000, DELTA_MAX); 988 ASSERT_NEAR(segments[i].second.GetX(), 51.000000000000000, DELTA_MAX);
989 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 989 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
990 i++; 990 i++;
991 ASSERT_NEAR(segments[i].first.x, 61.000000000000000, DELTA_MAX); 991 ASSERT_NEAR(segments[i].first.GetX(), 61.000000000000000, DELTA_MAX);
992 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 992 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
993 ASSERT_NEAR(segments[i].second.x, 61.000000000000000, DELTA_MAX); 993 ASSERT_NEAR(segments[i].second.GetX(), 61.000000000000000, DELTA_MAX);
994 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 994 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
995 i++; 995 i++;
996 ASSERT_NEAR(segments[i].first.x, 76.000000000000000, DELTA_MAX); 996 ASSERT_NEAR(segments[i].first.GetX(), 76.000000000000000, DELTA_MAX);
997 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 997 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
998 ASSERT_NEAR(segments[i].second.x, 76.000000000000000, DELTA_MAX); 998 ASSERT_NEAR(segments[i].second.GetX(), 76.000000000000000, DELTA_MAX);
999 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 999 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
1000 i++; 1000 i++;
1001 ASSERT_NEAR(segments[i].first.x, 95.000000000000000, DELTA_MAX); 1001 ASSERT_NEAR(segments[i].first.GetX(), 95.000000000000000, DELTA_MAX);
1002 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 1002 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
1003 ASSERT_NEAR(segments[i].second.x, 95.000000000000000, DELTA_MAX); 1003 ASSERT_NEAR(segments[i].second.GetX(), 95.000000000000000, DELTA_MAX);
1004 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 1004 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
1005 i++; 1005 i++;
1006 ASSERT_NEAR(segments[i].first.x, 5.0000000000000000, DELTA_MAX); 1006 ASSERT_NEAR(segments[i].first.GetX(), 5.0000000000000000, DELTA_MAX);
1007 ASSERT_NEAR(segments[i].first.y, 0.0000000000000000, DELTA_MAX); 1007 ASSERT_NEAR(segments[i].first.GetY(), 0.0000000000000000, DELTA_MAX);
1008 ASSERT_NEAR(segments[i].second.x, 31.000000000000000, DELTA_MAX); 1008 ASSERT_NEAR(segments[i].second.GetX(), 31.000000000000000, DELTA_MAX);
1009 ASSERT_NEAR(segments[i].second.y, 0.0000000000000000, DELTA_MAX); 1009 ASSERT_NEAR(segments[i].second.GetY(), 0.0000000000000000, DELTA_MAX);
1010 i++; 1010 i++;
1011 ASSERT_NEAR(segments[i].first.x, 36.000000000000000, DELTA_MAX); 1011 ASSERT_NEAR(segments[i].first.GetX(), 36.000000000000000, DELTA_MAX);
1012 ASSERT_NEAR(segments[i].first.y, 0.0000000000000000, DELTA_MAX); 1012 ASSERT_NEAR(segments[i].first.GetY(), 0.0000000000000000, DELTA_MAX);
1013 ASSERT_NEAR(segments[i].second.x, 50.000000000000000, DELTA_MAX); 1013 ASSERT_NEAR(segments[i].second.GetX(), 50.000000000000000, DELTA_MAX);
1014 ASSERT_NEAR(segments[i].second.y, 0.0000000000000000, DELTA_MAX); 1014 ASSERT_NEAR(segments[i].second.GetY(), 0.0000000000000000, DELTA_MAX);
1015 i++; 1015 i++;
1016 ASSERT_NEAR(segments[i].first.x, 5.0000000000000000, DELTA_MAX); 1016 ASSERT_NEAR(segments[i].first.GetX(), 5.0000000000000000, DELTA_MAX);
1017 ASSERT_NEAR(segments[i].first.y, 5.0000000000000000, DELTA_MAX); 1017 ASSERT_NEAR(segments[i].first.GetY(), 5.0000000000000000, DELTA_MAX);
1018 ASSERT_NEAR(segments[i].second.x, 20.000000000000000, DELTA_MAX); 1018 ASSERT_NEAR(segments[i].second.GetX(), 20.000000000000000, DELTA_MAX);
1019 ASSERT_NEAR(segments[i].second.y, 5.0000000000000000, DELTA_MAX); 1019 ASSERT_NEAR(segments[i].second.GetY(), 5.0000000000000000, DELTA_MAX);
1020 i++; 1020 i++;
1021 ASSERT_NEAR(segments[i].first.x, 31.000000000000000, DELTA_MAX); 1021 ASSERT_NEAR(segments[i].first.GetX(), 31.000000000000000, DELTA_MAX);
1022 ASSERT_NEAR(segments[i].first.y, 5.0000000000000000, DELTA_MAX); 1022 ASSERT_NEAR(segments[i].first.GetY(), 5.0000000000000000, DELTA_MAX);
1023 ASSERT_NEAR(segments[i].second.x, 36.000000000000000, DELTA_MAX); 1023 ASSERT_NEAR(segments[i].second.GetX(), 36.000000000000000, DELTA_MAX);
1024 ASSERT_NEAR(segments[i].second.y, 5.0000000000000000, DELTA_MAX); 1024 ASSERT_NEAR(segments[i].second.GetY(), 5.0000000000000000, DELTA_MAX);
1025 i++; 1025 i++;
1026 ASSERT_NEAR(segments[i].first.x, 45.000000000000000, DELTA_MAX); 1026 ASSERT_NEAR(segments[i].first.GetX(), 45.000000000000000, DELTA_MAX);
1027 ASSERT_NEAR(segments[i].first.y, 5.0000000000000000, DELTA_MAX); 1027 ASSERT_NEAR(segments[i].first.GetY(), 5.0000000000000000, DELTA_MAX);
1028 ASSERT_NEAR(segments[i].second.x, 50.000000000000000, DELTA_MAX); 1028 ASSERT_NEAR(segments[i].second.GetX(), 50.000000000000000, DELTA_MAX);
1029 ASSERT_NEAR(segments[i].second.y, 5.0000000000000000, DELTA_MAX); 1029 ASSERT_NEAR(segments[i].second.GetY(), 5.0000000000000000, DELTA_MAX);
1030 i++; 1030 i++;
1031 ASSERT_NEAR(segments[i].first.x, 52.000000000000000, DELTA_MAX); 1031 ASSERT_NEAR(segments[i].first.GetX(), 52.000000000000000, DELTA_MAX);
1032 ASSERT_NEAR(segments[i].first.y, 5.0000000000000000, DELTA_MAX); 1032 ASSERT_NEAR(segments[i].first.GetY(), 5.0000000000000000, DELTA_MAX);
1033 ASSERT_NEAR(segments[i].second.x, 70.000000000000000, DELTA_MAX); 1033 ASSERT_NEAR(segments[i].second.GetX(), 70.000000000000000, DELTA_MAX);
1034 ASSERT_NEAR(segments[i].second.y, 5.0000000000000000, DELTA_MAX); 1034 ASSERT_NEAR(segments[i].second.GetY(), 5.0000000000000000, DELTA_MAX);
1035 i++; 1035 i++;
1036 ASSERT_NEAR(segments[i].first.x, 0.0000000000000000, DELTA_MAX); 1036 ASSERT_NEAR(segments[i].first.GetX(), 0.0000000000000000, DELTA_MAX);
1037 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 1037 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
1038 ASSERT_NEAR(segments[i].second.x, 20.000000000000000, DELTA_MAX); 1038 ASSERT_NEAR(segments[i].second.GetX(), 20.000000000000000, DELTA_MAX);
1039 ASSERT_NEAR(segments[i].second.y, 10.000000000000000, DELTA_MAX); 1039 ASSERT_NEAR(segments[i].second.GetY(), 10.000000000000000, DELTA_MAX);
1040 i++; 1040 i++;
1041 ASSERT_NEAR(segments[i].first.x, 32.000000000000000, DELTA_MAX); 1041 ASSERT_NEAR(segments[i].first.GetX(), 32.000000000000000, DELTA_MAX);
1042 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 1042 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
1043 ASSERT_NEAR(segments[i].second.x, 35.000000000000000, DELTA_MAX); 1043 ASSERT_NEAR(segments[i].second.GetX(), 35.000000000000000, DELTA_MAX);
1044 ASSERT_NEAR(segments[i].second.y, 10.000000000000000, DELTA_MAX); 1044 ASSERT_NEAR(segments[i].second.GetY(), 10.000000000000000, DELTA_MAX);
1045 i++; 1045 i++;
1046 ASSERT_NEAR(segments[i].first.x, 44.000000000000000, DELTA_MAX); 1046 ASSERT_NEAR(segments[i].first.GetX(), 44.000000000000000, DELTA_MAX);
1047 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 1047 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
1048 ASSERT_NEAR(segments[i].second.x, 45.000000000000000, DELTA_MAX); 1048 ASSERT_NEAR(segments[i].second.GetX(), 45.000000000000000, DELTA_MAX);
1049 ASSERT_NEAR(segments[i].second.y, 10.000000000000000, DELTA_MAX); 1049 ASSERT_NEAR(segments[i].second.GetY(), 10.000000000000000, DELTA_MAX);
1050 i++; 1050 i++;
1051 ASSERT_NEAR(segments[i].first.x, 52.000000000000000, DELTA_MAX); 1051 ASSERT_NEAR(segments[i].first.GetX(), 52.000000000000000, DELTA_MAX);
1052 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 1052 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
1053 ASSERT_NEAR(segments[i].second.x, 60.000000000000000, DELTA_MAX); 1053 ASSERT_NEAR(segments[i].second.GetX(), 60.000000000000000, DELTA_MAX);
1054 ASSERT_NEAR(segments[i].second.y, 10.000000000000000, DELTA_MAX); 1054 ASSERT_NEAR(segments[i].second.GetY(), 10.000000000000000, DELTA_MAX);
1055 i++; 1055 i++;
1056 ASSERT_NEAR(segments[i].first.x, 70.000000000000000, DELTA_MAX); 1056 ASSERT_NEAR(segments[i].first.GetX(), 70.000000000000000, DELTA_MAX);
1057 ASSERT_NEAR(segments[i].first.y, 10.000000000000000, DELTA_MAX); 1057 ASSERT_NEAR(segments[i].first.GetY(), 10.000000000000000, DELTA_MAX);
1058 ASSERT_NEAR(segments[i].second.x, 75.000000000000000, DELTA_MAX); 1058 ASSERT_NEAR(segments[i].second.GetX(), 75.000000000000000, DELTA_MAX);
1059 ASSERT_NEAR(segments[i].second.y, 10.000000000000000, DELTA_MAX); 1059 ASSERT_NEAR(segments[i].second.GetY(), 10.000000000000000, DELTA_MAX);
1060 i++; 1060 i++;
1061 ASSERT_NEAR(segments[i].first.x, 0.0000000000000000, DELTA_MAX); 1061 ASSERT_NEAR(segments[i].first.GetX(), 0.0000000000000000, DELTA_MAX);
1062 ASSERT_NEAR(segments[i].first.y, 15.000000000000000, DELTA_MAX); 1062 ASSERT_NEAR(segments[i].first.GetY(), 15.000000000000000, DELTA_MAX);
1063 ASSERT_NEAR(segments[i].second.x, 10.000000000000000, DELTA_MAX); 1063 ASSERT_NEAR(segments[i].second.GetX(), 10.000000000000000, DELTA_MAX);
1064 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 1064 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
1065 i++; 1065 i++;
1066 ASSERT_NEAR(segments[i].first.x, 32.000000000000000, DELTA_MAX); 1066 ASSERT_NEAR(segments[i].first.GetX(), 32.000000000000000, DELTA_MAX);
1067 ASSERT_NEAR(segments[i].first.y, 15.000000000000000, DELTA_MAX); 1067 ASSERT_NEAR(segments[i].first.GetY(), 15.000000000000000, DELTA_MAX);
1068 ASSERT_NEAR(segments[i].second.x, 35.000000000000000, DELTA_MAX); 1068 ASSERT_NEAR(segments[i].second.GetX(), 35.000000000000000, DELTA_MAX);
1069 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 1069 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
1070 i++; 1070 i++;
1071 ASSERT_NEAR(segments[i].first.x, 41.000000000000000, DELTA_MAX); 1071 ASSERT_NEAR(segments[i].first.GetX(), 41.000000000000000, DELTA_MAX);
1072 ASSERT_NEAR(segments[i].first.y, 15.000000000000000, DELTA_MAX); 1072 ASSERT_NEAR(segments[i].first.GetY(), 15.000000000000000, DELTA_MAX);
1073 ASSERT_NEAR(segments[i].second.x, 44.000000000000000, DELTA_MAX); 1073 ASSERT_NEAR(segments[i].second.GetX(), 44.000000000000000, DELTA_MAX);
1074 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 1074 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
1075 i++; 1075 i++;
1076 ASSERT_NEAR(segments[i].first.x, 46.000000000000000, DELTA_MAX); 1076 ASSERT_NEAR(segments[i].first.GetX(), 46.000000000000000, DELTA_MAX);
1077 ASSERT_NEAR(segments[i].first.y, 15.000000000000000, DELTA_MAX); 1077 ASSERT_NEAR(segments[i].first.GetY(), 15.000000000000000, DELTA_MAX);
1078 ASSERT_NEAR(segments[i].second.x, 60.000000000000000, DELTA_MAX); 1078 ASSERT_NEAR(segments[i].second.GetX(), 60.000000000000000, DELTA_MAX);
1079 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 1079 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
1080 i++; 1080 i++;
1081 ASSERT_NEAR(segments[i].first.x, 75.000000000000000, DELTA_MAX); 1081 ASSERT_NEAR(segments[i].first.GetX(), 75.000000000000000, DELTA_MAX);
1082 ASSERT_NEAR(segments[i].first.y, 15.000000000000000, DELTA_MAX); 1082 ASSERT_NEAR(segments[i].first.GetY(), 15.000000000000000, DELTA_MAX);
1083 ASSERT_NEAR(segments[i].second.x, 80.000000000000000, DELTA_MAX); 1083 ASSERT_NEAR(segments[i].second.GetX(), 80.000000000000000, DELTA_MAX);
1084 ASSERT_NEAR(segments[i].second.y, 15.000000000000000, DELTA_MAX); 1084 ASSERT_NEAR(segments[i].second.GetY(), 15.000000000000000, DELTA_MAX);
1085 i++; 1085 i++;
1086 ASSERT_NEAR(segments[i].first.x, 10.000000000000000, DELTA_MAX); 1086 ASSERT_NEAR(segments[i].first.GetX(), 10.000000000000000, DELTA_MAX);
1087 ASSERT_NEAR(segments[i].first.y, 20.000000000000000, DELTA_MAX); 1087 ASSERT_NEAR(segments[i].first.GetY(), 20.000000000000000, DELTA_MAX);
1088 ASSERT_NEAR(segments[i].second.x, 34.000000000000000, DELTA_MAX); 1088 ASSERT_NEAR(segments[i].second.GetX(), 34.000000000000000, DELTA_MAX);
1089 ASSERT_NEAR(segments[i].second.y, 20.000000000000000, DELTA_MAX); 1089 ASSERT_NEAR(segments[i].second.GetY(), 20.000000000000000, DELTA_MAX);
1090 i++; 1090 i++;
1091 ASSERT_NEAR(segments[i].first.x, 41.000000000000000, DELTA_MAX); 1091 ASSERT_NEAR(segments[i].first.GetX(), 41.000000000000000, DELTA_MAX);
1092 ASSERT_NEAR(segments[i].first.y, 20.000000000000000, DELTA_MAX); 1092 ASSERT_NEAR(segments[i].first.GetY(), 20.000000000000000, DELTA_MAX);
1093 ASSERT_NEAR(segments[i].second.x, 42.000000000000000, DELTA_MAX); 1093 ASSERT_NEAR(segments[i].second.GetX(), 42.000000000000000, DELTA_MAX);
1094 ASSERT_NEAR(segments[i].second.y, 20.000000000000000, DELTA_MAX); 1094 ASSERT_NEAR(segments[i].second.GetY(), 20.000000000000000, DELTA_MAX);
1095 i++; 1095 i++;
1096 ASSERT_NEAR(segments[i].first.x, 46.000000000000000, DELTA_MAX); 1096 ASSERT_NEAR(segments[i].first.GetX(), 46.000000000000000, DELTA_MAX);
1097 ASSERT_NEAR(segments[i].first.y, 20.000000000000000, DELTA_MAX); 1097 ASSERT_NEAR(segments[i].first.GetY(), 20.000000000000000, DELTA_MAX);
1098 ASSERT_NEAR(segments[i].second.x, 80.000000000000000, DELTA_MAX); 1098 ASSERT_NEAR(segments[i].second.GetX(), 80.000000000000000, DELTA_MAX);
1099 ASSERT_NEAR(segments[i].second.y, 20.000000000000000, DELTA_MAX); 1099 ASSERT_NEAR(segments[i].second.GetY(), 20.000000000000000, DELTA_MAX);
1100 i++; 1100 i++;
1101 ASSERT_NEAR(segments[i].first.x, 90.000000000000000, DELTA_MAX); 1101 ASSERT_NEAR(segments[i].first.GetX(), 90.000000000000000, DELTA_MAX);
1102 ASSERT_NEAR(segments[i].first.y, 20.000000000000000, DELTA_MAX); 1102 ASSERT_NEAR(segments[i].first.GetY(), 20.000000000000000, DELTA_MAX);
1103 ASSERT_NEAR(segments[i].second.x, 96.000000000000000, DELTA_MAX); 1103 ASSERT_NEAR(segments[i].second.GetX(), 96.000000000000000, DELTA_MAX);
1104 ASSERT_NEAR(segments[i].second.y, 20.000000000000000, DELTA_MAX); 1104 ASSERT_NEAR(segments[i].second.GetY(), 20.000000000000000, DELTA_MAX);
1105 i++; 1105 i++;
1106 ASSERT_NEAR(segments[i].first.x, 1.0000000000000000, DELTA_MAX); 1106 ASSERT_NEAR(segments[i].first.GetX(), 1.0000000000000000, DELTA_MAX);
1107 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 1107 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
1108 ASSERT_NEAR(segments[i].second.x, 33.000000000000000, DELTA_MAX); 1108 ASSERT_NEAR(segments[i].second.GetX(), 33.000000000000000, DELTA_MAX);
1109 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 1109 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
1110 i++; 1110 i++;
1111 ASSERT_NEAR(segments[i].first.x, 34.000000000000000, DELTA_MAX); 1111 ASSERT_NEAR(segments[i].first.GetX(), 34.000000000000000, DELTA_MAX);
1112 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 1112 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
1113 ASSERT_NEAR(segments[i].second.x, 40.000000000000000, DELTA_MAX); 1113 ASSERT_NEAR(segments[i].second.GetX(), 40.000000000000000, DELTA_MAX);
1114 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 1114 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
1115 i++; 1115 i++;
1116 ASSERT_NEAR(segments[i].first.x, 42.000000000000000, DELTA_MAX); 1116 ASSERT_NEAR(segments[i].first.GetX(), 42.000000000000000, DELTA_MAX);
1117 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 1117 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
1118 ASSERT_NEAR(segments[i].second.x, 43.000000000000000, DELTA_MAX); 1118 ASSERT_NEAR(segments[i].second.GetX(), 43.000000000000000, DELTA_MAX);
1119 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 1119 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
1120 i++; 1120 i++;
1121 ASSERT_NEAR(segments[i].first.x, 51.000000000000000, DELTA_MAX); 1121 ASSERT_NEAR(segments[i].first.GetX(), 51.000000000000000, DELTA_MAX);
1122 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 1122 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
1123 ASSERT_NEAR(segments[i].second.x, 61.000000000000000, DELTA_MAX); 1123 ASSERT_NEAR(segments[i].second.GetX(), 61.000000000000000, DELTA_MAX);
1124 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 1124 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
1125 i++; 1125 i++;
1126 ASSERT_NEAR(segments[i].first.x, 76.000000000000000, DELTA_MAX); 1126 ASSERT_NEAR(segments[i].first.GetX(), 76.000000000000000, DELTA_MAX);
1127 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 1127 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
1128 ASSERT_NEAR(segments[i].second.x, 90.000000000000000, DELTA_MAX); 1128 ASSERT_NEAR(segments[i].second.GetX(), 90.000000000000000, DELTA_MAX);
1129 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 1129 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
1130 i++; 1130 i++;
1131 ASSERT_NEAR(segments[i].first.x, 95.000000000000000, DELTA_MAX); 1131 ASSERT_NEAR(segments[i].first.GetX(), 95.000000000000000, DELTA_MAX);
1132 ASSERT_NEAR(segments[i].first.y, 25.000000000000000, DELTA_MAX); 1132 ASSERT_NEAR(segments[i].first.GetY(), 25.000000000000000, DELTA_MAX);
1133 ASSERT_NEAR(segments[i].second.x, 96.000000000000000, DELTA_MAX); 1133 ASSERT_NEAR(segments[i].second.GetX(), 96.000000000000000, DELTA_MAX);
1134 ASSERT_NEAR(segments[i].second.y, 25.000000000000000, DELTA_MAX); 1134 ASSERT_NEAR(segments[i].second.GetY(), 25.000000000000000, DELTA_MAX);
1135 i++; 1135 i++;
1136 ASSERT_NEAR(segments[i].first.x, 1.0000000000000000, DELTA_MAX); 1136 ASSERT_NEAR(segments[i].first.GetX(), 1.0000000000000000, DELTA_MAX);
1137 ASSERT_NEAR(segments[i].first.y, 30.000000000000000, DELTA_MAX); 1137 ASSERT_NEAR(segments[i].first.GetY(), 30.000000000000000, DELTA_MAX);
1138 ASSERT_NEAR(segments[i].second.x, 33.000000000000000, DELTA_MAX); 1138 ASSERT_NEAR(segments[i].second.GetX(), 33.000000000000000, DELTA_MAX);
1139 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 1139 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
1140 i++; 1140 i++;
1141 ASSERT_NEAR(segments[i].first.x, 40.000000000000000, DELTA_MAX); 1141 ASSERT_NEAR(segments[i].first.GetX(), 40.000000000000000, DELTA_MAX);
1142 ASSERT_NEAR(segments[i].first.y, 30.000000000000000, DELTA_MAX); 1142 ASSERT_NEAR(segments[i].first.GetY(), 30.000000000000000, DELTA_MAX);
1143 ASSERT_NEAR(segments[i].second.x, 43.000000000000000, DELTA_MAX); 1143 ASSERT_NEAR(segments[i].second.GetX(), 43.000000000000000, DELTA_MAX);
1144 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 1144 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
1145 i++; 1145 i++;
1146 ASSERT_NEAR(segments[i].first.x, 51.000000000000000, DELTA_MAX); 1146 ASSERT_NEAR(segments[i].first.GetX(), 51.000000000000000, DELTA_MAX);
1147 ASSERT_NEAR(segments[i].first.y, 30.000000000000000, DELTA_MAX); 1147 ASSERT_NEAR(segments[i].first.GetY(), 30.000000000000000, DELTA_MAX);
1148 ASSERT_NEAR(segments[i].second.x, 61.000000000000000, DELTA_MAX); 1148 ASSERT_NEAR(segments[i].second.GetX(), 61.000000000000000, DELTA_MAX);
1149 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 1149 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
1150 i++; 1150 i++;
1151 ASSERT_NEAR(segments[i].first.x, 76.000000000000000, DELTA_MAX); 1151 ASSERT_NEAR(segments[i].first.GetX(), 76.000000000000000, DELTA_MAX);
1152 ASSERT_NEAR(segments[i].first.y, 30.000000000000000, DELTA_MAX); 1152 ASSERT_NEAR(segments[i].first.GetY(), 30.000000000000000, DELTA_MAX);
1153 ASSERT_NEAR(segments[i].second.x, 95.000000000000000, DELTA_MAX); 1153 ASSERT_NEAR(segments[i].second.GetX(), 95.000000000000000, DELTA_MAX);
1154 ASSERT_NEAR(segments[i].second.y, 30.000000000000000, DELTA_MAX); 1154 ASSERT_NEAR(segments[i].second.GetY(), 30.000000000000000, DELTA_MAX);
1155 } 1155 }
1156 1156
1157 #if defined(BGO_ENABLE_DICOMSTRUCTURESETLOADER2) && (ORTHANC_SANDBOXED != 1) 1157 #if defined(BGO_ENABLE_DICOMSTRUCTURESETLOADER2) && (ORTHANC_SANDBOXED != 1)
1158 1158
1159 #include <SystemToolbox.h> 1159 #include <SystemToolbox.h>