/[hegemonie]/hegemonie/Model/MD3Data.m
ViewVC logotype

Diff of /hegemonie/Model/MD3Data.m

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by c-leo, Mon Jun 30 14:19:01 2003 UTC revision 1.6 by ano, Tue Aug 19 15:26:56 2003 UTC
# Line 27  Line 27 
27  #include <fcntl.h>  #include <fcntl.h>
28  #include <errno.h>  #include <errno.h>
29    
30    #include <Foundation/Foundation.h>
31    
32  #include <Foundation/NSString.h>  #include <Foundation/NSString.h>
33    #include <Foundation/NSData.h>
34  #include <Foundation/NSException.h>  #include <Foundation/NSException.h>
35    
36  #include "Model/MD3Data.h"  #include "Model/MD3Data.h"
# Line 181  struct MD3MeshVertex_t Line 184  struct MD3MeshVertex_t
184    NSParameterAssert ([fileName length] != 0);    NSParameterAssert ([fileName length] != 0);
185        
186    self = [super init];    self = [super init];
187    
188      _dataBase = [[NSData alloc] initWithContentsOfMappedFile: fileName];
189      _data = (void *)[_dataBase bytes];
190        
191    if (self != nil)  //   if (self != nil)
192      {  //     {
193        int fileDescriptor;  //       int fileDescriptor;
194        if ((fileDescriptor = open ([fileName cString], O_RDONLY)) == -1)  //       if ((fileDescriptor = open ([fileName cString], O_RDONLY)) == -1)
195          {  //      {
196            fprintf (stderr, "Couldn't open file %s; %s\n",  //        fprintf (stderr, "Couldn't open file %s; %s\n",
197                     [fileName cString], strerror (errno));  //                 [fileName cString], strerror (errno));
198            return nil;  //        return nil;
199          }  //      }
200                
201        if ([self _readData: fileDescriptor] == FAILURE)  //       if ([self _readData: fileDescriptor] == FAILURE)
202          {  //      {
203            fprintf (stderr, "Couldn't read file %s\n",  //        fprintf (stderr, "Couldn't read file %s\n",
204                     [fileName cString]);  //                 [fileName cString]);
205            return nil;  //        return nil;
206          }  //      }
207        
208        close (fileDescriptor);  //       close (fileDescriptor);
209      }  //     }
210    
211    return self;    return self;
212  }  }
# Line 212  struct MD3MeshVertex_t Line 218  struct MD3MeshVertex_t
218  {  {
219    NSParameterAssert (_data);    NSParameterAssert (_data);
220        
221    munmap (_data, _size);    RELEASE(_dataBase);
222      
223      // munmap (_data, _size);
224        
225    [super dealloc];    [super dealloc];
226  }  }
# Line 239  struct MD3MeshVertex_t Line 247  struct MD3MeshVertex_t
247  {  {
248    NSParameterAssert (_data);    NSParameterAssert (_data);
249        
250    return ((struct MD3Header_t *) _data)->numBoneFrames;    return
251        NSSwapLittleIntToHost(((struct MD3Header_t *) _data)->numBoneFrames);
252  }  }
253    
254        
# Line 250  struct MD3MeshVertex_t Line 259  struct MD3MeshVertex_t
259  {  {
260    NSParameterAssert (_data);    NSParameterAssert (_data);
261        
262    return ((struct MD3Header_t *) _data)->headerSize;    return  
263        NSSwapLittleIntToHost(((struct MD3Header_t *) _data)->headerSize);
264  }  }
265    
266    
# Line 261  struct MD3MeshVertex_t Line 271  struct MD3MeshVertex_t
271  {  {
272    NSParameterAssert (_data);    NSParameterAssert (_data);
273        
274    return ((struct MD3Header_t *) _data)->numTags;    return
275        NSSwapLittleIntToHost(((struct MD3Header_t *) _data)->numTags);
276  }  }
277    
278    
# Line 272  struct MD3MeshVertex_t Line 283  struct MD3MeshVertex_t
283  {  {
284    NSParameterAssert (_data);    NSParameterAssert (_data);
285        
286    return ((struct MD3Header_t *) _data)->tagStart;    return  
287        NSSwapLittleIntToHost(((struct MD3Header_t *) _data)->tagStart);
288  }  }
289    
290    
# Line 283  struct MD3MeshVertex_t Line 295  struct MD3MeshVertex_t
295  {  {
296    NSParameterAssert (_data);    NSParameterAssert (_data);
297        
298    return ((struct MD3Header_t *) _data)->numMeshes;    return
299        NSSwapLittleIntToHost(((struct MD3Header_t *) _data)->numMeshes);
300  }  }
301    
302    
# Line 294  struct MD3MeshVertex_t Line 307  struct MD3MeshVertex_t
307  {  {
308    NSParameterAssert (_data);    NSParameterAssert (_data);
309        
310    return ((struct MD3Header_t *) _data)->meshStart;    return
311        NSSwapLittleIntToHost(((struct MD3Header_t *) _data)->meshStart);
312  }  }
313    
314    
# Line 375  struct MD3MeshVertex_t Line 389  struct MD3MeshVertex_t
389    NSParameterAssert (noBoneFrame < [self nbFrames]);    NSParameterAssert (noBoneFrame < [self nbFrames]);
390        
391    struct MD3BoneFrame_t *boneFrame = [self _boneFrame: noBoneFrame];    struct MD3BoneFrame_t *boneFrame = [self _boneFrame: noBoneFrame];
392    return boneFrame->scale;    return
393         NSSwapLittleFloatToHost(boneFrame->scale);
394  }  }
395    
396    
# Line 529  struct MD3MeshVertex_t Line 544  struct MD3MeshVertex_t
544    NSParameterAssert (noMesh < [self nbMeshes]);    NSParameterAssert (noMesh < [self nbMeshes]);
545        
546    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];
547    return meshHeader->numTextures;    return
548         NSSwapLittleIntToHost(meshHeader->numTextures);
549  }  }
550    
551    
# Line 543  struct MD3MeshVertex_t Line 559  struct MD3MeshVertex_t
559    NSParameterAssert (noMesh < [self nbMeshes]);    NSParameterAssert (noMesh < [self nbMeshes]);
560        
561    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];
562    return meshHeader->numVertice;    return  
563        NSSwapLittleIntToHost(meshHeader->numVertice);
564  }  }
565    
566    
# Line 557  struct MD3MeshVertex_t Line 574  struct MD3MeshVertex_t
574    NSParameterAssert (noMesh < [self nbMeshes]);    NSParameterAssert (noMesh < [self nbMeshes]);
575        
576    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];
577    return meshHeader->numTriangles;    return
578         NSSwapLittleIntToHost(meshHeader->numTriangles);
579  }  }
580    
581    
# Line 574  struct MD3MeshVertex_t Line 592  struct MD3MeshVertex_t
592    NSParameterAssert (noMesh < [self nbMeshes]);    NSParameterAssert (noMesh < [self nbMeshes]);
593        
594    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];
595    return meshHeader->triangleStart;    return
596         NSSwapLittleIntToHost(meshHeader->triangleStart);
597  }  }
598    
599    
# Line 590  struct MD3MeshVertex_t Line 609  struct MD3MeshVertex_t
609    NSParameterAssert (noMesh < [self nbMeshes]);    NSParameterAssert (noMesh < [self nbMeshes]);
610    
611    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];
612    return meshHeader->textureCoordStart;    return
613         NSSwapLittleIntToHost(meshHeader->textureCoordStart);
614  }  }
615    
616    
# Line 605  struct MD3MeshVertex_t Line 625  struct MD3MeshVertex_t
625    NSParameterAssert (noMesh >= 0 && noMesh < [self nbMeshes]);    NSParameterAssert (noMesh >= 0 && noMesh < [self nbMeshes]);
626        
627    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];    struct MD3MeshHeader_t *meshHeader = [self _mesh: noMesh];
628    return meshHeader->vertexStart;    return
629        NSSwapLittleIntToHost(meshHeader->vertexStart);
630  }  }
631    
632    

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26