Open5

metaseq 雑多

ウサギウサギ

2024/9/14(土)
MAnsiString 文字列用クラス。const char *str などから生成できる。
内部文字列としては16bitは扱わなさそう。→内部16bitは MString の方。
char* から UTF-8 ポインタが得られるらしい。
*this = str ってもうわからなくなってしまった。
->mStr には char* が格納されている。
独自にバッファ確保してなさそうだし参照だけかもしれない。
いやデストラクタ時点でポインタ残ってたら free してる。

ウサギウサギ

2024-10-14: NEAREST の情報参照先。WRAP, REPEAT の情報参照先。XMLReaderクラスは使えるのか。テクスチャサンプル。

ウサギウサギ

2024-10-22: プラグインの中のMQObjectだと固定法線が取れるみたい。

void MQObject::GetFaceVertexNormal(int face, int vertex, BYTE& flag, MQPoint& normal);
face
面のインデックス
vertex
面内の頂点・辺のインデックス
flag
法線フラグ
[MQOBJECT_NORMAL_HARD_EDGE] 面内の辺に対する折目の指定
[MQOBJECT_NORMAL_FIX] 面内の頂点に対する固定法線の指定
normal
法線
ウサギウサギ

2024-11-09: CREATE したとき,&m_ID に生成したIDが得られる。

MQTab::MQTab() : MQWidgetBase()
{
	void *ptr[5];
	ptr[0] = (void*)"type";
	ptr[1] = (void*)"tab";
	ptr[2] = (void*)"id";
	ptr[3] = &m_ID;
	ptr[4] = NULL;
	MQWidget_Value(NullID, MQWIDGET_CREATE, (void*)ptr);

	if(m_ID != NullID){
		m_IDOwner = true;
		RegisterID();
	}

このコンストラクタのときには m_IDOwner = true と代入している。
デストラクタでこのフラグを参照していて
true の場合は DELETE する。
コンストラクタに id を指定した場合のデストラクタでは DELETE しない。
つまりわざわざ破壊申告しない。

MQWidgetBase::~MQWidgetBase()
{
	if(m_ID != NullID){
		s_WidgetIDMap.erase(m_ID);

		if(m_IDOwner){
			void *ptr[1];
			ptr[0] = NULL;
			MQWidget_Value(m_ID, MQWIDGET_DELETE, (void*)ptr);
		}

		m_ID = NullID;
		m_IDOwner = false;
	}
}