rendered paste body#include <vector>
#include <math.h>
#include <windows.h>
class sbVector {
public:
float x,y,z;
sbVector();
~sbVector();
sbVector(float x, float y, float z);
sbVector operator-(void);
sbVector operator*( const float a );
sbVector operator*( const sbVector &a );
sbVector operator+( const sbVector &a );
sbVector operator-( const sbVector &a );
sbVector operator/( const float a );
sbVector operator/( const sbVector &a );
sbVector operator*( const int a );
sbVector operator/( const int a );
sbVector &operator*=( const float a );
sbVector &operator*=( const sbVector &a );
sbVector &operator+=( const sbVector &a );
sbVector &operator-=( const sbVector &a );
sbVector &operator/=( const float a );
sbVector &operator/=( const sbVector &a );
bool operator==( const sbVector &b ) const ;
bool operator!=( const sbVector &b ) const ;
sbVector operator=( const sbVector &b );
sbVector normalize( void );
float length( void ) const;
sbVector cross( sbVector &v ) const;
float dot( sbVector &v ) const;
};
class sbFace { /** A Face **/
public:
sbFace();
~sbFace();
std::vector<sbVector> vertex; /* Tirnangle Coordinates */
};
sbFace::sbFace() {}
sbFace::~sbFace() {}
sbVector::~sbVector() {}
sbVector::sbVector( void ){
this->x = 0;
this->y = 0;
this->z = 0;
}
sbVector sbVector::normalize( void ) { return -(*this / length());}
sbVector sbVector::operator-(void) { return sbVector(-x, -y, -z);}
float sbVector::length( void ) const { return sqrt(x*x + y*y + z*z);}
sbVector sbVector::cross( sbVector &v ) const { return sbVector(y * v.z - v.y * z, z * v.x - v.z * x, x * v.y - v.x * y);}
sbVector sbVector::operator*( const float a ) { return sbVector(a * x, a * y, a * z);}
sbVector sbVector::operator*( const sbVector &a ) { return sbVector(x * a.x, y * a.y, z * a.z);}
sbVector sbVector::operator+( const sbVector &a ) { return sbVector(x + a.x, y + a.y, z + a.z);}
sbVector sbVector::operator-( const sbVector &a ) { return sbVector(x - a.x, y - a.y, z - a.z);}
sbVector sbVector::operator/( const float a ) { return sbVector(x/a, y/a, z/a);}
sbVector sbVector::operator/( const sbVector &a ) { return sbVector(x/a.x, y/a.y, z/a.z);}
sbVector sbVector::operator*( const int a ) { return *this * ((float)a);}
sbVector sbVector::operator/( const int a ) { return *this / ((float)a);}
sbVector &sbVector::operator/=( const sbVector &a ) {
x /= a.x;
y /= a.y;
z /= a.z;
return *this;
}
sbVector &sbVector::operator*=( const float a ) {
x *= a;
y *= a;
z *= a;
return *this;
}
sbVector &sbVector::operator+=( const sbVector &a ) {
x += a.x;
y += a.y;
z += a.z;
return *this;
}
sbVector &sbVector::operator-=( const sbVector &a ) {
x -= a.x;
y -= a.y;
z -= a.z;
return *this;
}
sbVector &sbVector::operator/=( const float a ) {
x = x/a;
y = y/a;
z = z/a;
return *this;
}
sbVector::sbVector(float x, float y, float z){
this->x = x;
this->y = y;
this->z = z;
}
float sbVector::dot( sbVector &v ) const {
return (float)((x * v.x) +
(y * v.y) +
(z * v.z));
}
bool sbVector::operator!=( const sbVector &b) const { return !(*this == b); }
bool sbVector::operator==( const sbVector &b) const {
if (x == b.x &&
y == b.y &&
z == b.z)
return true; /** they are the same **/
return false; /** they are not the same **/
}
sbVector sbVector::operator=( const sbVector &b)
{
x = b.x;
y = b.y;
z = b.z;
return *this;
}
int main(void) {
sbFace face;
MessageBox(0,"before push_back","",0);
face.vertex.push_back(sbVector::sbVector(10, 50, 70));
char asd[66];
sprintf((char*)&asd, "%f,%f,%f", face.vertex.at(0));
MessageBox(0,"after push_back",asd,0);
return 0;
}