`S8Help.txt` 2025.05.27.1245cdt JMS Lines:198 IP Status- Free source code (e.g.: post copyright) Author- Jeffrey M. Setterholm, Lakeville,MN 55044 USA *** No warranties are expressed or implied. *** ____________________________________________________________________________ This source code is approximately Fortran 95 with f90gl graphics which builds and runs on a Windows 10 computer as a `console` application with various full-screen ~ DOS windows. In Absoft Pro Fortran 21.0.2 there are two "glut32.dll"`s ("dynamically- linked libraries") with identical names that are not interchangeable files! Use this file with Sn3D.exe in Windows 10: date & time Size(bytes) Name 11/01/2020 05:52 PM 258,736 glut32.dll For the 32-Bit executables Do not use this file with Sn3D.exe: date & time Size(bytes) Name 11/01/2020 05:54 PM 307,376 glut32.dll For the 64-Bit executables note: slightly larger & created two minutes later. ____________________________________________________________________________ A subdirectory of color-coded .pdf's of the source code is also included. !-- Data Structures/Modules: 05/24/2025 07:53 PM 42,353 S1ModDef.f95 Group#1 ! Module OpenGLRec !Ref: OpenGL GL/GLU/GLUT Documentation ! Module TaskDef !Project/Context ! Module ioDef !Files,Units,TimeStamp,Selfies,Flags ! Module ScreenDef !screen & colors ! Module KeyboardDef !Keyboard ! Module MouseDef !Mouse ! Module ViewDef !View bounds->[0.,+1.]->[extent]Destination ! Module ModelDef !Modelview Matrix Generation ! Module SimDef !Simulation F9-F12 ! Module HelpDef !Help (a text block) ! Module AppsDef !User Apps F1-F8 ! Module F3dvDef !File .3dv data ! Module BreakPtDef !BreakPoint & Scrolling ! Module UseAllBbDef !Contents 05/24/2025 07:47 PM 15,393 S2ModCallbacks.f95 Group#2 !Module S2Callback This directly interfaces with OpenGL ! Subroutine cbUserView !Called by: OpenGL ! Subroutine cbKeyboard(Key,xCursor,yCursor) " : " ! Subroutine cbSpecialFunctionKeys(Key,xCursor,yCursor) " : " ! Subroutine cbMouseMotion(iX,iY) Active & Passive " : " ! Subroutine cbMouseButtons(Button,State,iX,iY) " : " ! Subroutine GlutHandoff " : S3Main.f95 ! Subroutine CheckGL(Line) ...checks for OpenGL errors ^: once !End Module S2Callback referenced by Group# !-- Subroutines & Functions: 05/24/2025 06:50 PM 34,962 S3Main.f95 Group#3 ! Program S3Main Main calling program & utilities ! Subroutine BreakHere(iP,Label) ! Subroutine jPause(Label) ! Subroutine SaveOutFile ! Subroutine M44V4multh(V4outh,Matrix44,V4inh,iP) ! Subroutine M44multh(M44outh,M44Linh,M44Rinh,iP) ! Subroutine h44Fill(Hout,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P) ! Subroutine Invertr8(N,MatrixIn,MatrixOut,iP) ! Subroutine Invertr16(N,A,ValMin,iRank,DetN,iUsed,iP) ! Subroutine Printr16(N,A,Noise,iRank,DetN,iRu,jCu,iP) ! Subroutine Rand16(n,Xrandom,iP) ! Subroutine X12Y12toMB(X1,X2,Y1,Y2,M,B,iP) ! Subroutine Eval(Stage,Descr1,Descr2,Value1,Value2,iP) ! Subroutine DaTime18 ! Subroutine RunSeconds ! Subroutine PixelDraw = AppF8 ! Subroutine nRunSec(nClock,RunSecs,iW) ! Subroutine Jdate20(DaTime) 05/24/2025 06:46 PM 5,831 S3Main-CallYourApps.f95 Group#19 ! Subroutine CallYourApps This is the user interface to Sn3D ! Subroutine ImportYourNml 05/24/2025 07:55 PM 25,795 S4Callbacks.f95 Group#4 !*Subroutine UserView interface to S2ModCallbacks.f95 !*Subroutine Keyboard(Key,xCursor,yCursor) !*Subroutine SpecialFunctionKeys(Key,xCursor,yCursor) !*Subroutine MouseButtons(Button,State,iX,iY) !*Subroutine MouseMotion(iX,iY) ! Subroutine MouseRecUpdate(md) !*= directly called by the S2 OpenGL callback subroutine passthroughs. 05/24/2025 07:46 PM 43,334 S5Screen.f95 Group#5 ! Subroutine PrntOrtho(nRow,mColumn,iColorFG,iColorBg,PText) ! Subroutine PrintableIchar(iCharIn,iCharOut) ! Subroutine Seeh4d(Vin,nRowIn,nColIn,iColor,Label,iP) ! Subroutine Seeh44d(Hin,nRowIn,nColIn,iColor,Label,iP) ! Subroutine Teapot ! Subroutine Colors3D(nCol) ! Subroutine ScreenSelfie ! Subroutine ShowProjectAndModel(nRowIn,nColIn,iColor,Label20) ! Subroutine HfsToHgl(Hfs,Hgl) ! Subroutine HglToHfs(Hgl,Hfs) ! Subroutine GLv16toHgl(GLv,Hgl) ! Subroutine BbFog 05/24/2025 07:46 PM 24,940 S6View8.f95 Group#6 ! Subroutine View Homogeneous-transform-intensive 3D ! Subroutine ViewGeom(iP) ! Subroutine UnPackCv(Cv,D,E,N,F,L,R,T,B,Mx,Bx,My,By,Mz,Bz) ! Subroutine UnPackDv(Dv,N2,F2,L2,R2,T2,B2,Mi,Bi,Mh,Bh,Mv,Bv) 05/24/2025 07:46 PM 47,428 S7Motion7.f95 Group#7 ! Subroutine Motion7(nM7,iEye,iP) Managing 7 degree-of-freedom ops ! Subroutine hPoIGen(hPoI,XyzRpyM,Mode,iP) & mouse magic ! Subroutine hPoIDecode(hPoI,PoI7,iP) ! Subroutine hFS7Gen(hFS7,XyzRpyM,iP) ! Subroutine hFS7Decode(hFS7,FS7,iP) ! Subroutine DCfromRPY(DC,RPY,iP) ! Subroutine OddEven7DoF(ioe,ioein,ioeu,DoFsInUse,iP) ! Subroutine PackM7u ! Subroutine UnPackM7u ! Subroutine CubeGrid(nCol) ! Subroutine WirePlane(Sizeu,nCol) ! Subroutine VecFont7(XYZRPYwC,LineWidth,iCol,Label) !--Quaternions: ! Subroutine QFromRpy(Q,Rpyh) ! Subroutine QoutFromQoQi(Qout,Qo,Qi) ! Subroutine QtoRpy(Q,Rpy) ! Subroutine QToQinverse(Q,Qinverse) ! Subroutine QtoVhatAngle(Q,Vhat,Angle,iP) <-"JeffTernions" 05/24/2025 07:45 PM 19,632 S8Help.f95 Group#8 ! Subroutine Boilerplate(iDetails) ! Subroutine TextToScreen(HelpFileIn,nRowIn,nColIn,iColor,iP) 05/24/2025 08:29 PM 8,550 S8Help.txt <-which is shown here. 05/24/2025 07:49 PM 39,542 S9Font.f95 Group#9 ! Module CharDef ! ~an English character vector font, & more. ! End Module CharDef ! Subroutine AlphaJS(cLabelL,PosLLCq,RpyDq,SizeHq,iCol,fLineWidth,iP) ! Subroutine Model7DoF(Xyzh,Rpyh,S,Model7h,iP) !--------------------- !-- Auxiliary subroutines - Basic real(8) homog. vector math 05/24/2025 07:50 PM 9,550 Sa-Mathh8Mod.f95 !Module hVecMath8Mod ! contains ! Subroutine hAdd(Vouth,V1h,V2h) ! Subroutine hSubtract(Vouth,V1h,V2h) ! Subroutine hCross(Vouth,V1h,V2h) ! Subroutine hDot(V1h,V2h,DotP) ! Subroutine hVnorm(Vinh,Vouth,Vmag) ! Subroutine hPointPolar(Ph,aRpyh,PDmag) !End Module hVecMath8Mod !-- Auxiliary subroutines - Draws glistening tube-lines 05/24/2025 07:51 PM 20,589 Sa-TubesMod.f95 !Module TubeDef ! type,public::TubeRec:Tu(:),TuIn,TuZero ! type,public::LightMaterialRec ;sequence ! contains ! Subroutine Lighting(iOffOn) ! Subroutine LightShow ! Subroutine Material ! Subroutine Tubes(iDone,nPoint,pXyzh,Radius,iP) ! Subroutine Sphere(SphRad,pXyz) !End Module TubeDef ____________________________________________________________________________ !-- Application#1 - S11AppF1: Application Stub +10 = Group#11 05/24/2025 06:40 PM 11,721 S0-AppF1-stub.f95 ! Subroutine S11AppF1 ____________________________________________________________________________ *** Dodecahedron Visualization *** !-- Application#2 - S12AppF2: Dodecahedron Visualization +10 = Group#12 05/24/2025 06:39 PM 14,028 S0-AppF2-Dodec.f95 !Subroutine S12AppF2 !Subroutine PLabelView(A3,P3L,iCol,WidthOfLine) 05/24/2025 08:29 PM 47,585 SA2-hVecMath16Mod.f95 !Module hVecMath16Mod ! Module DodecIO <- dodecahedron analysis variables ! contains ! Function Sqrj(Valin) Result(ValSqrout) 2025.04.21.1545 !End Module DodecIO !Subroutine DodecModel16(iP) <- dodecahedron geometry math !Subroutine SinCos16(AngleD,SinAngle,CosAngle) !Subroutine ASinD16(Angle,SineAngle,iP) !Subroutine ACosD16(Angle,CosineAngle,iP) !Subroutine hPointPolar16(Ph,aRpyh,PDmag) !Subroutine hVnorm16(Vinh,Vouth,Vmag) !Subroutine hVecMirror2D16(Vinh,Vmirrorh,Vouth) !Subroutine hVecMirror3D16(Vinh,Vmirror1h,Vmirror2h,Vouth) !Subroutine hCross16(Voh,Vi1h,Vi2h) !Subroutine Sqrt16(ValIn,ValSqrOut,iP) ____________________________________________________________________________ !-- Application#8 - AppF8: Colors Visualization +10 = Group#18 located in : S3Main.f95 @L694: Subroutine "PixelDraw" ____________________________________________________________________________ !The NameList file - change selected key variables at .exe runtime: 05/24/2025 08:39 PM 1,936 Sn3D.nml ____________________________________________________________________________