Code sample Home

Modify points of TIN object.
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 );
  }
}