namespace blank {
-Entity::Entity()
+Entity::Entity() noexcept
: shape(nullptr)
, model()
, velocity(0, 0, 0)
model.Update(model_buffer);
}
-void Entity::SetShapeless() {
+void Entity::SetShapeless() noexcept {
shape = nullptr;
}
-void Entity::Velocity(const glm::vec3 &vel) {
+void Entity::Velocity(const glm::vec3 &vel) noexcept {
velocity = vel;
}
-void Entity::Position(const Block::Pos &pos) {
+void Entity::Position(const Block::Pos &pos) noexcept {
position = pos;
- while (position.x >= Chunk::Width()) {
- position.x -= Chunk::Width();
+ while (position.x >= Chunk::width) {
+ position.x -= Chunk::width;
++chunk.x;
}
while (position.x < 0) {
- position.x += Chunk::Width();
+ position.x += Chunk::width;
--chunk.x;
}
- while (position.y >= Chunk::Height()) {
- position.y -= Chunk::Height();
+ while (position.y >= Chunk::height) {
+ position.y -= Chunk::height;
++chunk.y;
}
while (position.y < 0) {
- position.y += Chunk::Height();
+ position.y += Chunk::height;
--chunk.y;
}
- while (position.z >= Chunk::Depth()) {
- position.z -= Chunk::Depth();
+ while (position.z >= Chunk::depth) {
+ position.z -= Chunk::depth;
++chunk.z;
}
while (position.z < 0) {
- position.z += Chunk::Depth();
+ position.z += Chunk::depth;
--chunk.z;
}
}
-void Entity::Move(const glm::vec3 &delta) {
+void Entity::Move(const glm::vec3 &delta) noexcept {
Position(position + delta);
}
-void Entity::AngularVelocity(const glm::quat &v) {
+void Entity::AngularVelocity(const glm::quat &v) noexcept {
angular_velocity = v;
}
-void Entity::Rotation(const glm::mat4 &rot) {
+void Entity::Rotation(const glm::mat4 &rot) noexcept {
rotation = rot;
}
-void Entity::Rotate(const glm::quat &delta) {
+void Entity::Rotate(const glm::quat &delta) noexcept {
Rotation(rotation * glm::mat4_cast(delta));
}
-glm::mat4 Entity::Transform(const Chunk::Pos &chunk_offset) const {
+glm::mat4 Entity::Transform(const Chunk::Pos &chunk_offset) const noexcept {
const glm::vec3 chunk_pos = (chunk - chunk_offset) * Chunk::Extent();
return glm::translate(position + chunk_pos) * rotation;
}
-Ray Entity::Aim(const Chunk::Pos &chunk_offset) const {
+Ray Entity::Aim(const Chunk::Pos &chunk_offset) const noexcept {
glm::mat4 transform = Transform(chunk_offset);
glm::vec4 from = transform * glm::vec4(0.0f, 0.0f, 0.0f, 1.0f);
from /= from.w;
return Ray{ glm::vec3(from), glm::normalize(glm::vec3(to - from)) };
}
-void Entity::Update(int dt) {
+void Entity::Update(int dt) noexcept {
Move(velocity * float(dt));
Rotate(angular_velocity * float(dt));
}
-void Entity::Draw() {
+void Entity::Draw() noexcept {
model.Draw();
}