| 35 |
|
printf("Could not open SHAPE file %s\n", fname); |
| 36 |
|
exit(-1); |
| 37 |
|
} |
| 38 |
< |
rewind(shapeFile); |
| 39 |
< |
lineNum = 0; |
| 38 |
> |
|
| 39 |
> |
findBegin( "ShapeInfo" ); |
| 40 |
> |
|
| 41 |
|
eof_test = fgets( readLine, sizeof(readLine), shapeFile ); |
| 42 |
< |
lineNum++; |
| 42 |
< |
if( eof_test == NULL ){ |
| 43 |
< |
printf("Error in reading SHAPE from SHAPE file at line %d.\n", |
| 44 |
< |
lineNum ); |
| 45 |
< |
exit(-1); |
| 46 |
< |
} |
| 47 |
< |
// first find the shape name: |
| 42 |
> |
|
| 43 |
|
while( eof_test != NULL ){ |
| 44 |
|
// toss comment lines |
| 45 |
|
if( readLine[0] != '!' && readLine[0] != '#' ){ |
| 46 |
+ |
|
| 47 |
+ |
foo = strtok(readLine, " ,;\t"); |
| 48 |
+ |
if (!strcasecmp(foo, "end")) break; |
| 49 |
|
|
| 50 |
|
nTokens = count_tokens(readLine, " ,;\t"); |
| 51 |
|
if (nTokens < 5) { |
| 52 |
< |
printf("Not enough data on information line in SHAPE file.\n"); |
| 52 |
> |
printf("Not enough data on shapeInfo line in SHAPE file.\n"); |
| 53 |
|
exit(-1); |
| 54 |
|
} |
| 55 |
|
|
| 66 |
|
break; |
| 67 |
|
} |
| 68 |
|
eof_test = fgets( readLine, sizeof(readLine), shapeFile ); |
| 71 |
– |
lineNum++; |
| 69 |
|
} |
| 70 |
|
|
| 71 |
|
findBegin( "ContactFunctions" ); |
| 254 |
|
|
| 255 |
|
free(working_line); |
| 256 |
|
return(ntokens); |
| 257 |
+ |
} |
| 258 |
+ |
|
| 259 |
+ |
|
| 260 |
+ |
double SHAPE::getSigmaAt(double costheta, double phi) { |
| 261 |
+ |
|
| 262 |
+ |
vector<SHFunc*>::iterator sigmaIter; |
| 263 |
+ |
double sigma; |
| 264 |
+ |
|
| 265 |
+ |
sigma = 0.0; |
| 266 |
+ |
|
| 267 |
+ |
for(sigmaIter = sigmaFuncs.begin(); sigmaIter != sigmaFuncs.end(); |
| 268 |
+ |
++sigmaIter) |
| 269 |
+ |
sigma += (*sigmaIter)->getValueAt(costheta, phi); |
| 270 |
+ |
|
| 271 |
+ |
return sigma; |
| 272 |
|
} |
| 273 |
+ |
|
| 274 |
+ |
double SHAPE::getSAt(double costheta, double phi) { |
| 275 |
+ |
|
| 276 |
+ |
vector<SHFunc*>::iterator sIter; |
| 277 |
+ |
double s; |
| 278 |
+ |
|
| 279 |
+ |
s = 0.0; |
| 280 |
+ |
|
| 281 |
+ |
for(sIter = sFuncs.begin(); sIter != sFuncs.end(); ++sIter) |
| 282 |
+ |
s += (*sIter)->getValueAt(costheta, phi); |
| 283 |
+ |
|
| 284 |
+ |
return s; |
| 285 |
+ |
} |
| 286 |
+ |
|
| 287 |
+ |
double SHAPE::getEpsAt(double costheta, double phi) { |
| 288 |
+ |
|
| 289 |
+ |
vector<SHFunc*>::iterator epsIter; |
| 290 |
+ |
double eps; |
| 291 |
+ |
|
| 292 |
+ |
eps = 0.0; |
| 293 |
+ |
|
| 294 |
+ |
for(epsIter = epsFuncs.begin(); epsIter != epsFuncs.end(); ++epsIter) |
| 295 |
+ |
eps += (*epsIter)->getValueAt(costheta, phi); |
| 296 |
+ |
|
| 297 |
+ |
return eps; |
| 298 |
+ |
} |