diff options
author | weigao <weigao@multicorewareinc.com> | 2014-06-16 23:40:36 -0700 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2014-06-17 07:43:58 +0200 |
commit | 8e19f8ebd8febccf7a706f1e0179a4d72f30d6d8 (patch) | |
tree | 7d380f49d68f12fe0c829de8f99e7bc214f6fa50 | |
parent | af5dfd8af2e92cbd511ae6ff840d4ea7f3f83ad5 (diff) |
modify the mouse drag function
Change-Id: I9639b2a29522ba0765f4442c2f78de56388fe754
-rw-r--r-- | chart2/source/view/charttypes/GL3DBarChart.cxx | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/chart2/source/view/charttypes/GL3DBarChart.cxx b/chart2/source/view/charttypes/GL3DBarChart.cxx index 7c3b8811fd88..0fc12b1412ee 100644 --- a/chart2/source/view/charttypes/GL3DBarChart.cxx +++ b/chart2/source/view/charttypes/GL3DBarChart.cxx @@ -416,19 +416,19 @@ void GL3DBarChart::clickedAt(const Point& rPos, sal_uInt16 nButtons) pScreenText->render(); } -void GL3DBarChart::mouseDragMove(const Point& , const Point& , sal_uInt16 nButtons) +void GL3DBarChart::mouseDragMove(const Point& rStartPos, const Point& rEndPos, sal_uInt16 ) { if(mbBlockUserInput) return; mbBlockUserInput = true; - - if(nButtons == MOUSE_RIGHT) + long direction = rEndPos.X() - rStartPos.X(); + if(direction < 0) { mnCornerId = (mnCornerId + 1) % 4; moveToCorner(); } - else if(nButtons == MOUSE_LEFT) + else if(direction > 0) { mnCornerId = mnCornerId - 1; if(mnCornerId < 0) @@ -439,33 +439,33 @@ void GL3DBarChart::mouseDragMove(const Point& , const Point& , sal_uInt16 nButto glm::vec3 GL3DBarChart::getCornerPosition(sal_Int8 nId) { + float pi = 3.1415926; switch(nId) { case 0: { - return glm::vec3(-30, -30, DEFAULT_CAMERA_HEIGHT); + return glm::vec3(mnMaxX / 2 - mnDistance * sin(pi / 4), mnMaxY / 2 - mnDistance * cos(pi / 4), DEFAULT_CAMERA_HEIGHT * 2); } break; case 1: { - return glm::vec3(mnMaxX, -30, DEFAULT_CAMERA_HEIGHT); + return glm::vec3(mnMaxX / 2 + mnDistance * sin(pi / 4), mnMaxY / 2 - mnDistance * cos(pi / 4), DEFAULT_CAMERA_HEIGHT * 2); } break; case 2: { - return glm::vec3(mnMaxX, mnMaxY, DEFAULT_CAMERA_HEIGHT); + return glm::vec3(mnMaxX / 2 + mnDistance * sin(pi / 4), mnMaxY / 2 + mnDistance * cos(pi / 4), DEFAULT_CAMERA_HEIGHT * 2); } break; case 3: { - return glm::vec3(-30, mnMaxY, DEFAULT_CAMERA_HEIGHT); + return glm::vec3(mnMaxX / 2 - mnDistance * sin(pi / 4), mnMaxY / 2 + mnDistance * cos(pi / 4), DEFAULT_CAMERA_HEIGHT * 2); } break; default: assert(false); } - - return glm::vec3(-30, -30, DEFAULT_CAMERA_HEIGHT); + return maDefaultCameraPosition; } void GL3DBarChart::moveToCorner() |