'**************************************
'                                     *
'     IntuiExtend.Lib 2.0/@1995-98    *
'                                     *
'          by CIERP Philippe.         *
'                                     *
'          from AMIGAzette 83         *
'                                     *
'**************************************
'
' Command
'  -Wb 3d Centre 
'  -Wb 3d Eye
'  -Wb 3d Eye
'  -Wb 3d Point
'  -Wb 3d X
'  -Wb 3d Y
'  -Wb 3d Position 
'
Set Buffer 50
Screen Open 0,320,512,32,$4
Curs Off : Flash Off : Cls 0
Palette $0,$111,$222,$333,$444,$555,$666,$777,$888,$999,$AAA,$BBB,$CCC,$DDD,$EEE,$FFF,$11,$11,$22,$33,$44,$55,$66,$77,$88,$99,$AA,$BB,$CC,$DD,$EE,$FF
'
Double Buffer : Autoback 0
'
Dim POLY(5,4,1)
'
Global CA,CB,CC,SA,SB,SC,A,B,AE,BE,CE
Limit Mouse 0,0 To 1024,1024
Wb 3d Centre Screen Width/2,Screen Height/2
'
EX=0 : EY=0 : EZ=600
Wb 3d Eye EX,EY,EZ
'
XM=X Mouse : YM=Y Mouse
'
While Mouse Key<>2
Timer=0
A$=Inkey$
If A$="7" Then Dec MX
If A$="8" Then Inc MX
If A$="4" Then Dec MY
If A$="5" Then Inc MY
If A$="1" Then Dec MZ
If A$="2" Then Inc MZ
If A$="9" Then Inc EZ
If A$="6" Then Dec EZ
'
Add CA,MX,0 To 359
Add CB,MY,0 To 359
Add CC,MZ,0 To 359
'
Wb 3d Angle CA,CB,CC
Wb 3d Eye XM-X Mouse,YM-Y Mouse,EZ
'0 
Wb 3d Point -100,100,100 : X=Wb 3d X : Y=Wb 3d Y
POLY(0,0,0)=X : POLY(3,1,0)=X : POLY(4,3,0)=X
POLY(0,0,1)=Y : POLY(3,1,1)=Y : POLY(4,3,1)=Y
'1 
Wb 3d Point 100,100,100 : X=Wb 3d X : Y=Wb 3d Y
POLY(0,1,0)=X : POLY(1,0,0)=X : POLY(4,2,0)=X
POLY(0,1,1)=Y : POLY(1,0,1)=Y : POLY(4,2,1)=Y
'2 
Wb 3d Point 100,-100,100 : X=Wb 3d X : Y=Wb 3d Y
POLY(0,2,0)=X : POLY(1,3,0)=X : POLY(5,1,0)=X
POLY(0,2,1)=Y : POLY(1,3,1)=Y : POLY(5,1,1)=Y
'3 
Wb 3d Point -100,-100,100 : X=Wb 3d X : Y=Wb 3d Y
POLY(0,3,0)=X : POLY(3,2,0)=X : POLY(5,0,0)=X
POLY(0,3,1)=Y : POLY(3,2,1)=Y : POLY(5,0,1)=Y
'4 
Wb 3d Point -100,100,-100 : X=Wb 3d X : Y=Wb 3d Y
POLY(4,0,0)=X : POLY(3,0,0)=X : POLY(2,1,0)=X
POLY(4,0,1)=Y : POLY(3,0,1)=Y : POLY(2,1,1)=Y
'5 
Wb 3d Point 100,100,-100 : X=Wb 3d X : Y=Wb 3d Y
POLY(2,0,0)=X : POLY(1,1,0)=X : POLY(4,1,0)=X
POLY(2,0,1)=Y : POLY(1,1,1)=Y : POLY(4,1,1)=Y
'6 
Wb 3d Point 100,-100,-100 : X=Wb 3d X : Y=Wb 3d Y
POLY(1,2,0)=X : POLY(2,3,0)=X : POLY(5,2,0)=X
POLY(1,2,1)=Y : POLY(2,3,1)=Y : POLY(5,2,1)=Y
'7 
Wb 3d Point -100,-100,-100 : X=Wb 3d X : Y=Wb 3d Y
POLY(3,3,0)=X : POLY(2,2,0)=X : POLY(5,3,0)=X
POLY(3,3,1)=Y : POLY(2,2,1)=Y : POLY(5,3,1)=Y
'
'Polygone
For T=0 To 5
RR[T/3,POLY(T,0,0),POLY(T,0,1),POLY(T,1,0),POLY(T,1,1),POLY(T,2,0),POLY(T,2,1)]
If Param<=0
Polygon POLY(T,0,0),POLY(T,0,1) To POLY(T,1,0),POLY(T,1,1) To POLY(T,2,0),POLY(T,2,1)
End If 
RR[T/3,POLY(T,2,0),POLY(T,2,1),POLY(T,3,0),POLY(T,3,1),POLY(T,0,0),POLY(T,0,1)]
If Param<=0
Polygon POLY(T,0,0),POLY(T,0,1) To POLY(T,3,0),POLY(T,3,1) To POLY(T,2,0),POLY(T,2,1)
End If 
Next T
Pen 15 : Print "Timer:";Timer;"  X:";MX;" Y:";MY;" Z:";MZ;" Zoom:";EZ;"  "
Screen Swap 
Cls 0
Home 
MX1=MX : MY1=MY
Wend 
'
Procedure RR[T,X1,Y1,X2,Y2,X3,Y3]
C=Wb 3d Position(X1,Y1,X2,Y2,X3,Y3)
'
COUL=15
If C<=0
P=C/(-27*COUL)
P=Min(Max(1,P),COUL)
End If 
Ink P+((T)*16)
'
End Proc[C]
