Пример #1
0
int SDL_main(int argc, char *argv[]) {
    SDL_Event Event;
    int ScreenW = 800, ScreenH = 600;
    
    if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) != 0) exit(1);
    
    SDL_SetVideoMode(ScreenW, ScreenH, 0, SDL_RESIZABLE | SDL_OPENGL);
    SDL_WM_SetCaption("Voxel Lines SDL C++", "");
    
    VoxInit((void*)&SDL_GL_GetProcAddress, VOXEL_SCREEN128);
    
    unsigned int PrevT = SDL_GetTicks();
    for(;;) {
        VoxVolumeLock();
        VoxSetColor RGBA(255*rand()/RAND_MAX, 255*rand()/RAND_MAX, 255*rand()/RAND_MAX, 255);
        for (int I = 1; I <= 5; I++) {
            VoxLineTo(Vec3I(127*rand()/RAND_MAX, 127*rand()/RAND_MAX, 127*rand()/RAND_MAX));
        }
        VoxVolumeUnlock();
        
        VoxRender(ScreenW, ScreenH);
        SDL_GL_SwapBuffers();
        
        VoxScreenTurnRight((SDL_GetTicks() - PrevT)/10000.0);
        PrevT = SDL_GetTicks();
        
        while (SDL_PollEvent(&Event) != 0) {
            switch (Event.type) {
            case(SDL_QUIT):
                SDL_Quit();
                exit(1);
                break;
            case(SDL_VIDEORESIZE):
                ScreenW = Event.resize.w;
                ScreenH = Event.resize.h;
                break;
            }
        }
    }
}
Пример #2
0
	Vec3I Vec3I::operator* (const Vec3I& v) const
	{
		return Vec3I(x*v.x, y*v.y, z*v.z);
	}
Пример #3
0
	Vec3I Vec3I::operator/ (int s) const
	{
		return Vec3I(x / s, y / s, z / s);
	}	
Пример #4
0
	Vec3I Vec3I::operator- (const Vec3I& v) const
	{
		return Vec3I(x - v.x, y - v.y, z - v.z);
	}
Пример #5
0
	Vec3I Vec3I::operator* (int s) const
	{
		return Vec3I(x*s, y*s, z*s);
	}
Пример #6
0
	Vec3I Vec3I::operator- (int s) const
	{
		return Vec3I(x - s, y - s, y - s);
	}
Пример #7
0
	Vec3I Vec3I::operator+ (const Vec3I& v) const
	{
		return Vec3I(x + v.x, y + v.y, z + v.z);
	}
Пример #8
0
	//-------------------------------------------------------------------
	Vec3I Vec3I::operator+ (int s) const
	{
		return Vec3I(x + s, y + s, z + s);
	}
Пример #9
0
namespace fb
{
	const Vec3I Vec3I::UNIT_X = Vec3I(1, 0, 0);
	const Vec3I Vec3I::UNIT_Y = Vec3I(0, 1, 0);
	const Vec3I Vec3I::UNIT_Z = Vec3I(0, 0, 1);
	const Vec3I Vec3I::ZERO = Vec3I(0, 0, 0);
	const Vec3I Vec3I::MAX = Vec3I(INT_MAX, INT_MAX, INT_MAX);

	//-------------------------------------------------------------------
	Vec3I::Vec3I()
	{
	}

	Vec3I::Vec3I(int _x, int _y, int _z)
		: x(_x), y(_y), z(_z)
	{
	}

	Vec3I::Vec3I(const Vec3& v)
	{
		x = (int)v.x;
		y = (int)v.y;
		z = (int)v.z;
	}

	Vec3I::Vec3I(const Vec3ITuple& t)
		: x(std::get<0>(t))
		, y(std::get<1>(t))
		, z(std::get<2>(t))
	{
	}

	//-------------------------------------------------------------------
	Vec3I Vec3I::operator+ (int s) const
	{
		return Vec3I(x + s, y + s, z + s);
	}

	Vec3I Vec3I::operator+ (const Vec3I& v) const
	{
		return Vec3I(x + v.x, y + v.y, z + v.z);
	}

	Vec3I Vec3I::operator- (int s) const
	{
		return Vec3I(x - s, y - s, y - s);
	}

	Vec3I Vec3I::operator- (const Vec3I& v) const
	{
		return Vec3I(x - v.x, y - v.y, z - v.z);
	}

	Vec3I Vec3I::operator* (int s) const
	{
		return Vec3I(x*s, y*s, z*s);
	}

	Vec3 Vec3I::operator*(Real s) const
	{
		return Vec3(x*s, y*s, z*s);
	}

	Vec3I Vec3I::operator* (const Vec3I& v) const
	{
		return Vec3I(x*v.x, y*v.y, z*v.z);
	}

	Vec3I Vec3I::operator/ (int s) const
	{
		return Vec3I(x / s, y / s, z / s);
	}	

	Vec3I Vec3I::operator/ (const Vec3I& v) const
	{
		return Vec3I(x / v.x, y / v.y, z / v.z);
	}

	bool Vec3I::operator== (const Vec3I& v) const
	{
		return x == v.x && y == v.y && z == v.z;
	}

	bool Vec3I::operator!=(const Vec3I& v) const
	{
		return !operator==(v);
	}

	bool Vec3I::operator<(const Vec3I& other) const
	{
		return memcmp(this, &other, sizeof(Vec3I)) < 0;
	}

	Vec3I::operator Vec3ITuple() const{
		return std::make_tuple(x, y, z);
	}

	//-------------------------------------------------------------------
	Real Vec3I::length() const
	{
		return (Real)sqrt(x*x + y*y + z*z);
	}

	Real Vec3I::lengthSQ() const
	{
		return (Real)(x*x + y*y + z*z);
	}

	Real Vec3I::distance(const Vec3I& to) const{
		Vec3I dif = to - *this;
		return dif.length();
	}

	Real Vec3I::distanceSQ(const Vec3I& to) const{
		Vec3I dif = to - *this;
		return dif.lengthSQ();
	}

	void Vec3I::write(std::ostream& stream) const{
		stream.write((char*)&x, sizeof(x));
		stream.write((char*)&y, sizeof(y));
		stream.write((char*)&z, sizeof(z));
	}

	void Vec3I::read(std::istream& stream){
		stream.read((char*)&x, sizeof(x));
		stream.read((char*)&y, sizeof(y));
		stream.read((char*)&z, sizeof(z));
	}
	/*void write(std::ostream& stream, fb::Vec3I& v){
		stream.write((char*)&v.x, sizeof(v.x));
		stream.write((char*)&v.y, sizeof(v.y));
		stream.write((char*)&v.z, sizeof(v.z));
	}

	void read(std::istream& stream, fb::Vec3I& v){
		stream.read((char*)&v.x, sizeof(v.x));
		stream.read((char*)&v.y, sizeof(v.y));
		stream.read((char*)&v.z, sizeof(v.z));
	}*/
}
Пример #10
0
	Vec3I Vec3I::operator/ (const Vec3I& v) const
	{
		return Vec3I(x / v.x, y / v.y, z / v.z);
	}