MCPcopy Create free account
hub / github.com/ObEngine/ObEngine / update

Method update

src/Core/Collision/TrajectoryNode.cpp:36–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34 }
35
36 void TrajectoryNode::update(const double dt)
37 {
38 auto getOffset = [&dt](Trajectory& trajectory) {
39 const double speed
40 = trajectory.getSpeed() + trajectory.getAcceleration() * dt;
41 const double radAngle = (Utils::Math::pi / 180.0) * -trajectory.getAngle();
42 const double addX = std::cos(radAngle) * (speed * dt);
43 const double addY = std::sin(radAngle) * (speed * dt);
44 return Transform::UnitVector(addX, addY, trajectory.getUnit());
45 };
46 for (auto& trajectory : m_trajectories)
47 {
48 Trajectory* currentTrajectory = trajectory.second.get();
49 if (currentTrajectory->isEnabled())
50 {
51 auto baseOffset = getOffset(*currentTrajectory);
52
53 for (TrajectoryCheckFunction& check : trajectory.second->getChecks())
54 {
55 check(*currentTrajectory, baseOffset, m_probe);
56 }
57 if (!currentTrajectory->getStatic())
58 {
59 currentTrajectory->setSpeed(currentTrajectory->m_speed
60 + currentTrajectory->m_acceleration * dt);
61 baseOffset = getOffset(*currentTrajectory);
62 obe::Collision::CollisionData collData;
63 collData.offset = baseOffset;
64 if (m_probe != nullptr)
65 {
66 collData
67 = m_probe->getMaximumDistanceBeforeCollision(collData.offset);
68 }
69 auto onCollideCallback = trajectory.second->getOnCollideCallback();
70 if (collData.offset != baseOffset && onCollideCallback)
71 {
72 onCollideCallback(
73 *trajectory.second.get(), baseOffset, collData);
74 }
75 m_sceneNode.move(collData.offset);
76 }
77 }
78 }
79 }
80
81 Scene::SceneNode& TrajectoryNode::getSceneNode() const
82 {

Callers

nothing calls this directly

Calls 11

UnitVectorClass · 0.85
getSpeedMethod · 0.80
getAccelerationMethod · 0.80
getUnitMethod · 0.80
getStaticMethod · 0.80
checkFunction · 0.50
getAngleMethod · 0.45
getMethod · 0.45
isEnabledMethod · 0.45
moveMethod · 0.45

Tested by

no test coverage detected