void DemoTangLines (HANDLE hLcWnd)
{
HANDLE hDrw, hBlock, hEnt1, hEnt2, hEnt3, hLayer1, hLayer2;
WCHAR* szName1 = L"Circles";
WCHAR* szName2 = L"Tangent Lines";
// get drawing and block, linked with CAD window
hDrw = lcPropGetHandle( hLcWnd, LC_PROP_WND_DRW );
hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_VIEWBLOCK );
// layer for circles
hLayer1 = lcDrwGetObjectByName( hDrw, LC_OBJ_LAYER, szName1 );
if (hLayer1 == 0){
// create the layer
hLayer1 = lcDrwAddLayer( hDrw, szName1, L"foreground", 0, LC_LWIDTH_DEFAULT );
}
// layer for lines
hLayer2 = lcDrwGetObjectByName( hDrw, LC_OBJ_LAYER, szName2 );
if (hLayer2 == 0){
// create the layer
hLayer2 = lcDrwAddLayer( hDrw, szName2, L"255,0,0", 0, LC_LWIDTH_DEFAULT );
}
// set active layer
lcPropPutHandle( hDrw, LC_PROP_DRW_LAYER, hLayer1 );
// add circles
hEnt1 = lcBlockAddCircle( hBlock, 0, 0, 10, LC_FALSE );
hEnt2 = lcBlockAddCircle( hBlock, 20, 20, 15, LC_FALSE );
hEnt3 = lcBlockAddCircle( hBlock, 28, -10, 7, LC_FALSE );
// set active layer
lcPropPutHandle( hDrw, LC_PROP_DRW_LAYER, hLayer2 );
// add tangent lines
lcBlockAddLineTan( hBlock, hEnt1, hEnt2, 0 );
lcBlockAddLineTan( hBlock, hEnt1, hEnt2, 1 );
lcBlockAddLineTan( hBlock, hEnt1, hEnt3, 2 );
lcBlockAddLineTan( hBlock, hEnt2, hEnt3, 3 );
// display
lcBlockUpdate( hBlock, true, 0 );
lcWndExeCommand( hLcWnd, LC_CMD_ZOOM_EXT, 0 );
}