doubleのRadixSort

バケットソートの欠点を補える基数ソート(RadixSort) バケットソートは計算量O(N)の素晴らしい必殺技ですが、 如何せんバケツのサイズに限度があり、用途が限定されます。 この問題を、痛みを伴いながら一部解決できる方法として、基数ソートが上げられます…

BitbucketにSSHでアクセスする(複数アカウントもおっけー)

BitbucketのリポジトリにはHTTPSでアクセスすることができますが、毎回パスワード入れるのも面倒だし、pushする情報が多すぎてエラーになることもあります。SSHを使えばそれを解消できるのですが、公式以外にあまり情報がなかったんでここに書いておくことに…

LAN内のSubversionで管理されているソースをGitでなんとかしたい(その2)

開発プロセス このプロジェクトでは機能X、機能Y、機能Zといった機能単位でのコミットをすることになっていました。とは言え1つの機能に数日かかるような規模でしたので、全て完了してからコミットするというのは非現実的です。Gitはコミットに対してあとか…

LAN内のSubversionで管理されているソースをGitでなんとかしたい(その1)

ソース管理のためのSubversionのサーバーを自社内に持つクライアントと仕事をしたことがあります。SubversionのサーバーはLANにあるので社外からのアクセスは許されていません。この仕事は常駐ではなかったのでSubversionのサーバーに直接アクセスすることは…

Windowsストアアプリ(XAML)でコレクション要素を思ったとおりに並べたい

今回は弊社初のWindowsストアアプリ「Ippin」の開発に絡めた記事です。すごく基本的な内容なのかもしれませんが情報が少なかったので残しておきます。Windowsストアアプリ イッピン(Ippin) | 株式会社CFlatXAMLではコレクションな要素を画面上に並べて配…

OpenGLをC++11でラップしてみんとてするなり 第7回

今回のテーマはテクスチャ。今までと比べると単に作って破棄する機能が増えただけに見えて、実はかなり厄介です。 というのも、インスタンスの作成から破棄までの間でコンテキストが切り替わらない今までの機能とは異なり、コンテキストが切り替わってもデー…

OpenGLをC++11でラップしてみんとてするなり 第6.5回

そういえば、gl::Matrixクラスの各種操作がMatrixにしか対応していなかったので、Matrixにも対応するようにしましょう。 まずは、行列操作関数をまとめた次のようなクラスを作り、必要な型(floatとdouble)に対して特殊化をします。それ以外の型に対しては…

OpenGLをC++11でラップしてみんとてするなり 第6回

それでは今回は、行列計算のラッパークラスを作りたいと思います。 ●4x4行列 OpenGLでの行列のメモリモデルは、次のようになっています。次元数を任意に拡張して、さらに要素型も任意にできるよう、次のようなクラスにしてみます。 今回は長くなるので省きま…

右辺値参照とムーブセマンティクス

資料だけならWeb上に多かれど、いまいちピンとこないのがこの2つの機能ではないかと思います。大体この2つはセットにして語られるので、どこからどこまでが右辺値参照の機能でどこからどこまでがムーブセマンティクスの機能なのかを混同してしまう、というこ…

OpenGLをC++11でラップしてみんとてするなり 第5回

早速、前回(第4回)で作ったDepthTestのインスタンスを、gl::Contextのメソッド中で作成するようにしてみます。 gl/Context.h namespace gl { class Context : noncopyable<Context> { // 一部省略 public : DepthTest depth_test(bool enabled) { return DepthTest(</context>…

OpenGLをC++11でラップしてみんとてするなり 第4回

●glEnable()/glDisable()/glIsEnabled()の使い方 まず最初に、サンプルとなるコードを提示します。 main.cpp #include "glall.h" #include "glut/Window.h" /** * glut::Windowを継承してウィンドウを作る */ class Window : public glut::Window { public :…

iOSのUITableViewのセルのハイライト

今週はGLシリーズから離れて、iOSの開発に関する小ネタです。アプリのテーマカラーに合わせて各種の色設定をデフォルトから変更したい場合が良くあります。UITableViewのセルのハイライト時の色は下記3種類から選択する事が出来ます。 ・UITableViewCellSele…

C++ 可変長引数テンプレートのお話

前回のソースコードの中で1点だけ、C++11らしい機能の紹介を。 C++11の機能という点ではgl/InputConstants.h内でenum classを使ってはいますが、基本的なことしかしていませんので省略します。●可変長引数テンプレート glut/Window.hに1ヵ所だけ、テンプレー…

OpenGLをC++11でラップしてみんとてするなり 第3回

●GLコンテキストクラスの実装 前回(第2回)で述べたように、OpenGL関連の処理は、コンテキストクラス内に用意することにしました。 このクラスの実装は、次のようになっています。 gl/Context.h namespace gl { class Context { protected : Context() {} v…

Titanium Mobileのツールバー拡張モジュール

今週はGLシリーズから離れて、小ネタです。Titanium MobileでiOSツールバーのボタン背景色をどうやら変更できないということが判明。 仕方がないので、モジュールを作成することに。 モジュールプロジェクトを作成後、View・ViewProxyを追加。 ComCflatToolb…

OpenGLをC++11でラップしてみんとてするなり 第2回

OpenGLの機能を全てラップしたライブラリをブログ上で開発する気など毛頭ありませんので、OpenGLとC++11の紹介となるようなサンプルを幾つか作っていこうと思います。 今のところ、以下の4つの機能を実装していこうかと思いますが、他にも面白そうなネタが見…

OpenGLの仕組み

現代的なオブジェクト指向プログラミングから入ったプログラマーにとっては、OpenGLは時に、摩訶不思議な振る舞いをするように感じることがあります。 それもそのはず、教科書的なOOPではグローバル変数などは唾棄すべき禁忌の1つとされていますので、そもそ…

OpenGLをC++11でラップしてみんとてするなり 第1回

株式会社CFlatの技術ブログをスタートします。 メンバーが技術的に面白いと感じる題材、ハマったことなどをツラツラとアップしていきます。 だいたい週一回程度のペースのアップを考えております。 最初から連載物になりますが、それではどうぞ。 『諸君、私…