Changeset 7976412 in OpenModelica


Ignore:
Timestamp:
2016-04-01T11:58:07+02:00 (8 years ago)
Author:
Robert Braun <robert.braun@…>
Branches:
Added-citation-metadata, maintenance/v1.14, maintenance/v1.15, maintenance/v1.16, maintenance/v1.17, maintenance/v1.18, maintenance/v1.19, maintenance/v1.20, maintenance/v1.21, maintenance/v1.22, maintenance/v1.23, master, omlib-staging
Children:
7368537b
Parents:
ae0b1748
Message:

Re-wrote getRotationMatrix function in MetaModelEditor.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OMEdit/OMEditGUI/Editors/MetaModelEditor.cpp

    r342c8d33 r7976412  
    507507QGenericMatrix<3,3, double> MetaModelEditor::getRotationMatrix(QGenericMatrix<3,1,double> rotation)
    508508{
    509   double alpha = rotation(0,0);
    510   double beta = rotation(0,1);
    511   double gamma = rotation(0,2);
    512 
    513   //Compute rotational matrix around x-axis
    514   double Rx_data[9];
    515   Rx_data[0] = 1;             Rx_data[1] = 0;             Rx_data[2] = 0;
    516   Rx_data[3] = 0;             Rx_data[4] = cos(alpha);    Rx_data[5] = -sin(alpha);
    517   Rx_data[6] = 0;             Rx_data[7] = sin(alpha);    Rx_data[8] = cos(alpha);
    518   QGenericMatrix<3,3,double> Rx(Rx_data);
    519 
    520   //Compute rotational matrix around y-axis
    521   double Ry_data[9];
    522   Ry_data[0] = cos(beta);     Ry_data[1] = 0;             Ry_data[2] = sin(beta);
    523   Ry_data[3] = 0;             Ry_data[4] = 1;             Ry_data[5] = 0;
    524   Ry_data[6] = -sin(beta);    Ry_data[7] = 0;             Ry_data[8] = cos(beta);
    525 
    526   QGenericMatrix<3,3,double> Ry(Ry_data);
    527 
    528   //Compute rotational matrix around z-axis
    529   double Rz_data[9];
    530   Rz_data[0] = cos(gamma);    Rz_data[1] = -sin(gamma);   Rz_data[2] = 0;
    531   Rz_data[3] = sin(gamma);    Rz_data[4] = cos(gamma);    Rz_data[5] = 0;
    532   Rz_data[6] = 0;             Rz_data[7] = 0;             Rz_data[8] = 1;
    533   QGenericMatrix<3,3,double> Rz(Rz_data);
    534 
    535 
    536   //Compute complete rotational matrix
    537   QGenericMatrix<3,3,double> R = Rz*Ry*Rx;
     509  double c1 = cos(rotation(0,0));
     510  double s1 = sin(rotation(0,0));
     511  double c2 = cos(rotation(0,1));
     512  double s2 = sin(rotation(0,1));
     513  double c3 = cos(rotation(0,2));
     514  double s3 = sin(rotation(0,2));
     515
     516  double R_data[9];
     517  R_data[0] = c2*c3;             R_data[1] = c2*s3;              R_data[2] = -s2;
     518  R_data[3] = -c1*s3+s1*s2*c3;   R_data[4] = c1*c3+s1*s2*s3;     R_data[5] = s1*c2;
     519  R_data[6] = s1*s3+c1*s2*c3;    R_data[7] = -s1*c3+c1*s2*s3;    R_data[8] = c1*c2;
     520
     521  QGenericMatrix<3,3,double> R(R_data);
    538522
    539523  return R;
     
    737721  }
    738722
    739 #if 0
     723#if 1
    740724  qDebug() << R_CG_C1;
    741725  qDebug() << R_CG_C2;
Note: See TracChangeset for help on using the changeset viewer.