Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Properly use the getX/YAxis out vector #61

Merged
merged 3 commits into from
Aug 22, 2022
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions packages/forge2d/lib/src/common/rot.dart
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,15 @@ class Rot {

double getAngle() => math.atan2(sin, cos);

Vector2 getXAxis(Vector2 xAxis) => Vector2(cos, sin);
Vector2 getXAxis({Vector2? out}) {
final result = out ?? Vector2.zero();
return result..setValues(cos, sin);
}

Vector2 getYAxis(Vector2 yAxis) => Vector2(-sin, cos);
Vector2 getYAxis({Vector2? out}) {
final result = out ?? Vector2.zero();
return result..setValues(-sin, cos);
}

Rot clone() => Rot(sin: sin, cos: cos);

Expand Down
6 changes: 3 additions & 3 deletions packages/forge2d/lib/src/dynamics/fixture.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ import 'package:forge2d/forge2d.dart';
import 'package:forge2d/src/settings.dart' as settings;
import 'package:meta/meta.dart';

/// A fixture is used to attach a shape to a body for collision detection. A
/// A fixture is used to attach a [Shape] to a [Body] for collision detection. A
/// fixture inherits its transform from its parent. Fixtures hold additional
/// non-geometric data such as friction, collision filters, etc. Fixtures are
/// created via Body::CreateFixture.
/// created via `body.createFixture`.
///
/// Do note that you cannot reuse fixtures.
class Fixture {
Expand Down Expand Up @@ -249,7 +249,7 @@ class Fixture {

renderCenter.setFrom(Transform.mulVec2(xf, circle.position));
final radius = circle.radius;
xf.q.getXAxis(renderAxis);
xf.q.getXAxis(out: renderAxis);

if (userData != null && userData == liquidFlag) {
_liquidOffset.setFrom(body.linearVelocity);
Expand Down