blob: 296cc0994c36093dfaaacfb48ef238a0bd6f3167 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include "AbsoluutPosition.h"
using namespace crepe;
vec2 AbsoluutPosition::get_position(const Transform & transform, const vec2 & offset) {
// Get the rotation in radians
float radians1 = transform.rotation * (M_PI / 180.0);
// Calculate total offset with scale
vec2 total_offset = offset * transform.scale;
// Rotate
float rotated_total_offset_x1
= total_offset.x * cos(radians1) - total_offset.y * sin(radians1);
float rotated_total_offset_y1
= total_offset.x * sin(radians1) + total_offset.y * cos(radians1);
// Final positions considering scaling and rotation
return (transform.position + vec2(rotated_total_offset_x1, rotated_total_offset_y1));
}
|