File indexing completed on 2024-04-21 03:44:01

0001 #include <iostream>
0002 
0003 #include "HTMesh.h"
0004 #include "MeshIterator.h"
0005 
0006 int main()
0007 {
0008     int level = 5;
0009     printf("level = %d\n", level);
0010     HTMesh *mesh = new HTMesh(level, level);
0011     mesh->setDebug(17);
0012 
0013     double ra  = 6.75 * 15.;
0014     double dec = -16.72;
0015 
0016     //Lookup the triangle containing (ra,dec)
0017     long id          = mesh->index(ra, dec);
0018     const char *name = mesh->indexToName(id);
0019     printf("(%8.4f %8.4f): %s\n", ra, dec, name);
0020 
0021     double vr1, vd1, vr2, vd2, vr3, vd3;
0022     mesh->vertices(id, &vr1, &vd1, &vr2, &vd2, &vr3, &vd3);
0023 
0024     printf("\nThe three vertices of %s are:\n", name);
0025     printf("    (%6.2f, %6.2f)\n", vr1, vd1);
0026     printf("    (%6.2f, %6.2f)\n", vr2, vd2);
0027     printf("    (%6.2f, %6.2f)\n", vr3, vd3);
0028 
0029     printf("\n");
0030     //Loop over triangles within one degree of (ra,dec)
0031 
0032     double radius = 2.0;
0033     //printf("Leak test! ...\n");
0034     for (int ii = 0; ii < 1; ii++)
0035     {
0036         mesh->intersect(ra, dec, ra - radius, dec, ra - radius, dec + radius);
0037         mesh->intersect(ra, dec, ra - radius, dec, ra - radius, dec + radius, ra, dec + radius);
0038 
0039         mesh->intersect(ra, dec, radius);
0040         //continue;
0041 
0042         MeshIterator iterator(mesh);
0043 
0044         printf("Number of trixels = %d\n\n", mesh->intersectSize());
0045         printf("Triangles within %5.2f degrees of (%6.2f, %6.2f)\n", radius, ra, dec);
0046 
0047         while (iterator.hasNext())
0048         {
0049             printf("%s\n", mesh->indexToName(iterator.next()));
0050         }
0051     }
0052 
0053     double ra1, dec1, ra2, dec2;
0054     ra1  = 275.874939;
0055     ra2  = 274.882451;
0056     dec1 = -82.470360;
0057     dec2 = -82.482475;
0058 
0059     printf("Testing Line intersection: (%f, %f) -->\n", ra1, dec1);
0060     printf("                           (%f, %f)\n", ra2, dec2);
0061 
0062     mesh->intersect(ra1, dec1, ra2, dec2);
0063     printf("found %d trixels\n", mesh->intersectSize());
0064 
0065     return 0;
0066 }