Select Git revision
Callbacks.cpp
Forked from
gmsh / gmsh
Source project has a limited visibility.
drawContext.h 11.64 KiB
// Gmsh - Copyright (C) 1997-2019 C. Geuzaine, J.-F. Remacle
//
// See the LICENSE.txt file for license information. Please report all
// issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
#ifndef DRAW_CONTEXT_H
#define DRAW_CONTEXT_H
#include <string>
#include <vector>
#include <set>
#include "SBoundingBox3d.h"
#include "SPoint2.h"
#include "Camera.h"
#if defined(WIN32)
#include <windows.h>
#undef min
#undef max
#endif
#if defined(__APPLE__)
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#else
#include <GL/gl.h>
#include <GL/glu.h>
#endif
#if defined(HAVE_VISUDEV)
#define NORMAL_GLTYPE GL_FLOAT
#else
#define NORMAL_GLTYPE GL_BYTE
#endif
class PView;
class GModel;
class GVertex;
class GEdge;
class GFace;
class GRegion;
class MElement;
class PView;
class openglWindow;
class drawTransform {
public:
drawTransform() {}
virtual ~drawTransform() {}
virtual void transform(double &x, double &y, double &z) {}
virtual void transformOneForm(double &x, double &y, double &z) {}
virtual void transformTwoForm(double &x, double &y, double &z) {}
virtual void setMatrix(double mat[3][3], double tra[3]) {}
};
class drawTransformScaled : public drawTransform {
private:
double _mat[3][3];
double _tra[3];
public:
drawTransformScaled(double mat[3][3], double tra[3] = 0) : drawTransform()
{
drawTransformScaled::setMatrix(mat, tra);
}
virtual void setMatrix(double mat[3][3], double tra[3] = 0)
{
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) _mat[i][j] = mat[i][j];
if(tra)