構文
void GetSiteTriangle(VARIANT * pSiteTriangle);
三斜入力した敷地の三角形情報を返します。
複数の敷地がある場合、選択している先頭の敷地の情報を返します。
パラメータ
pSiteTriangle
三角形情報の配列。型は、VT_ARRAY。あらかじめ、pSiteData->parrayに面の数分のメモリを確保して下さい。面の数は、頂点数 - 2 です。
SITETRIANGLE 構造体
typedef [uuid(6282F20E-9B96-4A4D-8932-AD08F8A2E674)] struct{
WORD uType;
unsigned short nVertex[3];
double a;
double b;
double c;
double h;
} SITETRIANGLE;
uType
三角形のタイプ。次のいずれかの値です。
- 03辺長さ指定。

- 12辺長さと高さ指定。Aの長さと基準線からの高さを指定。

- 22辺長さと高さ指定。Bの長さと基準線からの高さを指定。

- 32辺長さと高さ指定。Aの長さとAからの高さを指定。

- 42辺長さと高さ指定。Bの長さとBからの高さを指定。

nVertex
使用している頂点が何番目か。
a
Aの辺の長さ。
b
Bの辺の長さ。
c
Cの辺の長さ。
h
三角形のタイプが、高さ指定するタイプの場合、高さ。
使用例
// C++ sample
// 間取りオブジェクトへ接続
CMadoriDoc * m_MadoriDoc = new CMadoriDoc();
CLSIDFromProgID (L"MyHomeDesignerMadori.MadoriDoc", &clsid);
GetActiveObject (clsid, NULL, &pUnk);
pUnk->QueryInterface (IID_IDispatch, (void**)(&pDisp));
m_MadoriDoc->AttachDispatch (pDisp);
// 敷地情報を取得
unsigned short uCount = m_MadoriDoc->GetSitePoints();
if(uCount == 0){
// エラー
return;
}
uCount -= 2;
SITETRIANGLE * pData = new SITETRIANGLE[uCount];
m_MadoriDoc->GetSiteTriangle(pData);
for(unsigned short u = 0; u < uCount; ++u)
{
// なんか処理
}
delete [] pData;
// JavaScript sample
function SITETRIANGLE(type, v0, v1, v2, a, b, c, h){
this.uType = type;
this.nVertex = [v0, v1, v2];
this.a = a;
this.b = b;
this.c = c;
this.h = h;
}
var doc = new CMadoriDoc();
var num = doc.GetSitePoints() - 2;
var data = new Array(num);
var i;
for(i = 0; i < num; ++i){
data[i] = new SITETRIANGLE(0,0,0,0,0,0,0,0);
}
doc.GetSiteTriangle(data);
for(i = 0; i < num; ++i){
var msg = "type:" + data[i].uType +
" nVertex0:" + data[i].nVertex[0] +
" nVertex1:" + data[i].nVertex[1] +
" nVertex2:" + data[i].nVertex[2] +
" a:" + data[i].a + " b:" + data[i].b + " c:" + data[i].c;
alert(msg);
}