Merge branch 'master' of github.com:Allanis/LibD
This commit is contained in:
commit
2de0088860
@ -64,9 +64,47 @@ void AABB::CreateAABBFromSprite(const char* filename) {
|
|||||||
// Find the min, look through until we find a first instance of a white color.
|
// Find the min, look through until we find a first instance of a white color.
|
||||||
bool found = false;
|
bool found = false;
|
||||||
int color = 0;
|
int color = 0;
|
||||||
|
DWORD* pixels = (DWORD*)screen->pixels;
|
||||||
|
|
||||||
for(int width = 0; width < _sprite->GetWidth(); width++) {
|
for(int width = 0; width < _sprite->GetWidth(); width++) {
|
||||||
for(int height = 0; height < _sprite->GetHeight(); height++) {
|
for(int height = 0; height < _sprite->GetHeight(); height++) {
|
||||||
DWORD offset;
|
// FUCKING PAIN IN THE ASS MOTHERFUCKER!!!!
|
||||||
|
DWORD offset = height * screen->pitch + width;
|
||||||
|
if(((DWORD)pixels[offset]) != 0 && !found) {
|
||||||
|
_min = Vec2((float)width, (float)height);
|
||||||
|
found = true;
|
||||||
|
color = ((DWORD)pixels[offset]);
|
||||||
|
// Break out of these god forsaken loops.
|
||||||
|
width = _sprite->GetWidth();
|
||||||
|
height = _sprite->GetHeight();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Let's try to find the max.x now..
|
||||||
|
_max.x = (float)_sprite->GetWidth();
|
||||||
|
found = false;
|
||||||
|
for(int width = (int)_min.x; width < _sprite->GetWidth(); width++) {
|
||||||
|
DWORD offset = _min.y * screen->pitch + width;
|
||||||
|
if(((DWORD)pixels[offset] != color && !found)) {
|
||||||
|
found = true;
|
||||||
|
_max.x = (float)width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now for the max.y
|
||||||
|
_max.y = (float)_sprite->GetHeight();
|
||||||
|
found = false;
|
||||||
|
for(int height = (int)_min.y; height < _sprite->GetWidth(); height++) {
|
||||||
|
DWORD offset = (DWORD)(height * screen->pitch + _min.x);
|
||||||
|
if(((DWORD)pixels[offset]) != color && !found) {
|
||||||
|
found = true;
|
||||||
|
_max.y = (float)height;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_staticMax = _max;
|
||||||
|
_staticMin = _min;
|
||||||
|
delete _sprite;
|
||||||
|
_sprite = 0;
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "../Math/Vec2.h"
|
#include "../Math/Vec2.h"
|
||||||
#include "../Sprite/Sprite.h"
|
#include "../Sprite/Sprite.h"
|
||||||
|
#include "../Global/Globals.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The axis aligned bounding box contains
|
* The axis aligned bounding box contains
|
||||||
|
Loading…
Reference in New Issue
Block a user