home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 March / Chip_1998-03_cd.bin / tema / MINICAD / MC7DEMO / MINICAD.1 / USERINT.TXT < prev    next >
Text File  |  1997-04-22  |  2KB  |  77 lines

  1. <!-------------------------------------------------------->
  2. Function UserObjectPick:HANDLE;
  3. VAR
  4.     X,Y:REAL;
  5.     ObHd:HANDLE;
  6. BEGIN
  7.     GetPt(X,Y);
  8.     ObHd:=PickObject(X,Y);
  9.     
  10.     UserObjectPick:=ObHd;
  11. END;
  12. <!-------------------------------------------------------->
  13. Function TwoClickAngle(p1x,p1y,p2x,p2y:REAL):REAL;
  14. VAR
  15.     axisVector:VECTOR;
  16. BEGIN
  17.     axisVector[1]:=p2x-p1x;
  18.     axisVector[2]:=p2y-p1y;
  19.     axisVector[3]:=0;
  20.     
  21.     TwoClickAngle:=Vec2Ang(axisVector);
  22. END;
  23. <!-------------------------------------------------------->
  24. Procedure InteractiveRotate(ObHd:HANDLE;XRot,YRot,ZRot:REAL);
  25. VAR
  26.     xC,yC,zC,xR:REAL;
  27.     KCod:INTEGER;
  28. BEGIN
  29.     Get3DCntr(ObHd,xC,yC,zC);
  30.     KCod:=0;
  31.     WHILE  KCod <> 32 DO BEGIN 
  32.             REPEAT
  33.             UNTIL KeyDown(KCod);
  34.             IF KCod = 52 THEN 
  35.                 Set3DRot(ObHd,0,-yRot,0,xC,yC,zC)
  36.             ELSE IF KCod = 54 THEN 
  37.                 Set3DRot(ObHd,0,yRot,0,xC,yC,zC)
  38.             ELSE IF KCod = 50 THEN 
  39.                 Set3DRot(ObHd,-xRot,0,0,xC,yC,zC)
  40.             ELSE IF KCod = 56 THEN 
  41.                 Set3DRot(ObHd,xRot,0,0,xC,yC,zC)
  42.             ELSE IF KCod = 55 THEN 
  43.                 Set3DRot(ObHd,0,0,-zRot,xC,yC,zC)
  44.             ELSE IF KCod = 51 THEN 
  45.                 Set3DRot(ObHd,0,0,zRot,xC,yC,zC);
  46.             Redraw;
  47.     END;
  48.     ReDraw;
  49. END;
  50. <!-------------------------------------------------------->
  51. Procedure InteractiveMove(ObHd:HANDLE;X,Y,Z:REAL);
  52. VAR
  53.     xC,yC,zC,xR:REAL;
  54.     KCod:INTEGER;
  55. BEGIN
  56.     Get3DCntr(ObHd,xC,yC,zC);
  57.     KCod:=0;
  58.     WHILE  KCod <> 32 DO BEGIN 
  59.             REPEAT
  60.             UNTIL KeyDown(KCod);
  61.             IF KCod = 52 THEN 
  62.                 Move3DObj(ObHd,X,0,0)
  63.             ELSE IF KCod = 54 THEN 
  64.                 Move3DObj(ObHd,-X,0,0)
  65.             ELSE IF KCod = 50 THEN 
  66.                 Move3DObj(ObHd,0,Y,0)
  67.             ELSE IF KCod = 56 THEN 
  68.                 Move3DObj(ObHd,0,-Y,0)
  69.             ELSE IF KCod = 55 THEN 
  70.                 Move3DObj(ObHd,0,0,Z)
  71.             ELSE IF KCod = 51 THEN 
  72.                 Move3DObj(ObHd,0,0,-Z)
  73.             Redraw;
  74.     END;
  75.     ReDraw;
  76. END;
  77.