void test2() { Vec3<double> myorigin = Vec3<double>(0.0, 0.0, 0.0); Vec3<double> myradii = Vec3<double>(10.0, 10.0, 10.0); Octree* mytree = new Octree(myorigin, myradii); assert(mytree->getOrigin().getX() == 0.0); assert(mytree->getRadii().getX() == 10.0); double i = 5.0; OctreePoint *mydata = new OctreePoint(Vec3<double>(43.0, 21.0, 24.0), i, 7); mytree->insert(mydata); std::vector<OctreePoint*> results; mytree->getPointsInBox(Vec3<double>(0.0, 0.0, 0.0), Vec3<double>(45.0, 25.0, 25.0), results); std::cout << results[0]->getIndex() << std::endl; delete mytree; }
bool loadMap(const char* filename, Octree &map) { FILE * file = fopen(filename, "r"); if (NULL == file) { fprintf(stderr, "Couldn't open %s for reading the map\n", filename); return false; } int num_objs = 0; fscanf(file, "%d ", &num_objs); GameDrawableObject *read_object; char name[100]; int matnum; vec3 p, s, r; while (num_objs--) { fscanf(file, "%s %d\n", name, &matnum); read3f(p, file); //printf("read p:\n"); //fprint3f(p, stdout); read3f(s, file); //printf("read s:\n"); //fprint3f(s, stdout); read3f(r, file); //printf("read r:\n"); //fprint3f(r, stdout); // TODO - put this info in a std::map if (strcmp(name, "building") == 0) { read_object = new GameBuilding(); } else if (strcmp(name, "ramp") == 0) { read_object = new GameRamp(); } else if (strcmp(name, "wings") == 0) { read_object = new GamePartWings("models/wings.obj"); } else if (strcmp(name, "engine") == 0) { read_object = new GamePartEngine("models/engine.obj"); } else if (strcmp(name, "battery") == 0) { read_object = new GamePartBattery(); } else if (strcmp(name, "stat_speed") == 0) { read_object = new GameStatSpeed(); } else if (strcmp(name, "stat_acceleration") == 0) { read_object = new GameStatAcceleration(); } else if (strcmp(name, "stat_brake") == 0) { read_object = new GameStatBrake(); } else if (strcmp(name, "stat_turn") == 0) { read_object = new GameStatTurn(); } else if (strcmp(name, "speed_boost") == 0) { read_object = new GameActiveBoost(); } else if (strcmp(name, "jetpack") == 0) { printf("***read jetpack\n"); read_object = new GameActiveJetpack(); } else if (strcmp(name, "turning") == 0) { read_object = new GameActiveTurning(); } else if (strcmp(name, "tree") == 0) { read_object = new GameSceneryTree(); read_object->setName("tree"); } else { // unknown read_object = new GameBuilding(); } // read_object->setName(name); read_object->setPosition(p); read_object->setScale(s); read_object->setRotation(r); read_object->setMaterialIndex(matnum); map.insert(read_object); } fclose(file); return true; }