From 56eaa27d4daca9264dac2e822b1126cf6eb8cbf4 Mon Sep 17 00:00:00 2001 From: Chris Xiong Date: Wed, 4 May 2016 23:45:29 +0800 Subject: Piano keyboard: first steps. --- visualization/qmpvirtualpiano3d.hpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 visualization/qmpvirtualpiano3d.hpp (limited to 'visualization/qmpvirtualpiano3d.hpp') diff --git a/visualization/qmpvirtualpiano3d.hpp b/visualization/qmpvirtualpiano3d.hpp new file mode 100644 index 0000000..5c30718 --- /dev/null +++ b/visualization/qmpvirtualpiano3d.hpp @@ -0,0 +1,29 @@ +#ifndef QMPVIRTUALPIANO3D_H +#define QMPVIRTUALPIANO3D_H +#include +#include "extrasmeltutils.hpp" +#define WK_PREWIDTH 0.8 +#define WK_TALWIDTH 1.2 +#define WK_PRELEN 3.5 +#define WK_TALLEN 2.5 +#define WK_WING 0.1 +#define WK_HEIGHT 1.5 +#define BK_WIDTH 7*(WK_TALWIDTH-WK_PREWIDTH)/5 +#define BK_FWIDTH 7*(WK_TALWIDTH-WK_PREWIDTH)/5 +#define BK_PRELEN 3. +#define BK_HEIGHT 1.5 +#define BK_BOTTOM 0.5 +#define BK_DBOTTOM 1. +class qmpVirtualPiano3D +{ + private: + smEntity3D *wkcf,*wkeb,*wkd,*wkg,*wka,*bk; + void buildKeys(); + double traveld[128]; + public: + qmpVirtualPiano3D(); + ~qmpVirtualPiano3D(); + void render(smvec3d p); + void setKeyTravelDist(int k,double td); +}; +#endif // QMPVIRTUALPIANO3D_H -- cgit v1.2.3