home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 March
/
Chip_1998-03_cd.bin
/
tema
/
MINICAD
/
MC7DEMO
/
MINICAD.1
/
USERINT.TXT
< prev
next >
Wrap
Text File
|
1997-04-22
|
2KB
|
77 lines
<!-------------------------------------------------------->
Function UserObjectPick:HANDLE;
VAR
X,Y:REAL;
ObHd:HANDLE;
BEGIN
GetPt(X,Y);
ObHd:=PickObject(X,Y);
UserObjectPick:=ObHd;
END;
<!-------------------------------------------------------->
Function TwoClickAngle(p1x,p1y,p2x,p2y:REAL):REAL;
VAR
axisVector:VECTOR;
BEGIN
axisVector[1]:=p2x-p1x;
axisVector[2]:=p2y-p1y;
axisVector[3]:=0;
TwoClickAngle:=Vec2Ang(axisVector);
END;
<!-------------------------------------------------------->
Procedure InteractiveRotate(ObHd:HANDLE;XRot,YRot,ZRot:REAL);
VAR
xC,yC,zC,xR:REAL;
KCod:INTEGER;
BEGIN
Get3DCntr(ObHd,xC,yC,zC);
KCod:=0;
WHILE KCod <> 32 DO BEGIN
REPEAT
UNTIL KeyDown(KCod);
IF KCod = 52 THEN
Set3DRot(ObHd,0,-yRot,0,xC,yC,zC)
ELSE IF KCod = 54 THEN
Set3DRot(ObHd,0,yRot,0,xC,yC,zC)
ELSE IF KCod = 50 THEN
Set3DRot(ObHd,-xRot,0,0,xC,yC,zC)
ELSE IF KCod = 56 THEN
Set3DRot(ObHd,xRot,0,0,xC,yC,zC)
ELSE IF KCod = 55 THEN
Set3DRot(ObHd,0,0,-zRot,xC,yC,zC)
ELSE IF KCod = 51 THEN
Set3DRot(ObHd,0,0,zRot,xC,yC,zC);
Redraw;
END;
ReDraw;
END;
<!-------------------------------------------------------->
Procedure InteractiveMove(ObHd:HANDLE;X,Y,Z:REAL);
VAR
xC,yC,zC,xR:REAL;
KCod:INTEGER;
BEGIN
Get3DCntr(ObHd,xC,yC,zC);
KCod:=0;
WHILE KCod <> 32 DO BEGIN
REPEAT
UNTIL KeyDown(KCod);
IF KCod = 52 THEN
Move3DObj(ObHd,X,0,0)
ELSE IF KCod = 54 THEN
Move3DObj(ObHd,-X,0,0)
ELSE IF KCod = 50 THEN
Move3DObj(ObHd,0,Y,0)
ELSE IF KCod = 56 THEN
Move3DObj(ObHd,0,-Y,0)
ELSE IF KCod = 55 THEN
Move3DObj(ObHd,0,0,Z)
ELSE IF KCod = 51 THEN
Move3DObj(ObHd,0,0,-Z)
Redraw;
END;
ReDraw;
END;