2#pragma warning(disable : 4786)
14#include "qwt3d_global.h"
21#define WHEEL_DELTA 120
24#include "qwt3d_portability.h"
25#include "qwt3d_helper.h"
26#include "qwt3d_openglhelper.h"
32const double PI = 3.14159265358979323846264338328;
219 Tuple(
double X,
double Y) : x(X), y(Y)
242 explicit Triple(
double xv = 0,
double yv = 0,
double zv = 0) : x(xv), y(yv), z(zv)
246#ifndef QWT3D_NOT_FOR_DOXYGEN
288 Triple& operator*=(
double d)
296 Triple& operator/=(
double d)
313 bool operator!=(
Triple t)
const
315 return !isPracticallyZero(x, t.x) || !isPracticallyZero(y, t.y) || !isPracticallyZero(z, t.z);
318 bool operator==(
Triple t)
const
320 return !operator!=(t);
323 double length()
const
325 double l2 = x * x + y * y + z * z;
326 return (isPracticallyZero(l2)) ? 0 : sqrt(l2);
341inline const Triple operator-(
const Triple& t,
const Triple& t2)
343 return Triple(t) -= t2;
345inline const Triple operator*(
double d,
const Triple& t)
347 return Triple(t) *= d;
349inline const Triple operator*(
const Triple& t,
double d)
351 return Triple(t) *= d;
353inline const Triple operator/(
double d,
const Triple& t)
355 return Triple(t) /= d;
357inline const Triple operator/(
const Triple& t,
double d)
359 return Triple(t) /= d;
361inline const Triple operator*(
const Triple& t,
const Triple& t2)
363 return Triple(t) *= t2;
432using FreeVectorField = std::vector< FreeVector >;
443using TripleField = std::vector< Triple >;
454using Cell = std::vector< unsigned >;
465using CellField = std::vector< Cell >;
468unsigned tesselationSize(Qwt3D::CellField
const& t);
481 RGBA() : r(0), g(0), b(0), a(1)
484 RGBA(
double rr,
double gg,
double bb,
double aa = 1) : r(rr), g(gg), b(bb), a(aa)
499using ColorVector = std::vector< RGBA >;
501#ifndef QWT3D_NOT_FOR_DOXYGEN
504QWT3D_EXPORT QColor GL2Qt(GLdouble r, GLdouble g, GLdouble b);
508using Vertex =
double*;
509using DataRow = std::vector< Vertex >;
510using DataMatrix = std::vector< DataRow >;
527 Qwt3D::DATATYPE datatype;
530 datatype = Qwt3D::POLYGON;
536 virtual void clear() = 0;
538 virtual bool empty()
const = 0;
570 GridData(
unsigned int columns,
unsigned int rows);
583 return vertices.empty();
586 void setSize(
unsigned int columns,
593 void setPeriodic(
bool u,
bool v)
598 bool uperiodic()
const
602 bool vperiodic()
const
608 bool uperiodic_, vperiodic_;
629 datatype = Qwt3D::POLYGON;
640 return cells.empty();
643 Triple const& operator()(
unsigned cellnumber,
unsigned vertexnumber);
657 n.x = u.y * v.z - u.z * v.y;
658 n.y = u.z * v.x - u.x * v.z;
659 n.z = u.x * v.y - u.y * v.x;
662 double l = n.length();
672inline double dotProduct(Triple
const& u, Triple
const& v)
674 return u.x * v.x + u.y * v.y + u.z * v.z;
677void convexhull2d(std::vector< unsigned >& idx,
const std::vector< Qwt3D::Tuple >& src);
实现带限制访问函数的图状单元格结构
Definition qwt3d_types.h:625
绘图数据的抽象基类
Definition qwt3d_types.h:525
实现带限制访问函数的 z 值矩阵
Definition qwt3d_types.h:566
自由向量
Definition qwt3d_types.h:409
由两个三元组张成的平行六面体
Definition qwt3d_types.h:382
红-绿-蓝-透明度值
Definition qwt3d_types.h:480
三元组 [x,y,z]
Definition qwt3d_types.h:240
二元组 [x,y]
Definition qwt3d_types.h:213