Develop and Download Open Source Software

Browse CVS Repository

Contents of /autocoast/src/lib/dataset.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download) (as text)
Wed Nov 17 10:22:02 2004 UTC (19 years, 4 months ago) by tmurakam
Branch: MAIN
CVS Tags: v0_3, v0_2, HEAD
Changes since 1.1: +6 -2 lines
File MIME type: text/x-c++src
misc fix

1 //
2 // AutoCoast: Automatic Coastline scenery generator for Flight Simulator
3 //
4 // Copyright (c) 2004, Takuya Murakami. All rights reserved.
5 //
6 // Redistribution and use in source and binary forms, with or without
7 // modification, are permitted provided that the following conditions
8 // are met:
9 //
10 // 1. Redistributions of source code must retain the above copyright
11 // notice, this list of conditions and the following disclaimer.
12 //
13 // 2. Redistributions in binary form must reproduce the above copyright
14 // notice, this list of conditions and the following disclaimer in the
15 // documentation and/or other materials provided with the distribution.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 // ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
21 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29 // dataset.cpp: polygon data set
30
31 #include "dataset.hpp"
32
33 DataSet::DataSet()
34 {
35 for (int i = 0; i <= NUM_LEVEL; i++) {
36 source[i] = NULL;
37 }
38 }
39
40 DataSet::~DataSet()
41 {
42 for (int i = 1; i <= NUM_LEVEL; i++) {
43 if (source[i] != NULL) {
44 delete source[i];
45 }
46 }
47 }
48
49 void DataSet::setSource(int i, GpcPolygon *p)
50 {
51 source[i] = p;
52 }
53
54 void DataSet::LoadData(void)
55 {
56 for (int i = 1; i <= NUM_LEVEL; i++) {
57 if (source[i] != NULL) {
58 delete source[i];
59 }
60 source[i] = new GpcPolygon;
61
62 char fname[128];
63 sprintf(fname, "level%d.gpc", i);
64
65 source[i]->LoadFromFile(fname);
66 }
67 }
68
69 DataSet * DataSet::Clipping(BoundingBox &bbox)
70 {
71 DataSet *clipped = new DataSet;
72
73 for (int i = 1; i <= NUM_LEVEL; i++) {
74 clipped->setSource(i, source[i]->Clipping(bbox));
75 }
76
77 return clipped;
78 }
79
80 bool DataSet::isEmpty(BoundingBox &bbox)
81 {
82 for (int i = 1; i <= NUM_LEVEL; i++) {
83 if (!source[i]->isEmpty() &&
84 !source[i]->isFull(bbox)) {
85 //fprintf(stderr, "D");
86 return false;
87 }
88 }
89 //fprintf(stderr, "E");
90 return true;
91 }
92
93 void DataSet::printStat(void)
94 {
95 for (int i = 1; i <= NUM_LEVEL; i++) {
96 fprintf(stderr, "level=%d ", i);
97 source[i]->printStat();
98 }
99 }

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26