ダブルクリックで編集可能になるTextBoxをつくる2

大昔にダブルクリックで編集可能になるTextBoxを実装した(ダブルクリックで編集可能になるTextBoxをつくる - 陰間茶屋)のだが、Drag操作で難があったので違う実装をしてみることにした。 今度はUserControlにLabelとTextBoxを置いて、編集操作で表示を切り…

ダブルクリックで編集可能になるTextBoxをつくる

WPFで、ダブルクリックで編集可能になるTextBoxをつくりたいなーと思ったので作ってみた。Behaviorで、TextBoxのIsReadOnlyとFocusableを制御する作戦。 コードはこんな感じ。 using System; using System.Windows; using System.Windows.Controls; using Sy…

SUPER MAOU LANDで使っているカスタムRTTI

SUPER MAOU LANDで使っているカスタムRTTIの自分用メモ。 (SUPER MAOU LAND作ってます) もともとはUnityっぽくGetComponent();などとやりたいために作り出したもの。 そのためにカスタムRTTIが必要になったので、その実装内容をメモしておく。 カスタムRTTI…

ZYXの順の回転行列からオイラー角を抽出するまとめ

ZYXの順の回転行列からオイラー角を抽出するまとめ。自分用メモ。 行列を眺めると、 なので、 なので、 なので、 あとは、例外として、のときを考える。(になるので上記の割り算で都合が悪い。) こういうときは適当にとして計算しちゃうのが良いらしい。 す…

std::asyncめも

std::asyncなるものがあると聞いたので、とりあえずどんな感じで使えばいいのかをめも。 まずはこちらから。 #include <iostream> #include <thread> #include <future> #include <chrono> using namespace std; class Hoge{ public: Hoge(){ cout << "Hoge::Hoge()" << endl; } ~Hoge(){ cout <</chrono></future></thread></iostream>…

std::threadつかってみる

std::threadの使い方メモ。 まずは基本から。 #include <iostream> #include <thread> using namespace std; class Hoge{ public: Hoge() : m_count(0){/**/} void operator()(){ for(int i=0; i<10000000; ++i){ m_count++; } } int m_count; }; int main(int argc, char **ar</thread></iostream>…

マルチスレッドでロックをかけずに読み書きするとどうなんのか

久しぶりの日記だがメモ代わりに書いとこうと思ったので書く。 マルチスレッドで同じ変数の読み書きするときはロックしましょうねーって教わったのは確かなんだが、なんで読むときもロックかけんのー?って思ったので動作確認してみた。 プログラムはこんな…

名前空間とクラスの宣言

日記放置してたけど暇になったし、せっかくだからメモ代わりに書いとこう。 c++で、名前空間とクラスの宣言についてちょっと嵌った。 class piyo::fuga; じゃダメで、 namespace piyo{ class fuga; } で宣言すりゃokって話なんだけど。 なんのこっちゃ、と思…

OpenCVのラプラシアンフィルタ

OpenCVのラプラシアンフィルタがずぅーっと謎だった。 ラプラシアンフィルタでよく見かけるのはこういうパターンのやつ。 0 1 0 1 -4 1 0 1 0 でも、これってcvLaplaceのデフォルトじゃないんだよね。 んじゃぁどんな値使ってんのー・・・と。 別段困ること…