2008-01-01から1年間の記事一覧

multimap

気が付けば年末ですね。 年末でサプライズイベント発生でやや戸惑いました。 ホントに色々あった一年だったな。 multimapってあんまり使うケースが無くて、 馴染みが無かったので一つメモ。 特定のキーに関連づいた要素を列挙するコード。 #include <map> #includ</map>…

std::mapのインデクサとinsert

mapの挙動でメモメモ。typedef std::map Map; Map map;// operator []は要素が無ければ挿入される map["hoge"] = 0; map["fuga"] = 1;printf("hoge=%d\n", map["hoge"]); printf("fuga=%d\n", map["fuga"]); 単純に要素が無ければ挿入する処理を今まで以下の…

リストのDiffを取る。

二つのリストA、Bの要素のDiffを取って、 Bに無い要素は−リストに、Aに無い要素は+リストに追加する処理。 要素がソート済みな事が条件になっちゃいますが。 #include #include #include int main() { std::vector A; std::vector B; A.push_back(0); A.pus…

ircd導入メモ。

OSはFedora8。 とりあえずソース落としてこんふぃぎゃー。$ wget http://www.ircnet.jp/dist/server/jp-patch/irc2.10.3p7+jp6.tgz $ tar zxvf irc2.10.3p7+jp6.tgz $ cd irc2.10.3p7+jp6/ $ ./configure ビルド。$ cd i686-pc-linux-gnu/ $ make all ../irc…

二つのベクトルを徐々に重ねる。

あるベクトルPを、あるベクトルQに重なるように、徐々に変化させる計算方法。 補完とかとはちょっと違う感じ。媒介変数とかは使いません。 変化のさせ方は、ベクトルPとベクトルQのなす平面に垂直な軸に対して、 回転させてPとQの成す角を近付けていく感じ。…

オンラインゲームで良く見かける頭上名前表示をやっちゃおうというハナシ。

一般的な名称は知らないので、この記事ではネームプレートと勝手に呼ぶ事にします。 とりあえずこのネームプレートの条件としては、1. 常にカメラに対する向きを向く四角形の板ポリゴン(ビルボード)。 2. 奥に居るキャラのネームプレートでも同じサイズで…

Direct3Dの射影変換行列。

多くのDirect3Dプログラマは、射影変換には↓の関数を使っているんじゃなかろうか。 D3DXMatrixPerspectiveFovLH( D3DXMATRIX* pOut, float fovY, // Y方向の視野角 float aspect, // 画面のアスペクト比 float zn, // ビューボリュームの近平面までの距離 fl…

using namespaceの範囲。

C++

今のプロジェクトはネームスペース使いまくりんぐで、 using namespaceの効果範囲は如何ほどなのだろうと思ってちょっとテストしてみた。 ケース1 #include namespace { // このファイル全てのスコープで有効になる using namespace std; string s; // OK }…

忘れやすいオーバーロードメモ。

C++

struct HogeInfoHolder { HogeInfo* _p; HogeInfoHolder(HogeInfo* p) : _p(p) {} ~HogeInfoHolder() { delete _p; } // 間接参照演算子のオーバーロード HogeInfo& operator * () { return *_p; } const HogeInfo& operator * () const { return *_p; } // …

Direct3D10でライティングやってみた。

これまたDirect3D9なら、カンターンに出来た事なんだけど・・・ Direct3D10からは、ライティングやマテリアル周りの構造体は廃止されて、 全部シェーダにゆだねられるようになっちまいました。 という事でライトを当てるだけでも一苦労・・・。 //// MyShader.fx..…

Direct3D10で深度/ステンシルバッファを作ってみた。

前回の記事では、ライティングが全くされていなかったので目立たなかったけど、 (DXUTCreateTeapotで頂点カラーが設定されていたので) 頂点カラーをちゃんと出すようにしたら、ポリゴンの前後関係が めちゃくちゃになって見えた(当たり前)ので、 深度/ス…

Direct3D10でティーポットを出してみた。

まず初めに…Direct3D10は… うへあ('A`) って感じ。 まあ自分にシェーダの知識がないってのもだいぶうへあになる原因なんだけど…。 ティーポットを出すだけですっごい苦労した。 前の記事のMyApp.h,MyApp.cppにコードを付け加える形で、 色々コードをメモって…

Direct3D10をちょっとやってみた。

会社で。遊びじゃないですよ。研究研究。 だって会社のマシンだけだもんVistaは・・・。/** @file MyApp.h Direct3D10アプリケーションのスケルトンプログラム @author Dila */#pragma once// この辺は自作ライブラリなので気にしない。 #include "Windows/Main…

TR1ちょっとやってみた@regex

自宅にもVC++9Express入れちゃった。 無料でVC++が使えるなんていい時代になったもんだよなぁ。 ↓のは、簡易な、変数宣言の構文かどうかを調べるプログラム。 全然完全なモノじゃないのであしからず。#include #include using namespace std;bool MatchVarDe…

TR1ちょっとやってみた@type_traits

今日は仕事してないんじゃないかぐらいの勢いでPOSTしてますが。 TR1で遊んでみる事が仕事なのさ。多分。だって職場しかVS2008ないんだもの。 つーことで、以下のは、type_traitsを使ってバッファの破棄処理を スカラー型/非スカラー型で分岐させた自作配列…

TR1ちょっとやってみた@shared_ptrその2

実はboostまともに使った事が無かったんで、 循環参照( ゚Д゚)ハァ?って感じでした。 という事でどっかからサンプル引っ張ってきてやってみた。#include #include // for std::tr1::shared_ptrusing namespace std::tr1;class Hoge { int _val; public: shared_p…

TR1ちょっとやってみた@shared_ptrその1

といってもまだ shared_ptr だけですが。#include #include // for std::tr1::shared_ptrusing namespace std::tr1;class Hoge { int _val; public: Hoge(int val) : _val(val) { std::cout hoge[" } ~Hoge() { std::cout hoge[" } void Say() { std::cout h…

EeePCでマビノギ動きました。

仮装メモリを増やさないと(=デフォルト0)動きませんでしたが。 2垢目を取ってWマビノギ。 何するかって?そりゃ露店とかさ、、、 D人数水増しとかさ、、、いいんですなんでも。 出来た事が嬉しいの! パフォーマンスオプションは全部パフォ優先にして…

constメソッド

C++

#include class Int { int _value; public: Int() : _value(0) {} int& Value() { return _value; } const int& Value() const { return _value; } };main() { Int i; int& val = i.Value(); // int& Int::Value() が呼び出される const Int k; const int& c…

C++を理解していない。

C++

#include class A { public: virtual ~A() { std::cout } virtual void Do() { std::cout } };class B : public A { public: ~B() { std::cout } void Do() { std::cout } };class C : public B { public: ~C() { std::cout } void Do() { std::cout } };mai…

どこでもブログ拍手

FC2ブログ拍手は、表示場所がある程度限定されてしまっているので、 これを無理矢理どうにかしてしまおうというJavaScript。 とりあえず表示関数本体。 <script language="javascript">

線分を描く

DirectGraphicsのリファレンスページが見れなくなったぞゴラー! という事で調べようとしていた線分を描く関数がわからなかったので o-plus氏に聞きました。ネ申! struct MYVERTEX { FLOAT x, y, z; DWORD color; };#define D3DFVF_MYVERTEX(D3DFVF_XYZ|D3DFV…

射影変換行列

最近は新しい会社での為に3Dを勉強し直していて、 自作のベクトルクラスや行列クラスを作ったりしている。 色々やっていて一番謎だった行列が、射影変換行列。 DirectGraphicsでは、D3DXMatrixPerspectiveFovLHとして 用意されていて、以下の様な行列とな…

SVN覚え書き追記

Apache経由でSVNのドキュメント等を見る場合。 文字コードの指定が違って日本語が上手く表示されない時は /etc/httpd/conf.d/subversion.conf のの中に以下の記述をする。 ... AddDefaultCharset Shift_JIS ... てか多分、この中でApacheのhttpd.confの記述…

SVN覚え書き

バージョン管理ツールのSVN導入にスッゴイ手間取った。 Webの情報が統一されてなかったり(環境で違うのだろうか・・・) 欠けていたりで・・・。でもなんとかできました。 ■インストール # yum install subversion ↓はApacheでアクセス出来るようにする為のモジュー…

無名構造体、無名共用体

C++

今頃存在を知りました。C++プログラマ大失格だよもん。 どちらも、メンバ変数が宣言と同じスコープになるという代物。 void func() { // 無名構造体 struct { int a; int b; }; a = 0; // 関数のスコープでアクセス出来る! b = 1; }関数は宣言出来ないそう…

USB外付けHDDを付けてみた

以下のサイトを参考にやってみた。 LinuxにUSB外付けHDD増設 Linuxで使う外付けデバイスについてのTips USB HDD の利用付けてみたらデバイス名は「/dev/sdb1」と認識されたので とりあえずfdiskでパーティションを作ってみる。 # /sbin/fdisk /dev/sdb1「p」…

まだよくわかってない。

先日のLinuxマシンにApacheやらphpやらを入れて、 Webサーバとして外部に公開するテスツを色々やっていた。 とりあえずルータには以下の設定。<ポートマッピング> TCP80番→LinuxマシンのローカルIP<パケットフィルタ> WAN側チェック 通過 送信元:* 宛先:…

ルータってむずかしい・・・@@;

昨日のLinuxマシンの為にルータを買っていました。 しかしまあ設定がいろいろあるみたいでさっぱり。 IRCのDCC送信が出来たり出来なかったりね。 とりあえずいろいろメモ。 <ウチの構成>モデム━ルータ┳メインPC ┗Linuxマシン <よくわからずに適当に設定し…

Linuxでヴゅー

昨日買ったLinuxの本についてたFedora8を、 むかーしに使ってたXPのノートPCにインスコしてみた。 インストーラーが思った以上に親切なので そんなに苦労する事なくインスコ完了。 何故かマウスカーソルの位置がズレていたけど。 完了してからは大丈夫っぽい…