anfang entwicklung modelloader
This commit is contained in:
parent
f0fb315b19
commit
744763dd4d
|
@ -0,0 +1,13 @@
|
|||
CC = g++
|
||||
OBJOPT = -c `sdl-config --cflags` -Wall
|
||||
OBJECTS = load3ds.o
|
||||
|
||||
glguilib: $(OBJECTS)
|
||||
# rm glgui.a -f
|
||||
ar crus glmenu.a $(OBJECTS)
|
||||
|
||||
%.o: %.cpp %.h
|
||||
$(CC) $(OBJOPT) $<
|
||||
|
||||
clean:
|
||||
rm -f $(OBJECTS)
|
|
@ -0,0 +1,48 @@
|
|||
#include "load3ds.h"
|
||||
|
||||
Load3ds::Load3ds(std::string _fname, bool _parse) {
|
||||
filename = _fname;
|
||||
parsed = false;
|
||||
error = false;
|
||||
|
||||
if(_parse)
|
||||
parse();
|
||||
}
|
||||
|
||||
|
||||
bool Load3ds::parse() {
|
||||
if(parsed)
|
||||
unload();
|
||||
std::ifstream mfile(filename.c_str(), std::ios::binary);
|
||||
|
||||
if(!mfile) {
|
||||
return false;
|
||||
}
|
||||
|
||||
unsigned short ident;
|
||||
unsigned char m, n;
|
||||
|
||||
while(!mfile.eof()) {
|
||||
ident = m = n = 0;
|
||||
mfile.read((char *)&ident, 2);
|
||||
mfile.read((char *)&m, 1);
|
||||
mfile.read((char *)&n, 1);
|
||||
std::cout << "Chunk: " << ident << " (" << (int)m << ", " << (int)n << ")" << std::endl;
|
||||
switch(ident) {
|
||||
case 0x4d4d:
|
||||
std::cout << "yeah!" << std::endl;
|
||||
break;
|
||||
default:
|
||||
//Switch Chunk
|
||||
mfile.ignore(m+n);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Load3ds::unload() {
|
||||
parsed = false;
|
||||
error = false;
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
#ifndef __LOAD3DS_H
|
||||
#define __LOAD3DS_H
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class Chunk {
|
||||
private:
|
||||
short ident;
|
||||
char m;
|
||||
char n;
|
||||
|
||||
public:
|
||||
Chunk() { };
|
||||
void parse();
|
||||
};
|
||||
|
||||
class Load3ds {
|
||||
private:
|
||||
std::string filename;
|
||||
|
||||
bool parsed;
|
||||
bool error;
|
||||
public:
|
||||
Load3ds(std::string _fname, bool parse=true);
|
||||
|
||||
bool parse();
|
||||
void unload();
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue