Forked from
gmsh / gmsh
9807 commits behind the upstream repository.
-
Christophe Geuzaine authoredChristophe Geuzaine authored
drawContext.h 2.04 KiB
#ifndef _DRAW_GMODEL_H_
#define _DRAW_GMODEL_H_
#ifndef __cplusplus
#error You need a Cpp compiler!
#endif
#if !defined(BUILD_ANDROID)
#define BUILD_IOS 1
#endif
#include <string>
#if defined(BUILD_IOS)
#include <Gmsh/PView.h>
#include <Gmsh/PViewOptions.h>
#include <Gmsh/Context.h>
#endif
#include "movePosition.h"
class drawContext{
private:
float _translate[3], _scale[3]; // current translation and scale
double _rotate[16]; // current rotation matrix (double for Trackball)
float _rotatef[16]; // current rotation matrix (float for OpenGL ES)
double _quaternion[4]; // current quaternion used for rotation
movePosition _start, _previous, _current; // store informations about user interactions
int _width, _height; // size of OpenGL context in pixel
float _left, _right, _top, _bottom, _far; // value of "border"
float _fontFactor;
bool _retina; // retina display
void OrthofFromGModel(void);
void drawPView(PView *p);
void drawVectorArray(PViewOptions *opt, VertexArray *va);
public:
drawContext(float fontFactor=1., bool retina=false);
~drawContext(){}
void load(std::string filename);
void eventHandler(int event, float x=0, float y=0);
void setQuaternion(double q0, double q1, double q2, double q3);
void addQuaternion(double p1x, double p1y, double p2x, double p2y);
void buildRotationMatrix();
void setTranslate(int i, float t) {if(i>=0 && i<3) _translate[i] = t;}
float getTranslate(int i) {if(i>=0 && i<3) return _translate[i]; return 0;}
void setScale(int i, float s) {if(i>=0 && i<3) _scale[i] = s;}
float getScale(int i) {if(i>=0 && i<3) return _scale[i]; return 0;}
void initView(int w, int h);
void drawView();
void drawAxes(float x0=0., float y0=0., float z0=0., float h=0.5);
void drawGeom();
void drawMesh();
void drawPost();
void drawScale();
};
void drawArray(VertexArray *va, int type, bool useColorArray=false,
bool useNormalArray=false);
int onelab_cb(std::string);
int animation_next();
int animation_prev();
int number_of_animation();
void set_animation(int step);
#endif