Commit 5d5ce39a33a4782557b6ad61e4c393654d6b36e0

Authored by heziqi
1 parent 2ad0ce4f

Ziqi convert the T * functions to boolean ones

Showing 1 changed file with 16 additions and 33 deletions   Show diff stats
envi/binary.h
... ... @@ -79,55 +79,38 @@ public:
79 79 return test_file_size();
80 80 }
81 81  
82   - //DAVE: pass destination pointer as a parameter, make this a boolean function
83   - T * saveZ(unsigned int page){
  82 + //save one band of the file into the memory, and return the pointer
  83 + bool saveZ( T * p, unsigned int page){
84 84  
85   - T * p;
86   -
87   - if (page > R[2]){ //make sure the bank number is right
  85 + if (page >= R[2]){ //make sure the bank number is right
88 86 std::cout<<"ERROR: page out of range"<<std::endl;
89   - return NULL;
  87 + return false;
90 88 }
91 89  
92   - //DAVE: don't allocate memory here, do it in main()
93   - p=(T *)malloc(R[0]*R[1]*sizeof(T)); //memory allocation
94   - if (p==NULL)
95   - cout<<"memory allocation failure";
96   -
97   - file.seekg(R[1] * R[0] * page * sizeof(T),ios::beg); //write into memory from the binary file
  90 + file.seekg(R[1] * R[0] * page * sizeof(T), ios::beg); //write into memory from the binary file
98 91 file.read((char *)p, R[0] * R[1] * sizeof(T));
99 92  
100   - return p;
  93 + return true;
101 94 }
102 95  
103   - //DAVE: same here
104   - T * saveXY(unsigned x, unsigned y){
  96 + //save one pixel of the file into the memory, and return the pointer
  97 + bool saveXY(T * p, unsigned x, unsigned y){
105 98  
106   - T * px;
107 99 unsigned int i;
108 100  
109   - if (x<1||x>R[0]||y<1||y>R[1]){ //make sure the sample and line number is right
110   - cout<<"wrong page";
111   - getchar();
112   - return NULL;
  101 + if ( x >= R[0] || y >= R[1]){ //make sure the sample and line number is right
  102 + std::cout<<"ERROR: sample or line out of range"<<std::endl;
  103 + return false;
113 104 }
114 105  
115   - px=(T *)malloc(R[2]*sizeof(T)); //memory allocation
116   - if (px==NULL)
117   - cout<<"memory allocation failure";
118   -
119   - x=x-1;
120   - y=y-1;
121   -
122   - file.seekg((x+y*R[0])*sizeof(T),ios::beg); //point to the certain sample and line
123   - for (i=0;i<R[2];i++)
  106 + file.seekg((x + y * R[0]) * sizeof(T), ios::beg); //point to the certain sample and line
  107 + for (i = 0; i < R[2]; i++)
124 108 {
125   - file.read((char *)(px+i), sizeof(T));
126   - file.seekg((R[1]*R[0]-1)*sizeof(T),ios::cur); //go to the next band
  109 + file.read((char *)(p + i), sizeof(T));
  110 + file.seekg((R[1] * R[0] - 1) * sizeof(T), ios::cur); //go to the next band
127 111 }
128 112  
129   - return px;
130   -
  113 + return true;
131 114 }
132 115  
133 116 /*bool open(std::string filename, unsigned int X, unsigned int h = 0){
... ...