構文
BOOL AddRoof(VARIANT & vVertex, double dTangent, double dHeight, double dOverhang,
BOOL bCeiling, BOOL bHorzCeiling,
double dCeilingDepth, BOOL bShrink);
屋根を追加します。
パラメータ
vVertex
(x, y) 頂点列。型は VT_R8 | VT_ARRAY にしてください。
dTangent
勾配。
dHeight
軒桁の高さ。
dOverhang
軒の出。
bCeiling
軒天の個別設定をするかどうか。1で個別設定。
bHorzCeiling
水平軒天を付けるかどうか。1で付けます。
dCeilingDepth
水平軒天の奥行き。
bShrink
軒天の先端を縮小するかどうか。1で縮めます。
戻り値
屋根を追加できた場合 0 以外を返します。できなかった場合は 0 を返します。
使用例
// 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);
// 屋根を追加
SAFEARRAYBOUND bound[1];
bound[0].cElements = 6;
bound[0].lLbound = 0;
SAFEARRAY * pArray = SafeArrayCreate(VT_R8, 1, bound);
double * pVar;
SafeArrayAccessData(pArray, (void**)&pVar);
double dVertex[6] = {0.0, 0.0, 1000.0, 0.0, 500.0, 500.0};
for(int i=0; i < 6; ++i){
pVar[i] = dVertex[i];
}
SafeArrayUnaccessData(pArray);
VARIANT v;
v.vt = VT_R8 | VT_ARRAY;
v.parray = pArray;
double dTangent = 21;
double dHeight = 3300;
double dOverhang = 455;
BOOL bCeiling = FALSE;
BOOL bHorzCeiling = FALSE;
double dCeilingDepth = 455;
BOOL bShrink = TRUE;
long lRet = m_MadoriDoc->AddRoof(v, dTangent, dHeight, dOverhang, bCeiling, bHorzCeiling,
dCeilingDepth, bShrink);
if(lRet) AfxMessageBox(TEXT("OK"), MB_ICONINFORMATION);
else AfxMessageBox(TEXT("失敗"));
// JavaScript sample var doc = new CMadoriDoc(); doc.SetRoofType(1, 9); var v = [0.0, 0.0, 1000.0, 0.0, 500.0, 500.0]; var dTangent = 21; var dHeight = 3300; var dOverhang = 455; var bCeiling = false; var bHorzCeiling = false; var dCeilingDepth = 455; var bShrink = true; var result = doc.AddRoof(v, dTangent, dHeight, dOverhang, bCeiling, bHorzCeiling, dCeilingDepth, bShrink); alert(result);