void DemoTinModify (HANDLE hLcWnd)
{
HANDLE hBlock, hTIN, hPnt;
double X, Y, Z, dX, dY, coef, rm, Zstep, PixSize;
int BoldStep;
// get a block, linked with CAD window
hBlock = lcPropGetHandle( hLcWnd, LC_PROP_WND_VIEWBLOCK );
// find TIN object by its name
hTIN = lcBlockGetTIN( hBlock, L"Demo TIN" );
if (hTIN){
srand( (unsigned)time( NULL ) );
hPnt = lcTIN_PntGetFirst( hTIN );
while( hPnt != 0 ){
X = lcPropGetFloat( hPnt, LC_PROP_TINPNT_X );
Y = lcPropGetFloat( hPnt, LC_PROP_TINPNT_Y );
Z = lcPropGetFloat( hPnt, LC_PROP_TINPNT_Z );
rm = (double)(RAND_MAX + 1);
coef = ((double)rand() / rm) - 0.5;
dX = 2.0 * coef;
coef = ((double)rand() / rm) - 0.5;
dY = 2.0 * coef;
X += dX;
Y += dY;
lcPropPutFloat( hPnt, LC_PROP_TINPNT_X, X );
lcPropPutFloat( hPnt, LC_PROP_TINPNT_Y, Y );
hPnt = lcTIN_PntGetNext( hTIN, hPnt );
}
lcTIN_TriUpdate( hTIN, 0 );
// update isolines
Zstep = lcPropGetFloat( hTIN, LC_PROP_TIN_ISOSTEP );
BoldStep = lcPropGetInt( hTIN, LC_PROP_TIN_ISOBOLD );
lcTIN_Isolines( hTIN, Zstep, BoldStep, hLcWnd );
// update color filling
Zstep = lcPropGetFloat( hTIN, LC_PROP_TIN_IMG_ZSTEP );
PixSize = lcPropGetFloat( hTIN, LC_PROP_TIN_IMG_PSIZE );
lcTIN_ColorFill( hTIN, Zstep, PixSize, hLcWnd );
// update view
lcWndRedraw( hLcWnd );
}
}