1#include "Game/AreaObj/CameraRepulsiveArea.hpp"
3CameraRepulsiveArea::~CameraRepulsiveArea() {
7CameraRepulsiveSphere::~CameraRepulsiveSphere() {
11CameraRepulsiveCylinder::~CameraRepulsiveCylinder() {
15TVec3f CameraRepulsiveSphere::getRepulsion(
const TVec3f &rRep) {
23TVec3f CameraRepulsiveCylinder::getRepulsion(
const TVec3f &rRep) {
25 MR::calcCylinderPos(&position,
this);
27 MR::calcCylinderUpVec(&upVec,
this);
31 f32 dot = ret.dot(upVec);
37 PSVECCrossProduct(ret.toVec(), upVec.toVec(), _14.toVec());
38 f32 mag = PSVECMag(_14.toVec());
39 f32 radius = MR::getCylinderRadius(
this);
41 f32 scale = (2.0f * mag) / radius;
46 for (
int i = 0; i < 2; i++) {
50 ret.scale(1.0f / denom);
54const char* CameraRepulsiveArea::getManagerName()
const {
55 return "CameraRepulsiveArea";