mxwcore-legion/dep/g3dlite/source/Vector3int16.cpp

60 lines
1.2 KiB
C++

/**
@file Vector3int16.cpp
@author Morgan McGuire, http://graphics.cs.williams.edu
@created 2003-04-07
@edited 2006-01-17
*/
#include "G3D/platform.h"
#include "G3D/g3dmath.h"
#include "G3D/Vector3int16.h"
#include "G3D/Vector3.h"
#include "G3D/BinaryInput.h"
#include "G3D/BinaryOutput.h"
#include "G3D/format.h"
namespace G3D {
Vector3int16::Vector3int16(const class Vector3& v) {
x = (int16)iFloor(v.x + 0.5);
y = (int16)iFloor(v.y + 0.5);
z = (int16)iFloor(v.z + 0.5);
}
Vector3int16::Vector3int16(class BinaryInput& bi) {
deserialize(bi);
}
void Vector3int16::serialize(class BinaryOutput& bo) const {
bo.writeInt16(x);
bo.writeInt16(y);
bo.writeInt16(z);
}
void Vector3int16::deserialize(class BinaryInput& bi) {
x = bi.readInt16();
y = bi.readInt16();
z = bi.readInt16();
}
std::string Vector3int16::toString() const {
return G3D::format("(%d, %d, %d)", x, y, z);
}
Vector3int16 Vector3int16::floor(const Vector3& v) {
return Vector3int16(iFloor(v.x), iFloor(v.y), iFloor(v.z));
}
Vector3int16 Vector3int16::ceil(const Vector3& v) {
return Vector3int16(iCeil(v.x), iCeil(v.y), iCeil(v.z));
}
}