19 #include "viewmanager.h"
23 #include "layercamera.h"
26 TEST_CASE(
"ViewManager: Init")
30 editor->setObject(
object);
41 TEST_CASE(
"ViewManager: Translations")
45 editor->setObject(
object);
47 SECTION(
"translate(x, y) = (10, 20)")
56 SECTION(
"translate twice")
71 TEST_CASE(
"ViewManager: Rotate")
75 editor->setObject(
object);
77 SECTION(
"Rotate 90 degrees")
83 REQUIRE(v.rotation() == 90.f);
85 REQUIRE(v.mapCanvasToScreen(
QPointF(23.6, 0)) ==
QPointF(0, 23.6));
88 SECTION(
"Rotate 180 degrees")
94 REQUIRE(v.rotation() == 180.f);
96 REQUIRE(v.mapCanvasToScreen(
QPointF(92.1, 0)) ==
QPointF(-92.1, 0));
99 SECTION(
"Rotate twice")
105 REQUIRE(v.rotation() == 45.f);
106 REQUIRE(v.mapCanvasToScreen(
QPointF(1, 0)) ==
QPointF(cos(M_PI / 4), sin(M_PI / 4)));
109 REQUIRE(v.rotation() == 90.f);
116 TEST_CASE(
"ViewManager: Scaling")
120 editor->setObject(
object);
128 REQUIRE(v.scaling() == 2.0f);
132 SECTION(
"Scale twice")
138 REQUIRE(v.scaling() == 2.f);
142 REQUIRE(v.scaling() == 6.f);
147 SECTION(
"Scale over the maximum value")
158 SECTION(
"Scale over the minimum value")
168 REQUIRE(std::fabs(p1.
x() - p2.
x()) < 0.000001);
169 REQUIRE(std::fabs(p1.
y() - p2.
y()) < 0.000001);
175 TEST_CASE(
"ViewManager: Mixed tranformations")
179 editor->setObject(
object);
181 SECTION(
"translate + rotate")
197 TEST_CASE(
"ViewManager: Reset view")
201 editor->setObject(
object);
203 SECTION(
"Reset view matrix")
213 REQUIRE(v.getView().isIdentity());
220 TEST_CASE(
"ViewManager: working with camera layers")
224 editor->setObject(
object);
226 SECTION(
"Empty Camera Layer")
231 LayerCamera* layerCam = editor->object()->addNewCameraLayer();
232 REQUIRE(layerCam !=
nullptr);
234 Camera* k =
static_cast<Camera*
>(layerCam->getKeyFrameAt(1));
235 k->translate(100, 0);
236 v.setCameraLayer(layerCam);
238 REQUIRE(k->getView() == v.getView());
239 REQUIRE(v.translation() ==
QPointF(100, 0));
241 editor->object()->deleteLayer(0);
244 SECTION(
"Camera Layer with 2 keys")
251 LayerCamera* layerCam = editor->object()->addNewCameraLayer();
252 layerCam->addKeyFrame(10,
new Camera(
QPointF(100, 0), 0, 1));
254 v.setCameraLayer(layerCam);
259 REQUIRE(t.
dx() == 100.0);
260 REQUIRE(t.
dy() == 0);
263 editor->object()->deleteLayer(0);
266 SECTION(
"Set CameraLayer And then remove it")
271 QPointF originalOffset(0, 100);
272 v.translate(originalOffset.x(), originalOffset.y());
274 LayerCamera* layerCam = editor->object()->addNewCameraLayer();
276 auto cam = layerCam->getCameraAtFrame(1);
277 cam->translate(100, 0);
279 layerCam->addKeyFrame(5,
new Camera(
QPoint(200, 0), 0, 2.0));
281 v.setCameraLayer(layerCam);
282 v.setCameraLayer(
nullptr);
284 REQUIRE(v.translation() == originalOffset);
291 TEST_CASE(
"ViewManager: canvas size")
295 editor->setObject(
object);
297 SECTION(
"Canvas size(100, 200)")
301 v.setCanvasSize(
QSize(100, 200));
305 REQUIRE(t.
dx() == 50.0);
306 REQUIRE(t.
dy() == 100.0);
311 SECTION(
"Canvas size(480, 360) + view translations")
315 v.setCanvasSize(
QSize(480, 360));
317 v.translate(200, 200);
321 REQUIRE(t.
dx() == 240.0 + 200.0);
322 REQUIRE(t.
dy() == 180.0 + 200.0);