モブ沢工房

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか3Dプリンタやら日曜大工等、色々。

AzDrawingのベジェで一回戻るを作ってみた

不慣れなせいかベジェの制御点設置に試行錯誤することが多くあるため、遂に怠惰な日常を改め奮起してちょっといじってみました。

スプライン等と同様Backspace押すと戻るというわけですが、実際にはベジェの制御点は二回しか操作しないため最後の制御点操作を戻すというだけの動作です。

とりあえず、動いている…trunkが1.4の元々のコードでdevelopがオイラの改変コードの在処です。実はdiffとかよくわかっていないのでありました(汗

diff -urb trunk/src/draw/CDraw.h develop/src/draw/CDraw.h
--- trunk/src/draw/CDraw.h  2014-09-01 19:12:31.080696263 +0900
+++ develop/src/draw/CDraw.h    2014-12-03 01:36:38.557012303 +0900
@@ -484,6 +484,7 @@
     void onMove_bezier();
     BOOL onUp_bezier();
     BOOL onCancel_bezier();
+    BOOL onKeyBack_bezier();
 
     BOOL onDown_spline();
     BOOL onUp_spline();
diff -urb trunk/src/draw/CDraw_draw.cpp develop/src/draw/CDraw_draw.cpp
--- trunk/src/draw/CDraw_draw.cpp   2014-09-01 19:12:31.080696263 +0900
+++ develop/src/draw/CDraw_draw.cpp 2014-12-03 01:22:10.193049098 +0900
@@ -453,6 +453,9 @@
             else if(no == NOWCTL_SPLINE)
                 //[スプライン] 一つ戻る
                 bRelease = onKeyBack_spline();
+            else if(no == NOWCTL_BEZIER)
+                //[ベジェ] 一つ戻る
+                bRelease = onKeyBack_bezier();
             break;
     }
 
diff -urb trunk/src/draw/CDraw_draw_brushdot.cpp develop/src/draw/CDraw_draw_brushdot.cpp
--- trunk/src/draw/CDraw_draw_brushdot.cpp  2014-09-01 19:12:31.080696263 +0900
+++ develop/src/draw/CDraw_draw_brushdot.cpp    2014-12-03 01:53:15.676970052 +0900
@@ -31,7 +31,6 @@
 #include "CImage1.h"
 
 
-
 //===========================
 //ブラシ描画・自由線
 //===========================
@@ -412,6 +411,7 @@
 
 BOOL CDraw::onUp_firstBezier()
 {
+
     m_nNowCtlNo     = NOWCTL_BEZIER;
     m_nAfterCtlType = 0;
 
@@ -501,6 +501,16 @@
     return TRUE;
 }
 
+//! ひとつ戻る
+BOOL CDraw::onKeyBack_bezier()
+{
+   if(m_nAfterCtlType==1)
+   {
+       drawXorBezier(TRUE);
+       onUp_firstBezier();
+   }
+    return FALSE;
+}
 
 //===========================
 //スプライン曲線
@@ -644,3 +654,4 @@
 
     return FALSE;
 }
+