gui_editactions.cpp

changeset 162
b7d65e89861a
parent 161
c9fba92c4e35
child 164
8c93d8e38494
equal deleted inserted replaced
161:c9fba92c4e35 162:b7d65e89861a
564 vertex origin; 564 vertex origin;
565 std::vector<vertex*> queue; 565 std::vector<vertex*> queue;
566 const double angle = (pi * currentGrid ().confs[Grid::Angle]->value) / 360; 566 const double angle = (pi * currentGrid ().confs[Grid::Angle]->value) / 360;
567 567
568 // ref: http://en.wikipedia.org/wiki/Transformation_matrix#Rotation_2 568 // ref: http://en.wikipedia.org/wiki/Transformation_matrix#Rotation_2
569 matrix transform ( 569 matrix<3> transform ({
570 (l * l * (1 - cos (angle))) + cos (angle), 570 (l * l * (1 - cos (angle))) + cos (angle),
571 (m * l * (1 - cos (angle))) - (n * sin (angle)), 571 (m * l * (1 - cos (angle))) - (n * sin (angle)),
572 (n * l * (1 - cos (angle))) + (m * sin (angle)), 572 (n * l * (1 - cos (angle))) + (m * sin (angle)),
573 573
574 (l * m * (1 - cos (angle))) + (n * sin (angle)), 574 (l * m * (1 - cos (angle))) + (n * sin (angle)),
576 (n * m * (1 - cos (angle))) - (l * sin (angle)), 576 (n * m * (1 - cos (angle))) - (l * sin (angle)),
577 577
578 (l * n * (1 - cos (angle))) - (m * sin (angle)), 578 (l * n * (1 - cos (angle))) - (m * sin (angle)),
579 (m * n * (1 - cos (angle))) + (l * sin (angle)), 579 (m * n * (1 - cos (angle))) + (l * sin (angle)),
580 (n * n * (1 - cos (angle))) + cos (angle) 580 (n * n * (1 - cos (angle))) + cos (angle)
581 ); 581 });
582 582
583 // Calculate center vertex 583 // Calculate center vertex
584 for (LDObject* obj : sel) { 584 for (LDObject* obj : sel) {
585 if (obj->getType () == OBJ_Subfile) 585 if (obj->getType () == OBJ_Subfile)
586 box << static_cast<LDSubfile*> (obj)->vPosition; 586 box << static_cast<LDSubfile*> (obj)->vPosition;

mercurial