00001 // Copyright (c) 2010-2016 The YP-Spur Authors, except where otherwise indicated. 00002 // 00003 // Permission is hereby granted, free of charge, to any person obtaining a copy 00004 // of this software and associated documentation files (the "Software"), to 00005 // deal in the Software without restriction, including without limitation the 00006 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 00007 // sell copies of the Software, and to permit persons to whom the Software is 00008 // furnished to do so, subject to the following conditions: 00009 // 00010 // The above copyright notice and this permission notice shall be included in 00011 // all copies or substantial portions of the Software. 00012 // 00013 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00014 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00015 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00016 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00017 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00018 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 00019 // SOFTWARE. 00020 00021 #include <math.h> 00022 #include <stdio.h> 00023 00024 #include <cartesian2d.h> 00025 00026 CSptr BS, GL, LC, LC2, LC3, LC4; 00027 00028 int main(int argc, char *argv[]) 00029 { 00030 double x, y, theta; 00031 00032 BS = CS_add(0, 0, 0, 0); 00033 GL = CS_add(BS, 1, 1, 0); 00034 LC = CS_add(GL, 1, 1, 0); 00035 LC2 = CS_add(GL, 2, 2, 0); 00036 LC3 = CS_add(BS, -3, -3, 0); 00037 LC4 = CS_add(LC3, -3, -3, 0); 00038 00039 x = 2; 00040 y = 2; 00041 theta = 2; 00042 CS_recursive_trans(GL, BS, &x, &y, &theta); 00043 printf("%f %f %f\n", x, y, theta); 00044 00045 x = 2; 00046 y = 2; 00047 theta = 2; 00048 CS_recursive_trans(LC, GL, &x, &y, &theta); 00049 printf("%f %f %f\n", x, y, theta); 00050 00051 x = 2; 00052 y = 2; 00053 theta = 2; 00054 CS_recursive_trans(LC2, GL, &x, &y, &theta); 00055 printf("%f %f %f\n", x, y, theta); 00056 00057 x = 2; 00058 y = 2; 00059 theta = 2; 00060 CS_recursive_trans(LC4, LC, &x, &y, &theta); 00061 printf("%f %f %f\n", x, y, theta); 00062 00063 return 0; 00064 }