AddRoof メソッド

構文

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 を返します。

使用例

// 間取りオブジェクトへ接続
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("OK", MB_ICONINFORMATION);
else AfxMessageBox("失敗");