CoordTrans.h
Go to the documentation of this file.
1 /*
2 * ==========================================================================
3 * This file is part of the implementation of
4 *
5 * <FrameFab: Robotic Fabrication of Frame Shapes>
6 * Yijiang Huang, Juyong Zhang, Xin Hu, Guoxian Song, Zhongyuan Liu, Lei Yu, Ligang Liu
7 * In ACM Transactions on Graphics (Proc. SIGGRAPH Asia 2016)
8 ----------------------------------------------------------------------------
9 * class: CoordTrans
10 *
11 * Description: Local -> global coordinate transformation module used in stiffness matrix
12 * formulation process.
13 *
14 * Version: 1.0
15 * Created: Mar/23/2016
16 * Update : Mar/25/2016
17 *
18 * Author: Xin Hu, Yijiang Huang, Guoxian Song
19 * Company: GCL@USTC
20 * Citation: This file is modified out of coordtrans.c from
21 * Title: Frame3dd source code
22 * Static and dynamic structural analysis of 2D and 3D frames and trusses with
23 * elastic and geometric stiffness.
24 * Author: Henri P. Gavin
25 * Code Version: 20140514+
26 * Availability: http://frame3dd.sourceforge.net/
27 ----------------------------------------------------------------------------
28 * Copyright (C) 2016 Yijiang Huang, Xin Hu, Guoxian Song, Juyong Zhang
29 * and Ligang Liu.
30 *
31 * FrameFab is free software: you can redistribute it and/or modify
32 * it under the terms of the GNU General Public License as published by
33 * the Free Software Foundation, either version 3 of the License, or
34 * (at your option) any later version.
35 *
36 * FrameFab is distributed in the hope that it will be useful,
37 * but WITHOUT ANY WARRANTY; without even the implied warranty of
38 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
39 * GNU General Public License for more details.
40 *
41 * You should have received a copy of the GNU General Public License
42 * along with FrameFab. If not, see <http://www.gnu.org/licenses/>.
43 * ==========================================================================
44 */
45 
46 #pragma once
47 #include <vector>
48 #include <Eigen/Dense>
49 
51 
67 class CoordTrans{
68 public:
69  typedef Eigen::MatrixXd MX;
70  typedef Eigen::Matrix3d M3;
71  typedef Eigen::VectorXd VX;
72  typedef Eigen::Vector3d V3;
73  typedef Eigen::VectorXi VXi;
74  typedef Eigen::MatrixXi MXi;
75 public:
78 
79  void CreateTransMatrix(
80  std::vector<V3> xyz,
81  double L, // length of the element(edge)
82  int n1, int n2, // index fo endpoint of the element
83  double &t0, double &t1, double &t2, double &t3, double &t4,
84  double &t5, double &t6, double &t7, double &t8,
85  float p);
86 
87  void CreateTransMatrix(
88  point u, point v,
89  double &t0, double &t1, double &t2, double &t3, double &t4,
90  double &t5, double &t6, double &t7, double &t8,
91  float p);
92 
93  void TransLocToGlob(
94  double t0, double t1, double t2, double t3, double t4,
95  double t5, double t6, double t7, double t8,
96  MX &m, float r1, float r2);
97 };
const GLfloat * m
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t0
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t1
Eigen::Vector3d V3
Definition: CoordTrans.h:72
Eigen::MatrixXi MXi
Definition: CoordTrans.h:74
void TransLocToGlob(double t0, double t1, double t2, double t3, double t4, double t5, double t6, double t7, double t8, MX &m, float r1, float r2)
Definition: CoordTrans.cpp:108
Eigen::VectorXi VXi
Definition: CoordTrans.h:73
void CreateTransMatrix(std::vector< V3 > xyz, double L, int n1, int n2, double &t0, double &t1, double &t2, double &t3, double &t4, double &t5, double &t6, double &t7, double &t8, float p)
Definition: CoordTrans.cpp:3
r2
const GLdouble * v
Eigen::VectorXd VX
Definition: CoordTrans.h:71
GLfloat GLfloat p
Eigen::MatrixXd MX
Definition: CoordTrans.h:69
Eigen::Matrix3d M3
Definition: CoordTrans.h:70


choreo_task_sequence_planner
Author(s): Yijiang Huang
autogenerated on Thu Jul 18 2019 04:03:14