void PhysicsComponent::SetPosition(float x, float y, float z) { shared_ptr<TransformComponent> pTransformComponent = MakeStrongPtr(m_pOwner->GetComponent<TransformComponent>(TransformComponent::g_Name)); if (pTransformComponent) { Mat4x4 transform = pTransformComponent->GetTransform(); Vec3 position = Vec3(x, y, z); transform.SetPosition(position); KinematicMove(transform); } else GCC_ERROR("Attempting to call RotateY() on actor with no trnasform component"); }
void PhysicsComponent::RotateY(float angleRadians) { shared_ptr<TransformComponent> pTransformComponent = MakeStrongPtr(m_pOwner->GetComponent<TransformComponent>(TransformComponent::g_Name)); if (pTransformComponent) { Mat4x4 transform = pTransformComponent->GetTransform(); Vec3 position = transform.GetPosition(); Mat4x4 rotateY; rotateY.BuildRotationY(angleRadians); rotateY.SetPosition(position); KinematicMove(rotateY); } else GCC_ERROR("Attempting to call RotateY() on actor with no transform component"); }
void PhysicsComponent::RotateY(float angleRadians) { shared_ptr<TransformComponent> pTransformComponent = MakeStrongPtr(m_pOwner->GetComponent<TransformComponent>(TransformComponent::g_Name)); if (pTransformComponent) { glm::mat4 transform = pTransformComponent->GetTransform(); glm::vec3 position = GetPosition(transform); glm::mat4 rotateY; rotateY = glm::rotate(rotateY, angleRadians, g_YAxis); ::SetPosition(rotateY, position); KinematicMove(rotateY); } else LOG_ERROR("Attempting to call RotateY() on actor with no transform component"); }
void BulletPhysics::SetTransform(const GameObjectId id, const Mat4x4& mat) { // force the object into a position KinematicMove(mat, id); }