10 #ifndef EIGEN_GPUHELPER_H
11 #define EIGEN_GPUHELPER_H
13 #include <Eigen/Geometry>
17 using namespace Eigen;
28 void pushProjectionMode2D(ProjectionMode2D
pm);
29 void popProjectionMode2D();
38 template <
typename Scalar,
int Flags_>
48 template <
typename Scalar,
int Flags_>
51 template <
typename Scalar,
typename Derived>
60 inline void forceMatrixTarget(GLenum matrixTarget) { glMatrixMode(mCurrentMatrixTarget = matrixTarget); }
62 inline void setMatrixTarget(GLenum matrixTarget);
66 template <
typename Scalar,
int Flags_>
69 template <
typename Scalar,
typename Derived>
75 inline void pushMatrix(GLenum matrixTarget);
79 inline void popMatrix(GLenum matrixTarget);
81 void drawVector(
const Vector3f& position,
const Vector3f& vec,
const Color& color,
float aspect = 50.);
82 void drawVectorBox(
const Vector3f& position,
const Vector3f& vec,
const Color& color,
float aspect = 50.);
83 void drawUnitCube(
void);
84 void drawUnitSphere(
int level = 0);
87 inline void draw(GLenum mode, uint nofElement);
90 inline void draw(GLenum mode, uint
start, uint
end);
93 inline void draw(GLenum mode,
const std::vector<uint>* pIndexes);
110 template <
bool RowMajor,
int Flags_>
113 template <
int Flags_>
121 template <
int Flags_>
134 if (matrixTarget != mCurrentMatrixTarget) glMatrixMode(mCurrentMatrixTarget = matrixTarget);
137 template <
typename Scalar,
int Flags_>
139 setMatrixTarget(matrixTarget);
143 template <
typename Scalar,
typename Derived>
145 GLenum matrixTarget) {
146 setMatrixTarget(matrixTarget);
150 template <
typename Scalar,
int Flags_>
152 setMatrixTarget(matrixTarget);
157 setMatrixTarget(matrixTarget);
161 template <
typename Scalar,
int Flags_>
163 pushMatrix(matrixTarget);
167 template <
typename Scalar,
typename Derived>
169 GLenum matrixTarget) {
170 pushMatrix(matrixTarget);
175 setMatrixTarget(matrixTarget);
179 inline void GpuHelper::draw(GLenum mode, uint nofElement) { glDrawArrays(mode, 0, nofElement); }
182 glDrawElements(mode, pIndexes->size(), GL_UNSIGNED_INT, &(pIndexes->front()));
Matrix4d pm
Definition: HessenbergDecomposition_packedMatrix.cpp:4
Generic expression of a matrix where all coefficients are defined by a functor.
Definition: CwiseNullaryOp.h:64
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
TransposeReturnType transpose()
Definition: SparseMatrixBase.h:358
constexpr Storage & data()
Definition: SparseMatrix.h:205
Definition: gpuhelper.h:21
ProjectionMode2D
Definition: gpuhelper.h:27
void pushMatrix(const Matrix< Scalar, 4, 4, Flags_, 4, 4 > &mat, GLenum matrixTarget)
Definition: gpuhelper.h:162
void draw(GLenum mode, uint nofElement)
draw the nofElement first elements
Definition: gpuhelper.h:179
GLuint mColorBufferId
Definition: gpuhelper.h:98
int mVpHeight
Definition: gpuhelper.h:99
void setMatrixTarget(GLenum matrixTarget)
Definition: gpuhelper.h:133
void multMatrix(const Matrix< Scalar, 4, 4, Flags_, 4, 4 > &mat, GLenum matrixTarget)
Definition: gpuhelper.h:138
void forceMatrixTarget(GLenum matrixTarget)
Definition: gpuhelper.h:60
void loadMatrix(const Eigen::Matrix< Scalar, 4, 4, Flags_, 4, 4 > &mat, GLenum matrixTarget)
Definition: gpuhelper.h:151
bool mInitialized
Definition: gpuhelper.h:101
void popMatrix(GLenum matrixTarget)
Definition: gpuhelper.h:174
GLenum mCurrentMatrixTarget
Definition: gpuhelper.h:100
GpuHelper gpu
Definition: gpuhelper.cpp:18
Vector4f Color
Definition: gpuhelper.h:19
static constexpr lastp1_t end
Definition: IndexedViewHelper.h:79
const unsigned int RowMajorBit
Definition: Constants.h:70
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
void start(const unsigned &i)
(Re-)start i-th timer
Definition: oomph_utilities.cc:243
Definition: NullaryFunctors.h:52
static void loadMatrix(const Matrix< float, 4, 4, Flags_, 4, 4 > &mat)
Definition: gpuhelper.h:115
static void loadMatrix(const Matrix< double, 4, 4, Flags_, 4, 4 > &mat)
Definition: gpuhelper.h:116
static void multMatrix(const Matrix< double, 4, 4, Flags_, 4, 4 > &mat)
Definition: gpuhelper.h:118
static void multMatrix(const Matrix< float, 4, 4, Flags_, 4, 4 > &mat)
Definition: gpuhelper.h:117
static void multMatrix(const Matrix< double, 4, 4, Flags_, 4, 4 > &mat)
Definition: gpuhelper.h:128
static void multMatrix(const Matrix< float, 4, 4, Flags_, 4, 4 > &mat)
Definition: gpuhelper.h:127
static void loadMatrix(const Matrix< double, 4, 4, Flags_, 4, 4 > &mat)
Definition: gpuhelper.h:124
static void loadMatrix(const Matrix< float, 4, 4, Flags_, 4, 4 > &mat)
Definition: gpuhelper.h:123
Definition: gpuhelper.h:111