version833 adding 3d surfaces
parent
3ff4dbed38
commit
aaeeee583a
@ -0,0 +1,311 @@
|
|||||||
|
SUBROUTINE BuildModel(NP,NE)
|
||||||
|
|
||||||
|
!
|
||||||
|
!
|
||||||
|
USE WINTERACTER
|
||||||
|
USE BLK3D
|
||||||
|
! USE BLK1MOD
|
||||||
|
INCLUDE 'd.inc'
|
||||||
|
|
||||||
|
REAL, DIMENSION(4,4) :: A
|
||||||
|
REAL, DIMENSION(700) :: XLIN,YLIN,BLVL
|
||||||
|
REAL :: ViewAngle = 0.0
|
||||||
|
INTEGER :: ITYPIMAGE = 4
|
||||||
|
INTEGER , DIMENSION(6) :: WIDSTAT
|
||||||
|
REAL, PARAMETER :: DEFDIST = 5.0
|
||||||
|
REAL :: ROTH=0.0
|
||||||
|
REAL :: ROTV=0.0
|
||||||
|
REAL :: ROT=0.0
|
||||||
|
REAL :: SHIFT=0.0
|
||||||
|
REAL :: SHIFTV=0.0
|
||||||
|
|
||||||
|
INTEGER K,J,NCN,KK,mat,JHAND1
|
||||||
|
CHARACTER(LEN=260) :: FILENAME = 'objects.w3d'
|
||||||
|
CHARACTER(LEN=65) :: STBAR1
|
||||||
|
|
||||||
|
DATA ITIME/0/
|
||||||
|
!
|
||||||
|
IF(ITIME .EQ. 0) THEN
|
||||||
|
IROTSV=0
|
||||||
|
ROTSV=0.0
|
||||||
|
ROTHSV=0.
|
||||||
|
ROTVSV=0.
|
||||||
|
DISTSV=0.
|
||||||
|
VSCALESV=1.0
|
||||||
|
ITIME=1
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
! CALL WindowOpenChild(JHAND1,HIDEWINDOW,WIDTH=1000,HEIGHT=600)
|
||||||
|
CALL WindowOpenChild(JHAND1,FLAGS =SysMenuOn+MinButton+MaxButton+StatusBar, &
|
||||||
|
MENUID=IDM_MENU1,TOOLID=(/0,IDT_TOOLBAR1,0,0/),&
|
||||||
|
TITLE ='View RMA 3D model files' )
|
||||||
|
CALL WINDOWSELECT(JHAND1)
|
||||||
|
!
|
||||||
|
! Create a bitmap of same size as window and draw initial frame
|
||||||
|
!
|
||||||
|
WIDSTAT(1) = 1000
|
||||||
|
WIDSTAT(2) = 2000
|
||||||
|
WIDSTAT(3) = 1000
|
||||||
|
WIDSTAT(4) = 1000
|
||||||
|
WIDSTAT(5) = 1000
|
||||||
|
WIDSTAT(6) = 2000
|
||||||
|
CALL WindowStatusBarParts(6, WIDSTAT)
|
||||||
|
CALL WindowOutStatusBar(1, ' Rotations, Translations ')
|
||||||
|
CALL WindowOutStatusBar(3, ' Eye Distance')
|
||||||
|
CALL WindowOutStatusBar(5, ' Adjusted Eye Location')
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
CALL WBitmapCreate(JHAND1,WInfoWindow(WindowWidth), &
|
||||||
|
WInfoWindow(WindowHeight))
|
||||||
|
|
||||||
|
!
|
||||||
|
! Start a new model
|
||||||
|
!
|
||||||
|
! Estimate vertices and facets
|
||||||
|
MAXVERT=NP
|
||||||
|
MAXFACET=2*NE
|
||||||
|
CALL W3dNew(MAXVERT,MAXFACET,20)
|
||||||
|
!
|
||||||
|
CALL W3dGetMatrix(A)
|
||||||
|
!
|
||||||
|
CALL W3dMatrix(A)
|
||||||
|
CALL W3dTranslate(0.0,0.0,0.0)
|
||||||
|
CALL W3dScale(1.0,-VSCALESV,1.0)
|
||||||
|
|
||||||
|
CALL TRPLAT(IQUAL)
|
||||||
|
!
|
||||||
|
! Define materials
|
||||||
|
!
|
||||||
|
DO K=1,9
|
||||||
|
CALL W3dMaterial(K,WRGB(255,128,64))
|
||||||
|
ENDDO
|
||||||
|
|
||||||
|
!!
|
||||||
|
!
|
||||||
|
! Determine model extent
|
||||||
|
!
|
||||||
|
XMIN = WInfo3dReal(M3dXmin)
|
||||||
|
XMAX = WInfo3dReal(M3dXmax)
|
||||||
|
YMIN = WInfo3dReal(M3dYmin)
|
||||||
|
YMAX = WInfo3dReal(M3dYmax)
|
||||||
|
ZMIN = WInfo3dReal(M3dZmin)
|
||||||
|
ZMAX = WInfo3dReal(M3dZmax)
|
||||||
|
! CALL W3dGetMatrix(MODEL)
|
||||||
|
|
||||||
|
!
|
||||||
|
XLEN = XMAX - XMIN
|
||||||
|
YLEN = YMAX - YMIN
|
||||||
|
ZLEN = ZMAX - ZMIN
|
||||||
|
DIST = DEFDIST*MAX(XLEN,YLEN,ZLEN)
|
||||||
|
WRITE(STBAR1,'(F13.3)') DIST
|
||||||
|
CALL WindowOutStatusBar(4,STBAR1)
|
||||||
|
DISTSTEP = DIST / 50.
|
||||||
|
|
||||||
|
CALL W3dMatrix()
|
||||||
|
IF(IROTSV .EQ. 1) THEN
|
||||||
|
CALL W3dRotate(-45.+ROTVSV,1)
|
||||||
|
CALL W3dRotate(ROTHSV,2)
|
||||||
|
CALL W3dRotate(ROTSV,3)
|
||||||
|
ROTV=ROTVSV
|
||||||
|
ROTH=ROTHSV
|
||||||
|
ROT=ROTSV
|
||||||
|
DIST=DISTSV
|
||||||
|
ELSE
|
||||||
|
CALL W3dRotate(-45.,1)
|
||||||
|
CALL W3dRotate(0.,2)
|
||||||
|
CALL W3dRotate(0.,3)
|
||||||
|
ENDIF
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0
|
||||||
|
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
! CALL WMessageBox(YesNo,QuestionIcon,CommonYes, &
|
||||||
|
! 'Do you wish to continue (YES) or quit (NO) this view ?', 'CONTINUE?')
|
||||||
|
! IF(WInfoDialog(4) .eq. 1) then
|
||||||
|
! GO TO 300
|
||||||
|
! ELSE
|
||||||
|
! CALL WindowCloseChild(JHAND1)
|
||||||
|
! return
|
||||||
|
! ENDIF
|
||||||
|
300 continue
|
||||||
|
CALL CHVIEW(JHAND1,ITYPIMAGE)
|
||||||
|
CALL WindowCloseChild(JHAND1)
|
||||||
|
CALL WBitmapDestroy(JHAND1)
|
||||||
|
I3DPLT=0
|
||||||
|
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
END SUBROUTINE BuildModel
|
||||||
|
|
||||||
|
SUBROUTINE TRPLAT(IQUAL)
|
||||||
|
use winteracter
|
||||||
|
USE BLK1MOD
|
||||||
|
|
||||||
|
!
|
||||||
|
! Build a surface
|
||||||
|
!
|
||||||
|
!
|
||||||
|
REAL :: WM
|
||||||
|
REAL XSING,YSING,BLVL
|
||||||
|
allocatable XSING(:),YSING(:),BLVL(:)
|
||||||
|
INTEGER :: IVERT,IFACET,NCNS,K,KK,MAXNP
|
||||||
|
INTEGER :: IVERTICES(4)
|
||||||
|
INTEGER :: IFCORNER(3,1) = RESHAPE((/1,3,5/),(/3,1/))
|
||||||
|
! INTEGER :: IFCORNER(3,4) = RESHAPE((/1,2,6,2,3,5,2,4,6,4,5,6/),(/3,4/))
|
||||||
|
! INTEGER :: IFCORNERR(3,8) = RESHAPE((/1,2,9,1,9,8,2,3,4,2,4,9,8,9,6,8,6,7,9,4,5,9,5,6/),(/3,8/))
|
||||||
|
INTEGER :: IFCORNERR(3,2) = RESHAPE((/1,3,5,1,5,7/),(/3,2/))
|
||||||
|
IVERT = WInfo3dInteger(M3dVertices)
|
||||||
|
wdmax=-1.e10
|
||||||
|
wdmin=1.e10
|
||||||
|
MAXNP=NP
|
||||||
|
ALLOCATE (XSING(MAXNP),YSING(MAXNP),BLVL(MAXNP))
|
||||||
|
XSING=5.
|
||||||
|
YSING=-5.
|
||||||
|
BLVL=-.5
|
||||||
|
DO K=1,NP
|
||||||
|
IF(INSKP(K) .EQ. 1) CYCLE
|
||||||
|
IF(CORD(K,1) .LT. 0. .OR. CORD(K,1) .GT. HSIZE) CYCLE
|
||||||
|
IF(CORD(K,2) .LT. 0. .OR. CORD(K,2) .GT. 7.5) CYCLE
|
||||||
|
wdmax=max(WD(K),wdmax)
|
||||||
|
wdmin=min(WD(K),wdmin)
|
||||||
|
XSING(K)=CORD(K,1)
|
||||||
|
YSING(K)=-CORD(K,2)
|
||||||
|
ENDDO
|
||||||
|
wdmins=wdmin/((wdmax-wdmin)*2.)
|
||||||
|
DO K=1,NP
|
||||||
|
IF(INSKP(K) .EQ. 1) CYCLE
|
||||||
|
IF(CORD(K,1) .LT. 0. .OR. CORD(K,1) .GT. HSIZE) CYCLE
|
||||||
|
IF(CORD(K,2) .LT. 0. .OR. CORD(K,2) .GT. 7.5) CYCLE
|
||||||
|
blvl(k)=-(WD(K)-wdmin)/(wdmax-wdmin)
|
||||||
|
ENDDO
|
||||||
|
!! read(155,'(2i6,24f12.3)') j,ncn,(xlin(k),ylin(k),blvl(k),k=1,ncn)
|
||||||
|
!! blvl(k)=(blvl(k))*0.1
|
||||||
|
CALL W3dVertices(xsing,blvl,ysing,MAXNP)
|
||||||
|
DO IFACET = 1,ne
|
||||||
|
! IF(IMAT(IFACET) .EQ. 999) CYCLE
|
||||||
|
if(ncorn(ifacet) .lt. 6 .or. (imat(ifacet) .eq. 0)) cycle
|
||||||
|
IF(IESKP(IFACET) .NE. 0) CYCLE
|
||||||
|
IF(CORD(nop(ifacet,1),1) .LT. 0. .OR. CORD(nop(ifacet,1),1) .GT. HSIZE) CYCLE
|
||||||
|
IF(CORD(nop(ifacet,3),1) .LT. 0. .OR. CORD(nop(ifacet,3),1) .GT. HSIZE) CYCLE
|
||||||
|
IF(CORD(nop(ifacet,5),1) .LT. 0. .OR. CORD(nop(ifacet,5),1) .GT. HSIZE) CYCLE
|
||||||
|
IF(CORD(nop(ifacet,1),2) .LT. 0. .OR. CORD(nop(ifacet,1),2) .GT. 7.5) CYCLE
|
||||||
|
IF(CORD(nop(ifacet,3),2) .LT. 0. .OR. CORD(nop(ifacet,3),2) .GT. 7.5) CYCLE
|
||||||
|
IF(CORD(nop(ifacet,5),2) .LT. 0. .OR. CORD(nop(ifacet,5),2) .GT. 7.5) CYCLE
|
||||||
|
if(ncorn(ifacet) .eq. 6) then
|
||||||
|
K=1
|
||||||
|
i1=nop(ifacet,ifcorner(1,k))
|
||||||
|
i2=nop(ifacet,ifcorner(2,k))
|
||||||
|
i3=nop(ifacet,ifcorner(3,k))
|
||||||
|
wm=(blvl(i1)+blvl(i2)+blvl(i3))/3.
|
||||||
|
mat=-wm*8.+1.
|
||||||
|
|
||||||
|
CALL W3dMaterialN(MAT)
|
||||||
|
|
||||||
|
IVERTICES(1) = i1
|
||||||
|
IVERTICES(2) = i2
|
||||||
|
IVERTICES(3) = i3
|
||||||
|
ncns=3
|
||||||
|
CALL W3dFacet(IVERTICES,ncns)
|
||||||
|
! WRITE(156,*) IFACET,I1,I2,I3,MAT
|
||||||
|
! enddo
|
||||||
|
else
|
||||||
|
IF(CORD(nop(ifacet,7),1) .LT. 0. .OR. CORD(nop(ifacet,7),1) .GT. HSIZE) CYCLE
|
||||||
|
IF(CORD(nop(ifacet,7),2) .LT. 0. .OR. CORD(nop(ifacet,7),2) .GT. 7.5) CYCLE
|
||||||
|
do k=1,2
|
||||||
|
i1=nop(ifacet,ifcornerr(1,k))
|
||||||
|
i2=nop(ifacet,ifcornerr(2,k))
|
||||||
|
i3=nop(ifacet,ifcornerr(3,k))
|
||||||
|
wm=(blvl(i1)+blvl(i2)+blvl(i3))/3.
|
||||||
|
mat=-wm*8.+1.
|
||||||
|
|
||||||
|
CALL W3dMaterialN(MAT)
|
||||||
|
|
||||||
|
IVERTICES(1) = i1
|
||||||
|
IVERTICES(2) = i2
|
||||||
|
IVERTICES(3) = i3
|
||||||
|
ncns=3
|
||||||
|
CALL W3dFacet(IVERTICES,ncns)
|
||||||
|
! WRITE(156,*) IFACET,I1,I2,I3,MAT
|
||||||
|
enddo
|
||||||
|
endif
|
||||||
|
END DO
|
||||||
|
DEALLOCATE (XSING,YSING,BLVL)
|
||||||
|
RETURN
|
||||||
|
END SUBROUTINE TRPLAT
|
||||||
|
|
||||||
|
!
|
||||||
|
SUBROUTINE ViewPos(Angle)
|
||||||
|
|
||||||
|
USE BLK3D
|
||||||
|
!
|
||||||
|
! Set viewing position
|
||||||
|
!
|
||||||
|
IMPLICIT NONE
|
||||||
|
!
|
||||||
|
REAL, INTENT(IN) :: Angle
|
||||||
|
CHARACTER(LEN=50) :: STBAR1
|
||||||
|
|
||||||
|
!
|
||||||
|
! REAL, PARAMETER :: DIST = 20. ! Controls viewing distance
|
||||||
|
real xtmp,ytmp,ztmp,xpos,ypos,zpos,xup,yup,zup
|
||||||
|
!
|
||||||
|
!
|
||||||
|
! Calculate viewing position using EYE matrix calculated by 3D modelling routines.
|
||||||
|
!
|
||||||
|
XTMP = 0.0
|
||||||
|
YTMP = 0.0
|
||||||
|
ZTMP = DIST
|
||||||
|
XPOS = EYE(1,1)*XTMP + EYE(1,2)*YTMP + EYE(1,3)*ZTMP + EYE(1,4)
|
||||||
|
YPOS = EYE(2,1)*XTMP + EYE(2,2)*YTMP + EYE(2,3)*ZTMP + EYE(2,4)
|
||||||
|
ZPOS = EYE(3,1)*XTMP + EYE(3,2)*YTMP + EYE(3,3)*ZTMP + EYE(3,4)
|
||||||
|
WRITE(STBAR1,'(3F13.3)') XPOS,YPOS,ZPOS
|
||||||
|
CALL WindowOutStatusBar(6,STBAR1)
|
||||||
|
!
|
||||||
|
! Calculate up vector using EYE matrix calculated by 3D modelling routines.
|
||||||
|
!
|
||||||
|
XTMP = 0.0
|
||||||
|
YTMP = 1.0
|
||||||
|
ZTMP = 0.0
|
||||||
|
XUP = EYE(1,1)*XTMP + EYE(1,2)*YTMP + EYE(1,3)*ZTMP
|
||||||
|
YUP = EYE(2,1)*XTMP + EYE(2,2)*YTMP + EYE(2,3)*ZTMP
|
||||||
|
ZUP = EYE(3,1)*XTMP + EYE(3,2)*YTMP + EYE(3,3)*ZTMP
|
||||||
|
!
|
||||||
|
! Set eye position
|
||||||
|
!
|
||||||
|
CALL W3dEye(XPOS,YPOS,ZPOS, &
|
||||||
|
EYE(1,4),EYE(2,4),EYE(3,4), &
|
||||||
|
XUP,YUP,ZUP)
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
END SUBROUTINE ViewPos
|
||||||
|
!
|
||||||
|
SUBROUTINE ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
!
|
||||||
|
! Display the model
|
||||||
|
!
|
||||||
|
USE WINTERACTER
|
||||||
|
|
||||||
|
IMPLICIT NONE
|
||||||
|
!
|
||||||
|
INTEGER, INTENT(IN) :: JHAND1,ITYPIMAGE ! Memory bitmap handle
|
||||||
|
!
|
||||||
|
! Select the bitmap as the target drawable and draw the model
|
||||||
|
!
|
||||||
|
!CALL IGrSelect(DrawBitmap,JHAND1)
|
||||||
|
!CALL IGrAreaClear()
|
||||||
|
!CALL W3dShow(View3Flat)
|
||||||
|
CALL WglSelect(DrawBitmap,JHAND1)
|
||||||
|
! CALL IGrAreaClear()
|
||||||
|
CALL WglShow(ITYPIMAGE)
|
||||||
|
!
|
||||||
|
! Now select window as target drawable and copy bitmap to window
|
||||||
|
!
|
||||||
|
! CALL IGrSelect(DrawWin)
|
||||||
|
CALL WglSelect(DrawWin)
|
||||||
|
CALL WBitmapPut(JHAND1,0,0)
|
||||||
|
RETURN
|
||||||
|
END SUBROUTINE ShowModel
|
||||||
|
!
|
@ -0,0 +1,7 @@
|
|||||||
|
MODULE BLK3D
|
||||||
|
|
||||||
|
REAL XMAX,YMAX,ZMAX,XMIN,YMIN,ZMIN,XLEN,YLEN,ZLEN,DIST,DISTSTEP
|
||||||
|
REAL :: EYE(4,4)
|
||||||
|
REAL :: ROTSV,ROTHSV,ROTVSV,DISTSV,VSCALESV
|
||||||
|
INTEGER IROTSV
|
||||||
|
END MODULE
|
@ -0,0 +1,4 @@
|
|||||||
|
MODULE BLKMAT
|
||||||
|
INTEGER, ALLOCATABLE :: IMATN(:),IRGB(:)
|
||||||
|
REAL, ALLOCATABLE :: SHINE(:),GLOSS(:)
|
||||||
|
END MODULE
|
@ -0,0 +1,588 @@
|
|||||||
|
SUBROUTINE CHVIEW(JHAND1,ITYPIMAGE)
|
||||||
|
|
||||||
|
!
|
||||||
|
USE WINTERACTER
|
||||||
|
|
||||||
|
USE BLK3D
|
||||||
|
SAVE
|
||||||
|
|
||||||
|
INCLUDE 'd.inc'
|
||||||
|
! IMPLICIT NONE
|
||||||
|
!
|
||||||
|
REAL , PARAMETER :: PI = 3.1415926
|
||||||
|
! REAL , PARAMETER :: AngleStep = PI/30.
|
||||||
|
REAL, PARAMETER :: DEFDIST = 5.0
|
||||||
|
!
|
||||||
|
REAL :: ViewAngle = 0.0
|
||||||
|
REAL :: SHIFT=0.0
|
||||||
|
REAL :: SHIFTV=0.0
|
||||||
|
REAL :: ROTH=0.0
|
||||||
|
REAL :: ROTV=0.0
|
||||||
|
REAL :: ROT=0.0
|
||||||
|
REAL :: VSCALE=1.0
|
||||||
|
INTEGER :: ITYPE,K,JRGB
|
||||||
|
INTEGER :: JHAND1,ITYPIMAGE,ITIME
|
||||||
|
TYPE(WIN_STYLE) :: WINDOW
|
||||||
|
TYPE(WIN_MESSAGE) :: MESSAGE
|
||||||
|
LOGICAL :: CHANGED,ONEC
|
||||||
|
CHARACTER(LEN=65) :: STBAR1
|
||||||
|
CHARACTER(LEN=260) :: FILENAME = 'objects.w3d'
|
||||||
|
! Main Message loop, keep asking for and processing
|
||||||
|
! messages until the user selects the Exit option.
|
||||||
|
!
|
||||||
|
ONEC=.TRUE.
|
||||||
|
DO
|
||||||
|
CALL WMessage(ITYPE,MESSAGE)
|
||||||
|
SELECT CASE (ITYPE)
|
||||||
|
CASE (KeyDown)
|
||||||
|
IF (MESSAGE%VALUE1==KeyEscape) EXIT
|
||||||
|
!
|
||||||
|
! Window exposed - re-paint window from bitmap
|
||||||
|
!
|
||||||
|
CASE (Expose)
|
||||||
|
CALL WBitmapDestroy(JHAND1)
|
||||||
|
CALL WBitmapCreate(JHAND1,WInfoWindow(WindowWidth), &
|
||||||
|
WInfoWindow(WindowHeight))
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (Resize) ! Window resized
|
||||||
|
CALL WBitmapDestroy(JHAND1)
|
||||||
|
CALL WBitmapCreate(JHAND1,WInfoWindow(WindowWidth), &
|
||||||
|
WInfoWindow(WindowHeight))
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
!
|
||||||
|
! Close window request - exit program
|
||||||
|
!
|
||||||
|
CASE (MenuSelect) ! Menu item selected
|
||||||
|
SELECT CASE (MESSAGE%VALUE1)
|
||||||
|
CASE (ID_SAV3D)
|
||||||
|
!
|
||||||
|
! Save data
|
||||||
|
!
|
||||||
|
CALL WSelectFile(FILTERSTR='Winteracter 3D model files|*.w3d|', &
|
||||||
|
IFLAGS =SaveDialog+PromptOn+AppendExt, &
|
||||||
|
FILEDIR =FILENAME, &
|
||||||
|
TITLE ='Save 3D model file')
|
||||||
|
IF (WInfoDialog(ExitButtonCommon)==CommonOK) THEN
|
||||||
|
CALL W3dSave(FILENAME)
|
||||||
|
ENDIF
|
||||||
|
!
|
||||||
|
CASE (ID_CLOSE)
|
||||||
|
RETURN
|
||||||
|
CASE (ID_OPENNEW)
|
||||||
|
ITYPIMAGE=-1
|
||||||
|
RETURN
|
||||||
|
CASE (ID_SAVEVIEW)
|
||||||
|
ROTSV=ROT
|
||||||
|
ROTHSV=ROTH
|
||||||
|
ROTVSV=ROTV
|
||||||
|
DISTSV=DIST
|
||||||
|
VSCALESV=VSCALE
|
||||||
|
IROTSV=1
|
||||||
|
CASE (ID_WIRE)
|
||||||
|
ITYPIMAGE=0
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_HIDDEN)
|
||||||
|
ITYPIMAGE=1
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_UNLIT)
|
||||||
|
ITYPIMAGE=2
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_FLAT)
|
||||||
|
ITYPIMAGE=3
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_GOURAUD)
|
||||||
|
ITYPIMAGE=4
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_MULTCOL)
|
||||||
|
IF(ONEC) THEN
|
||||||
|
CALL W3dMaterial(9,WRGB(254,254,255))
|
||||||
|
CALL W3dMaterial(8,WRGB(230,254,255))
|
||||||
|
CALL W3dMaterial(7,WRGB(180,254,255))
|
||||||
|
CALL W3dMaterial(6,WRGB(130,254,255))
|
||||||
|
CALL W3dMaterial(5,WRGB(080,254,255))
|
||||||
|
CALL W3dMaterial(4,WRGB(030,254,255))
|
||||||
|
CALL W3dMaterial(3,WRGB(001,220,220))
|
||||||
|
CALL W3dMaterial(2,WRGB(001,180,180))
|
||||||
|
CALL W3dMaterial(1,WRGB(001,120,120))
|
||||||
|
CALL V3Materials(JHAND1,ITYPIMAGE,VIEWANGLE)
|
||||||
|
CALL WindowSelect(JHAND1)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
ENDIF
|
||||||
|
ONEC=.FALSE.
|
||||||
|
CASE (ID_ONECOL)
|
||||||
|
DO K=1,9
|
||||||
|
CALL W3dMaterial(K,WRGB(255,255,100))
|
||||||
|
ENDDO
|
||||||
|
CALL WSelectColour(JRGB,'Colour ')
|
||||||
|
IF (WInfoDialog(ExitButtonCommon)==CommonOK) THEN
|
||||||
|
DO K=1,9
|
||||||
|
CALL W3dMaterial(K,JRGB)
|
||||||
|
ENDDO
|
||||||
|
CHANGED = .TRUE.
|
||||||
|
ENDIF
|
||||||
|
IF(CHANGED) CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
ONEC=.TRUE.
|
||||||
|
CASE (ID_ZOOMIN)
|
||||||
|
DIST=DIST-DISTSTEP
|
||||||
|
WRITE(STBAR1,'(F13.3)') DIST
|
||||||
|
CALL WindowOutStatusBar(4,STBAR1)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
!
|
||||||
|
CASE (ID_ZOOMOUT)
|
||||||
|
DIST=DIST+DISTSTEP
|
||||||
|
WRITE(STBAR1,'(F13.3)') DIST
|
||||||
|
CALL WindowOutStatusBar(4,STBAR1)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_FZOOM)
|
||||||
|
DIST=DIST-DISTSTEP*5.
|
||||||
|
WRITE(STBAR1,'(F13.3)') DIST
|
||||||
|
CALL WindowOutStatusBar(4,STBAR1)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
!
|
||||||
|
CASE (ID_PLEFT)
|
||||||
|
SHIFT=SHIFT+0.5
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_PRIGHT)
|
||||||
|
SHIFT=SHIFT-0.5
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_UPAR)
|
||||||
|
SHIFTV=SHIFTV+0.5
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_DWNAR)
|
||||||
|
SHIFTV=SHIFTV-0.5
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_ROTATAC)
|
||||||
|
ROT=ROT-5.
|
||||||
|
CALL W3dRotate(0.,1)
|
||||||
|
CALL W3dRotate(0.,2)
|
||||||
|
CALL W3dRotate(-5.,3)
|
||||||
|
!ROT=ROT+0.087266
|
||||||
|
!EYE(1,4) = (XMIN + XLEN/2.0+SHIFT)*COS(ROT)+(YMIN + YLEN/2.0)*SIN(ROT)
|
||||||
|
!EYE(3,4) = ZMIN + ZLEN/2.0
|
||||||
|
!EYE(2,4) =-(XMIN + XLEN/2.0+SHIFT)*SIN(ROT)+(YMIN + YLEN/2.0)*COS(ROT)
|
||||||
|
!CALL ViewPos(ViewAngle)
|
||||||
|
!CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (ID_ROTATC)
|
||||||
|
ROT=ROT+5.
|
||||||
|
CALL W3dRotate(0.,1)
|
||||||
|
CALL W3dRotate(0.,2)
|
||||||
|
CALL W3dRotate(5.,3)
|
||||||
|
!ROT=ROT+0.087266
|
||||||
|
!EYE(1,4) = (XMIN + XLEN/2.0+SHIFT)*COS(ROT)+(YMIN + YLEN/2.0)*SIN(ROT)
|
||||||
|
!EYE(3,4) = ZMIN + ZLEN/2.0
|
||||||
|
!EYE(2,4) =-(XMIN + XLEN/2.0+SHIFT)*SIN(ROT)+(YMIN + YLEN/2.0)*COS(ROT)
|
||||||
|
!CALL ViewPos(ViewAngle)
|
||||||
|
!CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
!! CASE (ID_VSCALEV)
|
||||||
|
! CALL GETVSCAL(VSCALESV)
|
||||||
|
!! CALL W3dScale(1.0,VSCALESV,1.0)
|
||||||
|
! CALL W3dGetMatrix(EYE)
|
||||||
|
! EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
! EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
! EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
! CALL ViewPos(ViewAngle)
|
||||||
|
! CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
|
||||||
|
CASE (ID_RSET)
|
||||||
|
DIST = DEFDIST*MAX(XLEN,YLEN,ZLEN)
|
||||||
|
WRITE(STBAR1,'(F13.3)') DIST
|
||||||
|
CALL WindowOutStatusBar(4,STBAR1)
|
||||||
|
SHIFT=0.
|
||||||
|
SHIFTV=0.
|
||||||
|
VIEWANGLE=0.
|
||||||
|
CALL W3dRotate(-ROTV,1)
|
||||||
|
CALL W3dRotate(-ROTH,2)
|
||||||
|
CALL W3dRotate(-ROT,3)
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
ROTH=0.
|
||||||
|
ROTV=0.
|
||||||
|
ROT=0.
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
CASE(ID_TOP)
|
||||||
|
CALL W3dRotate(-ROTV-45.,1)
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
ROTV=-45.
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
CASE(ID_SIDE)
|
||||||
|
CALL W3dRotate(-ROTV+45.,1)
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
ROTV= 45.
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
END SELECT
|
||||||
|
CASE (CloseRequest)
|
||||||
|
RETURN
|
||||||
|
!
|
||||||
|
! Mouse button pressed. Action depends on button:
|
||||||
|
!
|
||||||
|
CASE (MouseButDown)
|
||||||
|
SELECT CASE (MESSAGE%VALUE1)
|
||||||
|
! Left button. Start rotation.
|
||||||
|
!
|
||||||
|
CASE (LeftButton)
|
||||||
|
ROTH=ROTH+5.
|
||||||
|
CALL W3dRotate(0.,1)
|
||||||
|
CALL W3dRotate(5.,2)
|
||||||
|
CALL W3dRotate(0.,3)
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
! right button. Start rotation.
|
||||||
|
!
|
||||||
|
CASE (RightButton)
|
||||||
|
ROTH=ROTH-5.
|
||||||
|
CALL W3dRotate(0.,1)
|
||||||
|
CALL W3dRotate(-5.,2)
|
||||||
|
CALL W3dRotate(0.,3)
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
CASE (UpWheel)
|
||||||
|
ROTV=ROTV+5.
|
||||||
|
CALL W3dRotate(5.,1)
|
||||||
|
CALL W3dRotate(0.,2)
|
||||||
|
CALL W3dRotate(0.,3)
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
|
||||||
|
CASE (DownWheel)
|
||||||
|
ROTV=ROTV-5.
|
||||||
|
CALL W3dRotate(-5.,1)
|
||||||
|
CALL W3dRotate(0.,2)
|
||||||
|
CALL W3dRotate(0.,3)
|
||||||
|
CALL W3dGetMatrix(EYE)
|
||||||
|
WRITE(STBAR1,'(5F13.3)') ROTH,ROTV,ROT,SHIFT,SHIFTV
|
||||||
|
CALL WindowOutStatusBar(2,STBAR1)
|
||||||
|
EYE(1,4) = XMIN + XLEN/2.0+SHIFT
|
||||||
|
EYE(2,4) = YMIN + YLEN/2.0
|
||||||
|
EYE(3,4) = ZMIN + ZLEN/2.0+SHIFTV
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
ENDSELECT
|
||||||
|
END SELECT
|
||||||
|
END DO
|
||||||
|
RETURN
|
||||||
|
END
|
||||||
|
|
||||||
|
SUBROUTINE V3Materials(JHAND1,ITYPIMAGE,VIEWANGLE)
|
||||||
|
!
|
||||||
|
! Edit materials
|
||||||
|
!
|
||||||
|
USE WINTERACTER
|
||||||
|
USE BLKMAT
|
||||||
|
INCLUDE 'd.inc'
|
||||||
|
TYPE(WIN_STYLE) :: WINDOW
|
||||||
|
TYPE(WIN_MESSAGE) :: MESSAGE
|
||||||
|
CHARACTER(LEN=10) :: CMATNUM
|
||||||
|
!
|
||||||
|
! INTEGER, INTENT(IN) :: JHAND1,ITYPIMAGE ! Memory bitmap handle
|
||||||
|
! REAL, INTENT(IN) :: VIEWANGLE
|
||||||
|
INTEGER JHAND1,ITYPIMAGE ! Memory bitmap handle
|
||||||
|
REAL VIEWANGLE
|
||||||
|
INTEGER NMAT,MAXMAT,JMAT,IMAT,JRGB,I1,I2,IG,IR,IB,J2,JC1,JR1,ISHINE,IGLOSS,IC2,IR2,IR1,IC1
|
||||||
|
LOGICAL CHANGED
|
||||||
|
!
|
||||||
|
CALL WMessageEnable(FieldChanged,Enabled)
|
||||||
|
|
||||||
|
CALL WDialogLoad(IDD_MATERIALS)
|
||||||
|
!
|
||||||
|
! Operate on a copy of the material list,
|
||||||
|
! so model remains intact if user cancels
|
||||||
|
!
|
||||||
|
NMAT = WInfo3dInteger(M3dMaterials)
|
||||||
|
ALLOCATE(IMATN(NMAT))
|
||||||
|
ALLOCATE(IRGB(NMAT))
|
||||||
|
ALLOCATE(SHINE(NMAT))
|
||||||
|
ALLOCATE(GLOSS(NMAT))
|
||||||
|
MAXMAT = WInfo3dInteger(M3dMaxMaterials)
|
||||||
|
CALL WGridRows(IDF_GRID1,NMAT)
|
||||||
|
!
|
||||||
|
! Retrieve material list and set background colours of "Material" column to match
|
||||||
|
!
|
||||||
|
JMAT = 0
|
||||||
|
DO IMAT = 1,MAXMAT
|
||||||
|
CALL W3dMaterialN(IMAT)
|
||||||
|
JRGB = WInfo3dInteger(M3dRGB)
|
||||||
|
IF (JRGB/=-1) THEN
|
||||||
|
JMAT = JMAT + 1
|
||||||
|
IMATN(JMAT) = IMAT
|
||||||
|
IRGB(JMAT) = JRGB
|
||||||
|
SHINE(JMAT) = WInfo3dReal(M3dShine)
|
||||||
|
GLOSS(JMAT) = WInfo3dReal(M3dGloss)
|
||||||
|
CALL WGridColourCell(IDF_GRID1,1,JMAT,RGBBACK=JRGB)
|
||||||
|
END IF
|
||||||
|
END DO
|
||||||
|
!
|
||||||
|
! IMAT = Current material
|
||||||
|
!
|
||||||
|
IMAT = 1
|
||||||
|
!
|
||||||
|
! Update "Current Material" group box
|
||||||
|
!
|
||||||
|
CALL V3ShowMaterial(IMAT)
|
||||||
|
!
|
||||||
|
CALL V3DialogShow()
|
||||||
|
!
|
||||||
|
! Move focus to "Modify" checkbox column
|
||||||
|
! (Note: Must do this AFTER displaying dialog.
|
||||||
|
! Linux version crashes if set before dialog is visible.)
|
||||||
|
!
|
||||||
|
CALL WGridSetCell(IDF_GRID1,2,IMAT)
|
||||||
|
!
|
||||||
|
DO
|
||||||
|
CALL WMessage(ITYPE,MESSAGE)
|
||||||
|
SELECT CASE (ITYPE)
|
||||||
|
!
|
||||||
|
! Button press
|
||||||
|
!
|
||||||
|
CASE (PushButton)
|
||||||
|
SELECT CASE (MESSAGE%VALUE1)
|
||||||
|
CASE (IDOK)
|
||||||
|
CALL WDialogHide()
|
||||||
|
DO JMAT = 1,NMAT
|
||||||
|
CALL W3dMaterial(IMATN(JMAT),IRGB(JMAT),SHINE(JMAT),GLOSS(JMAT))
|
||||||
|
END DO
|
||||||
|
! CALL V3Display(.TRUE.)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
EXIT
|
||||||
|
CASE (IDCANCEL)
|
||||||
|
EXIT
|
||||||
|
CASE (IDF_APPLY)
|
||||||
|
DO JMAT = 1,NMAT
|
||||||
|
CALL W3dMaterial(IMATN(JMAT),IRGB(JMAT),SHINE(JMAT),GLOSS(JMAT))
|
||||||
|
END DO
|
||||||
|
! CALL V3Display(.TRUE.)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
|
||||||
|
CHANGED = .TRUE.
|
||||||
|
CALL WDialogFieldState(IDF_APPLY,Disabled)
|
||||||
|
CASE (IDF_COLOUR)
|
||||||
|
JRGB = IRGB(IMAT)
|
||||||
|
WRITE(CMATNUM,'(I10)') IMAT
|
||||||
|
CALL ILocateString(CMATNUM,I1,I2)
|
||||||
|
CALL WSelectColour(JRGB,'Material '//CMATNUM(I1:I2))
|
||||||
|
IF (WInfoDialog(ExitButtonCommon)==CommonOK) THEN
|
||||||
|
IRGB(IMAT) = JRGB
|
||||||
|
CALL V3ShowMaterial(IMAT)
|
||||||
|
CHANGED = .TRUE.
|
||||||
|
CALL WDialogFieldState(IDF_APPLY,Enabled)
|
||||||
|
END IF
|
||||||
|
! CASE (IDHELP)
|
||||||
|
! CALL V3Help(5)
|
||||||
|
END SELECT
|
||||||
|
!
|
||||||
|
! Change material ?
|
||||||
|
!
|
||||||
|
CASE (FieldChanged)
|
||||||
|
IF (MESSAGE%VALUE2==IDF_GRID1) THEN
|
||||||
|
CALL WGridPos(MESSAGE%Y,IC2,IR2)
|
||||||
|
IF (IC2==1) THEN
|
||||||
|
CALL WGridSetCell(IDF_GRID1,2,IR2)
|
||||||
|
IF (IMAT==IR2) THEN
|
||||||
|
CALL WGridPutCellCheckbox(IDF_GRID1,2,IMAT,Enabled)
|
||||||
|
ELSE
|
||||||
|
CALL WGridPutCellCheckbox(IDF_GRID1,2,IMAT,Disabled)
|
||||||
|
IMAT = IR2
|
||||||
|
CALL WGridPutCellCheckbox(IDF_GRID1,2,IMAT,Enabled)
|
||||||
|
CALL V3ShowMaterial(IMAT)
|
||||||
|
END IF
|
||||||
|
ELSE IF (MESSAGE%VALUE1==IDF_GRID1) THEN
|
||||||
|
CALL WGridPos(MESSAGE%X,IC1,IR1)
|
||||||
|
IF (IC1==2.AND.IC2==2.AND.IR1==IR2) THEN
|
||||||
|
IF (IMAT==IR2) THEN
|
||||||
|
CALL WGridPutCellCheckbox(IDF_GRID1,2,IMAT,Enabled)
|
||||||
|
ELSE
|
||||||
|
CALL WGridPutCellCheckbox(IDF_GRID1,2,IMAT,Disabled)
|
||||||
|
IMAT = IR2
|
||||||
|
CALL V3ShowMaterial(IMAT)
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
END IF
|
||||||
|
ELSE IF (MESSAGE%VALUE1==IDF_SHINE.AND. &
|
||||||
|
MESSAGE%VALUE2==IDF_SHINE) THEN
|
||||||
|
CALL WDialogGetTrackbar(IDF_SHINE,ISHINE)
|
||||||
|
SHINE(IMAT) = ISHINE/100.
|
||||||
|
CALL WDialogPutReal(IDF_SHINE2,SHINE(IMAT),'(F4.2)')
|
||||||
|
CHANGED = .TRUE.
|
||||||
|
CALL WDialogFieldState(IDF_APPLY,Enabled)
|
||||||
|
ELSE IF (MESSAGE%VALUE1==IDF_GLOSS.AND. &
|
||||||
|
MESSAGE%VALUE2==IDF_GLOSS) THEN
|
||||||
|
CALL WDialogGetTrackbar(IDF_GLOSS,IGLOSS)
|
||||||
|
GLOSS(IMAT) = IGLOSS/100.
|
||||||
|
CALL WDialogPutReal(IDF_GLOSS2,GLOSS(IMAT),'(F4.2)')
|
||||||
|
CHANGED = .TRUE.
|
||||||
|
CALL WDialogFieldState(IDF_APPLY,Enabled)
|
||||||
|
END IF
|
||||||
|
!
|
||||||
|
! Maintain display
|
||||||
|
!
|
||||||
|
CASE (Expose)
|
||||||
|
CALL ViewPos(ViewAngle)
|
||||||
|
CALL ShowModel(JHAND1,ITYPIMAGE)
|
||||||
|
! CALL V3Display(.TRUE.)
|
||||||
|
END SELECT
|
||||||
|
END DO
|
||||||
|
!
|
||||||
|
CALL WDialogUnload()
|
||||||
|
DEALLOCATE(IMATN)
|
||||||
|
DEALLOCATE(IRGB)
|
||||||
|
DEALLOCATE(SHINE)
|
||||||
|
DEALLOCATE(GLOSS)
|
||||||
|
RETURN
|
||||||
|
END SUBROUTINE V3Materials
|
||||||
|
|
||||||
|
!
|
||||||
|
!******************************************************************************
|
||||||
|
!
|
||||||
|
SUBROUTINE V3ShowMaterial(IMAT)
|
||||||
|
|
||||||
|
USE WINTERACTER
|
||||||
|
! USE RESID
|
||||||
|
USE BLKMAT
|
||||||
|
INCLUDE 'd.inc'
|
||||||
|
!
|
||||||
|
INTEGER, INTENT(IN) :: IMAT
|
||||||
|
INTEGER ISHINE,IGLOSS,IR,IG,IB
|
||||||
|
!
|
||||||
|
CALL WGridPutCellCheckbox(IDF_GRID1,2,IMAT,Enabled)
|
||||||
|
CALL WGridColourCell(IDF_GRID1,1,IMAT,RGBBACK=IRGB(IMAT))
|
||||||
|
CALL WRGBsplit(IRGB(IMAT),IR,IG,IB)
|
||||||
|
CALL WDialogPutInteger(IDF_RED ,IR)
|
||||||
|
CALL WDialogPutInteger(IDF_GREEN,IG)
|
||||||
|
CALL WDialogPutInteger(IDF_BLUE ,IB)
|
||||||
|
CALL WDialogPutReal(IDF_SHINE2,SHINE(IMAT),'(F4.2)')
|
||||||
|
CALL WDialogPutReal(IDF_GLOSS2,GLOSS(IMAT),'(F4.2)')
|
||||||
|
ISHINE = INT(SHINE(IMAT)*100.)
|
||||||
|
CALL WDialogPutTrackbar(IDF_SHINE,ISHINE)
|
||||||
|
IGLOSS = INT(GLOSS(IMAT)*100.)
|
||||||
|
CALL WDialogPutTrackbar(IDF_GLOSS,IGLOSS)
|
||||||
|
RETURN
|
||||||
|
END SUBROUTINE V3ShowMaterial
|
||||||
|
|
||||||
|
!
|
||||||
|
!******************************************************************************
|
||||||
|
!
|
||||||
|
SUBROUTINE V3DialogShow()
|
||||||
|
!
|
||||||
|
! Display current dialog at top left corner of model view window
|
||||||
|
!
|
||||||
|
USE WINTERACTER
|
||||||
|
INCLUDE 'd.inc'
|
||||||
|
INTEGER IXWIN,IYWIN
|
||||||
|
! CALL WindowSelect(IHVIEWWIN)
|
||||||
|
IXWIN = WInfoWindow(ClientXPos)
|
||||||
|
IYWIN = WInfoWindow(ClientYPos)
|
||||||
|
! CALL WindowSelect(0)
|
||||||
|
CALL WDialogShow(IXWIN,IYWIN,ITYPE=SemiModeless)
|
||||||
|
RETURN
|
||||||
|
END SUBROUTINE V3DialogShow
|
||||||
|
|
||||||
|
SUBROUTINE GETVSCAL(VSCALESV)
|
||||||
|
USE WINTERACTER
|
||||||
|
INCLUDE 'd.inc'
|
||||||
|
call wdialogload(IDD_VSCAL)
|
||||||
|
ierr=infoerror(1)
|
||||||
|
|
||||||
|
CALL WDialogSelect(IDD_VSCAL)
|
||||||
|
ierr=infoerror(1)
|
||||||
|
|
||||||
|
CALL WDialogPutReal(IDF_REAL1,VSCALESV)
|
||||||
|
|
||||||
|
CALL WDialogShow(-1,-1,0,Modal)
|
||||||
|
ierr=infoerror(1)
|
||||||
|
do
|
||||||
|
|
||||||
|
IF (WInfoDialog(ExitButton) .EQ. IDOK) THEN
|
||||||
|
|
||||||
|
call wdialogGetReal(IDF_REAL1,VSCALESV)
|
||||||
|
RETURN
|
||||||
|
else
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
enddo
|
||||||
|
|
||||||
|
RETURN
|
||||||
|
END
|
||||||
|
|
@ -0,0 +1,84 @@
|
|||||||
|
SUBROUTINE DUMPBIN(KKK,KENT)
|
||||||
|
USE BLK1MOD
|
||||||
|
USE BLKMAP
|
||||||
|
CHARACTER*11 FNAME
|
||||||
|
ISLP=0
|
||||||
|
IPRT=1
|
||||||
|
IPNN=1
|
||||||
|
IPEN=1
|
||||||
|
IPO=1
|
||||||
|
IRO=1
|
||||||
|
IPP=0
|
||||||
|
IRFN=0
|
||||||
|
IGEN=0
|
||||||
|
NXZL=0
|
||||||
|
NITST=1
|
||||||
|
ISCTXT=0
|
||||||
|
IFILL=0
|
||||||
|
IALTGM=1
|
||||||
|
NLAYD=0
|
||||||
|
HORIZ=10.
|
||||||
|
VERT=8.
|
||||||
|
XSALE=0.
|
||||||
|
YSALE=0.
|
||||||
|
XFACT=0.
|
||||||
|
YFACT=0.
|
||||||
|
AR=0.
|
||||||
|
ANG=0.
|
||||||
|
xadded=0.
|
||||||
|
yadded=0.
|
||||||
|
ntempin=0
|
||||||
|
|
||||||
|
WRITE(FNAME,6001) KKK
|
||||||
|
6001 FORMAT('DMP-',I3.3,'.RST')
|
||||||
|
OPEN(240,FILE=FNAME,STATUS='UNKNOWN',FORM='UNFORMATTED')
|
||||||
|
IF(KENT .EQ. 0) THEN
|
||||||
|
DO J=1,NELTS
|
||||||
|
DO K=1,3
|
||||||
|
NOPSTO(J,2*K-1,1)=NOPEL(J,K)
|
||||||
|
NOPSTO(J,2*K,1)=0
|
||||||
|
ENDDO
|
||||||
|
NOPSTO(J,7,1)=0
|
||||||
|
NOPSTO(J,8,1)=0
|
||||||
|
IMATSTO(J,1)=1
|
||||||
|
THTASTO(J,1)=0.
|
||||||
|
ENDDO
|
||||||
|
ELSE
|
||||||
|
DO J=1,NE
|
||||||
|
DO K=1,6
|
||||||
|
NOPSTO(J,K,1)=NOP(J,K)
|
||||||
|
ENDDO
|
||||||
|
NOPSTO(J,7,1)=0
|
||||||
|
NOPSTO(J,8,1)=0
|
||||||
|
if(nop(j,1) .gt. 0) then
|
||||||
|
IMATSTO(J,1)=1
|
||||||
|
else
|
||||||
|
IMATSTO(J,1)=0
|
||||||
|
endif
|
||||||
|
THTASTO(J,1)=0.
|
||||||
|
ENDDO
|
||||||
|
NELTS=NE
|
||||||
|
ENDIF
|
||||||
|
NPSTO(1)=NP
|
||||||
|
NESTO(1)=NELTS
|
||||||
|
NLST=0
|
||||||
|
NENTRY=0
|
||||||
|
NLAYD=0
|
||||||
|
NCLM=0
|
||||||
|
WRITE(240) TITLE,NP,NELTS
|
||||||
|
WRITE(240) ISLP,IPRT,IPNN,IPEN,IPO,IRO,IPP,IRFN &
|
||||||
|
& ,IGEN,NXZL,NITST,ISCTXT,IFILL,IALTGM,NLAYD,xadded,yadded,ntempin
|
||||||
|
WRITE(240) HORIZ,VERT,XSALE,YSALE,XFACT,YFACT,AR,ANG
|
||||||
|
WRITE(240) ((NOPSTO(J,K,1),K=1,8),IMATSTO(J,1),THTASTO(J,1),J=1,NELTS)
|
||||||
|
WRITE(240) &
|
||||||
|
& (XUSR(J),YUSR(J),WD(J),WIDTH(J),SS1(J),SS2(J),WIDS(J), &
|
||||||
|
& WIDBS(J),SSO(J),BS1(J),J=1,NP)
|
||||||
|
!IPK MAR02 add BS1
|
||||||
|
!IPK JUL98 + (XUSR(J),YUSR(J),WD(J),WIDTH(J),SS1(J),SS2(J),WIDS(J)
|
||||||
|
WRITE(240) NLST
|
||||||
|
!IPK JAN01
|
||||||
|
WRITE(240) NENTRY,NLAYD,NCLM
|
||||||
|
CLOSE(240)
|
||||||
|
RETURN
|
||||||
|
END
|
||||||
|
|
@ -0,0 +1,121 @@
|
|||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// THIS FILE SHOULD NOT BE EDITED USING A TEXT
|
||||||
|
// EDITOR OR 3RD PARTY RESOURCE EDITOR, EXCEPT
|
||||||
|
// WHEN SPECIFICALLY INSTRUCTED BY I.S.S.
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Winteracter exported resources.
|
||||||
|
//
|
||||||
|
// Exported : 01/Mar/2017 10:58:19
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// To use this file it should be imported into
|
||||||
|
// your main resource script
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Parameter Definitions
|
||||||
|
//
|
||||||
|
#define ID_FILE 40001
|
||||||
|
#define ID_View 40033
|
||||||
|
#define IDM_MENU1 30002
|
||||||
|
#define ID_RSET 40131
|
||||||
|
#define ID_COLR 40003
|
||||||
|
#define ID_CLOSE 40005
|
||||||
|
#define ID_WIRE 40139
|
||||||
|
#define ID_HIDDEN 40007
|
||||||
|
#define ID_UNLIT 40008
|
||||||
|
#define ID_FLAT 40140
|
||||||
|
#define ID_GOURAUD 40141
|
||||||
|
#define ID_ITEM11 40011
|
||||||
|
#define ID_ONECOL 40012
|
||||||
|
#define ID_MULTCOL 40013
|
||||||
|
#define ID_TOP 40014
|
||||||
|
#define ID_SIDE 40015
|
||||||
|
#define ID_SAVEVIEW 40132
|
||||||
|
#define ID_SAV3D 40133
|
||||||
|
#define ID_OPENNEW 40137
|
||||||
|
#define ID_ITEM149 40138
|
||||||
|
#define ID_FZOOM 40142
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Menus
|
||||||
|
//
|
||||||
|
IDM_MENU1 MENU
|
||||||
|
BEGIN
|
||||||
|
POPUP "FILE"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "Save as a W3D file\aAlt+S", ID_SAV3D
|
||||||
|
MENUITEM "Close this Window\aAlt+X", ID_CLOSE
|
||||||
|
MENUITEM "Open a New W3D File\aCtrl+N", ID_OPENNEW
|
||||||
|
END
|
||||||
|
POPUP "TYPE"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "&Wireframe\aF2", ID_WIRE
|
||||||
|
MENUITEM "&Hidden lines removed\aF3", ID_HIDDEN
|
||||||
|
MENUITEM "U&nlit\aF4", ID_UNLIT
|
||||||
|
MENUITEM "&Flat shading\aF5", ID_FLAT
|
||||||
|
MENUITEM "&Gouraud shading\aF6", ID_GOURAUD
|
||||||
|
END
|
||||||
|
POPUP "VIEW"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "Fast Zoom\aF7", ID_FZOOM
|
||||||
|
MENUITEM "Top View\aF8", ID_TOP
|
||||||
|
MENUITEM "Side View\aF9", ID_SIDE
|
||||||
|
MENUITEM "Reset View", ID_RSET
|
||||||
|
END
|
||||||
|
POPUP "COLOUR"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "Single Colour", ID_ONECOL
|
||||||
|
MENUITEM "Multi-Colour", ID_MULTCOL
|
||||||
|
END
|
||||||
|
POPUP "SAVE"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "Save View", ID_SAVEVIEW
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
IDM_MENU1 RCDATA
|
||||||
|
BEGIN
|
||||||
|
ID_FILE,1,0,
|
||||||
|
ID_ITEM149,2,0,
|
||||||
|
ID_View,3,0,
|
||||||
|
ID_COLR,4,0,
|
||||||
|
ID_ITEM11,5,0,
|
||||||
|
0
|
||||||
|
END
|
||||||
|
|
||||||
|
IDM_MENU1 ISSMENUSTRING
|
||||||
|
BEGIN
|
||||||
|
ID_UNLIT,"Unlit\0",
|
||||||
|
ID_HIDDEN,"Wireframe model, hidden lines removed\0",
|
||||||
|
ID_FLAT,"Solid model, with lighting and constant shading\0",
|
||||||
|
ID_GOURAUD,"Solid model, with lighting and Gouraud shading\0",
|
||||||
|
0
|
||||||
|
END
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Accelerators
|
||||||
|
//
|
||||||
|
IDM_MENU1 ACCELERATORS
|
||||||
|
BEGIN
|
||||||
|
83 , ID_SAV3D ,NOINVERT,VIRTKEY,ALT
|
||||||
|
88 , ID_CLOSE ,NOINVERT,VIRTKEY,ALT
|
||||||
|
78 , ID_OPENNEW ,NOINVERT,VIRTKEY,CONTROL
|
||||||
|
VK_F2 , ID_WIRE ,NOINVERT,VIRTKEY
|
||||||
|
VK_F3 , ID_HIDDEN ,NOINVERT,VIRTKEY
|
||||||
|
VK_F4 , ID_UNLIT ,NOINVERT,VIRTKEY
|
||||||
|
VK_F5 , ID_FLAT ,NOINVERT,VIRTKEY
|
||||||
|
VK_F6 , ID_GOURAUD ,NOINVERT,VIRTKEY
|
||||||
|
VK_F7 , ID_FZOOM ,NOINVERT,VIRTKEY
|
||||||
|
VK_F8 , ID_TOP ,NOINVERT,VIRTKEY
|
||||||
|
VK_F9 , ID_SIDE ,NOINVERT,VIRTKEY
|
||||||
|
END
|
||||||
|
|
@ -0,0 +1,74 @@
|
|||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// THIS FILE SHOULD NOT BE EDITED USING A TEXT
|
||||||
|
// EDITOR OR 3RD PARTY RESOURCE EDITOR, EXCEPT
|
||||||
|
// WHEN SPECIFICALLY INSTRUCTED BY I.S.S.
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Winteracter exported resources.
|
||||||
|
//
|
||||||
|
// Exported : 01/Mar/2017 10:59:52
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// To use this file it should be imported into
|
||||||
|
// your main resource script
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Parameter Definitions
|
||||||
|
//
|
||||||
|
#define IDT_TOOLBAR1 30102
|
||||||
|
#define ID_PRIGHT 40101
|
||||||
|
#define ID_ZOOMIN 40102
|
||||||
|
#define ID_ZOOMOUT 40103
|
||||||
|
#define ID_PLEFT 40105
|
||||||
|
#define ID_ROTATC 40107
|
||||||
|
#define ID_ROTATAC 20013
|
||||||
|
#define ID_UPAR 40135
|
||||||
|
#define ID_DWNAR 40136
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Bitmaps
|
||||||
|
//
|
||||||
|
IDT_TOOLBAR1 BITMAP DISCARDABLE "tbar1.bmp"
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Strings
|
||||||
|
//
|
||||||
|
STRINGTABLE DISCARDABLE
|
||||||
|
BEGIN
|
||||||
|
ID_ZOOMOUT "Zoom Out"
|
||||||
|
ID_ZOOMIN "Zoom In"
|
||||||
|
ID_PLEFT "Pan Left"
|
||||||
|
ID_PRIGHT "Pan Right"
|
||||||
|
ID_ROTATC "Rotate Clockwise"
|
||||||
|
ID_ROTATAC "Rotate Anti-Clockwise"
|
||||||
|
ID_UPAR "Pan Upwards"
|
||||||
|
ID_DWNAR "Pan Down"
|
||||||
|
END
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Toolbar Data
|
||||||
|
//
|
||||||
|
IDT_TOOLBAR1 RCDATA
|
||||||
|
BEGIN
|
||||||
|
16, 16,
|
||||||
|
ID_ZOOMIN,
|
||||||
|
ID_ZOOMOUT,
|
||||||
|
ID_PLEFT,
|
||||||
|
ID_PRIGHT,
|
||||||
|
ID_ROTATC,
|
||||||
|
ID_ROTATAC,
|
||||||
|
ID_UPAR,
|
||||||
|
ID_DWNAR,
|
||||||
|
0,0
|
||||||
|
END
|
||||||
|
|
||||||
|
|
@ -0,0 +1,102 @@
|
|||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// THIS FILE SHOULD NOT BE EDITED USING A TEXT
|
||||||
|
// EDITOR OR 3RD PARTY RESOURCE EDITOR, EXCEPT
|
||||||
|
// WHEN SPECIFICALLY INSTRUCTED BY I.S.S.
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Winteracter exported resources.
|
||||||
|
//
|
||||||
|
// Exported : 25/Feb/2017 14:50:26
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// To use this file it should be imported into
|
||||||
|
// your main resource script
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Parameter Definitions
|
||||||
|
//
|
||||||
|
#define IDF_LABEL1 1001
|
||||||
|
#define IDF_LABEL2 1002
|
||||||
|
#define IDF_GROUP1 1016
|
||||||
|
#define IDF_LABEL9 1017
|
||||||
|
#define IDF_LABEL11 1019
|
||||||
|
#define IDD_TEMPLATE001 107
|
||||||
|
#define IDF_GRID1 1032
|
||||||
|
#define ISS1 1033
|
||||||
|
#define IDF_APPLY 1039
|
||||||
|
#define IDD_MATERIALS 109
|
||||||
|
#define IDF_COLOUR 1005
|
||||||
|
#define ISS2 1034
|
||||||
|
#define IDF_SHINE 1007
|
||||||
|
#define IDF_GLOSS 1008
|
||||||
|
#define IDF_SHINE2 1009
|
||||||
|
#define IDF_GLOSS2 1010
|
||||||
|
#define IDF_RED 1035
|
||||||
|
#define IDF_GREEN 1036
|
||||||
|
#define IDF_BLUE 1038
|
||||||
|
#define IDF_LABEL8 1040
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Dialogs
|
||||||
|
//
|
||||||
|
IDD_MATERIALS DIALOG 0, 0, 270, 96
|
||||||
|
STYLE WS_POPUP | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_3DLOOK | DS_MODALFRAME
|
||||||
|
FONT 8, "MS Sans Serif"
|
||||||
|
CAPTION "Materials"
|
||||||
|
BEGIN
|
||||||
|
CONTROL "&Shine",IDF_LABEL1,"STATIC",WS_CHILD | WS_VISIBLE | WS_GROUP | SS_LEFT, 115, 34, 20, 8
|
||||||
|
CONTROL "0.00",IDF_SHINE2,"STATIC",WS_CHILD | WS_VISIBLE | WS_GROUP | SS_CENTER | SS_SUNKEN, 243, 32, 18, 14
|
||||||
|
CONTROL "&Gloss",IDF_LABEL2,"STATIC",WS_CHILD | WS_VISIBLE | SS_LEFT, 115, 52, 20, 8
|
||||||
|
CONTROL "0.00",IDF_GLOSS2,"STATIC",WS_CHILD | WS_VISIBLE | WS_GROUP | SS_CENTER | SS_SUNKEN, 243, 50, 18, 14
|
||||||
|
CONTROL "Current Material",IDF_GROUP1,"BUTTON",WS_CHILD | WS_VISIBLE | WS_GROUP | BS_GROUPBOX | BS_TEXT, 111, 2, 155, 65
|
||||||
|
CONTROL "",IDF_GRID1,"ISSGRID",WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_GROUP | WS_TABSTOP | GS_READONLYCOLOUR | GS_DEFROWLABELS | GS_COLUMNLABELS, 9, 5, 97, 86
|
||||||
|
CONTROL "&Colour",IDF_COLOUR,"BUTTON",WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | BS_DEFPUSHBUTTON | BS_TEXT, 115, 14, 32, 14
|
||||||
|
CONTROL "0",IDF_SHINE,"MSCTLS_TRACKBAR32",WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | TBS_AUTOTICKS, 139, 32, 100, 12
|
||||||
|
CONTROL "0",IDF_GLOSS,"MSCTLS_TRACKBAR32",WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP | TBS_AUTOTICKS, 139, 50, 100, 12
|
||||||
|
CONTROL "&Apply",IDF_APPLY,"BUTTON",WS_CHILD | WS_VISIBLE | WS_DISABLED | WS_GROUP | WS_TABSTOP | BS_PUSHBUTTON | BS_TEXT, 113, 76, 34, 14
|
||||||
|
CONTROL "OK",IDOK,"BUTTON",WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON | BS_TEXT, 153, 76, 34, 14
|
||||||
|
CONTROL "Cancel",IDCANCEL,"BUTTON",WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON | BS_TEXT, 193, 76, 34, 14
|
||||||
|
CONTROL "",IDF_RED,"STATIC",WS_CHILD | WS_VISIBLE | WS_GROUP | SS_CENTER | SS_SUNKEN, 162, 16, 20, 10
|
||||||
|
CONTROL "",IDF_GREEN,"STATIC",WS_CHILD | WS_VISIBLE | WS_GROUP | SS_CENTER | SS_SUNKEN, 200, 16, 20, 10
|
||||||
|
CONTROL "",IDF_BLUE,"STATIC",WS_CHILD | WS_VISIBLE | WS_GROUP | SS_CENTER | SS_SUNKEN, 240, 16, 20, 10
|
||||||
|
CONTROL "R",IDF_LABEL8,"STATIC",WS_CHILD | WS_VISIBLE | WS_GROUP | SS_CENTER, 153, 17, 8, 8
|
||||||
|
CONTROL "G",IDF_LABEL9,"STATIC",WS_CHILD | WS_VISIBLE | WS_GROUP | SS_CENTER, 190, 17, 8, 8
|
||||||
|
CONTROL "B",IDF_LABEL11,"STATIC",WS_CHILD | WS_VISIBLE | WS_GROUP | SS_CENTER, 229, 17, 8, 8
|
||||||
|
CONTROL "Help",IDHELP,"BUTTON",WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_PUSHBUTTON | BS_TEXT, 232, 76, 34, 14
|
||||||
|
END
|
||||||
|
|
||||||
|
IDD_MATERIALS RCDATA
|
||||||
|
BEGIN
|
||||||
|
"[Ranges] \n"
|
||||||
|
" 1007 0 100 \n"
|
||||||
|
" 1008 0 100 \n"
|
||||||
|
"[Trackbars] \n"
|
||||||
|
" 1007 10 1 10 0 0 \n"
|
||||||
|
" 1008 10 1 10 0 0 \n"
|
||||||
|
"[Grids] \n"
|
||||||
|
" 1032 2 500 107 \n"
|
||||||
|
,0
|
||||||
|
END
|
||||||
|
|
||||||
|
IDD_TEMPLATE001 DIALOG 0, 0, 1000, 16
|
||||||
|
STYLE DS_3DLOOK
|
||||||
|
FONT 8, "MS Sans Serif"
|
||||||
|
BEGIN
|
||||||
|
CONTROL "Material",ISS1,"EDIT",WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP | ES_LEFT | ES_READONLY, 0, 0, 40, 14
|
||||||
|
CONTROL "Modify",ISS2,"BUTTON",WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_AUTOCHECKBOX | BS_TEXT | BS_PUSHLIKE, 0, 0, 40, 14
|
||||||
|
END
|
||||||
|
|
||||||
|
IDD_TEMPLATE001 RCDATA
|
||||||
|
BEGIN
|
||||||
|
"[Checks] \n"
|
||||||
|
" 1034 0 \n"
|
||||||
|
,0
|
||||||
|
END
|
||||||
|
|
Binary file not shown.
@ -1,8 +0,0 @@
|
|||||||
SUBROUTINE SHOWEQ
|
|
||||||
USE BLKELTLD
|
|
||||||
DO I=1,NQHYD
|
|
||||||
IELEM=NCLINE(I)
|
|
||||||
CALL FILLEM(IELEM)
|
|
||||||
ENDDO
|
|
||||||
RETURN
|
|
||||||
END
|
|
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
Loading…
Reference in New Issue