t_warper.cpp

Go to the documentation of this file.
00001 /*****************************************************************************\
00002 *                                                                             *
00003 *  Name   : test_rectangle_warper                                             *
00004 *  Author : Chris Koeritz                                                     *
00005 *                                                                             *
00006 *  Purpose:                                                                   *
00007 *                                                                             *
00008 *    Tests the rectangle warper class.                                        *
00009 *                                                                             *
00010 *******************************************************************************
00011 * Copyright (c) 1993-$now By Author.  This program is free software; you can  *
00012 * redistribute it and/or modify it under the terms of the GNU General Public  *
00013 * License as published by the Free Software Foundation; either version 2 of   *
00014 * the License or (at your option) any later version.  This is online at:      *
00015 *     http://www.fsf.org/copyleft/gpl.html                                    *
00016 * Please send any updates to: fred@gruntose.com                               *
00017 \*****************************************************************************/
00018 
00019 #include <basis/function.h>
00020 #include <basis/guards.h>
00021 #include <geometric/warper.cpp>
00022 #include <data_struct/static_memory_gremlin.h>
00023 
00024 #include <stdio.h>
00025 
00026 HOOPLE_STARTUP_CODE;
00027 
00028 using namespace geometric;
00029 
00030 int main(int formal(argc), char *formal(argv)[])
00031 {
00032   rectangle<double> inner(-20, 0, -60, 30);
00033   rectangle<double> outer(20, 30, 0, 0);
00034   rectangle_warper<double> ito(inner, outer, rectangle_warper<double>::TOP_LEFT,
00035       rectangle_warper<double>::BOTTOM_RIGHT);
00036 //LOG(istring("inner to outer warper is: " + ito.text_form()));
00037 
00038   rectangle<double> warped_inner(ito.to_system_2(inner));
00039 //LOG(istring("warped inner becomes ") + warped_inner.text_form());
00040   rectangle<double> warped_outer(ito.to_system_1(outer));
00041 //LOG(istring(" and outer becomes ") + warped_outer.text_form());
00042   if ( (warped_inner != outer) || (warped_outer != inner) )
00043     deadly_error("t_rectangle_warper", "main",
00044         "systems do not warp to each other correctly");
00045 
00046   point<double> in_center(inner.center());
00047   point<double> warp_in_center(ito.to_system_2(in_center));
00048   point<double> out_center(outer.center());
00049   point<double> warp_out_center(ito.to_system_1(out_center));
00050   if ( (warp_out_center != inner.center())
00051       || (warp_in_center != outer.center()) )
00052     deadly_error("t_rectangle_warper", "main",
00053         "centers do not warp to each other");
00054   printf("rectangle_warper:: works for those functions tested.\n");
00055   return 0;
00056 }
00057 

Generated on Fri Nov 28 04:29:38 2008 for HOOPLE Libraries by  doxygen 1.5.1