Orthographic camera in DBPro.
Useful for modeling program.
`*******************************************************************************
`* Function SetOrthoCamera() *
`* Created: 12/11/2004 *
`* By: Dmitry K aka DMiTR0S dmitr0s@newmail.ru *
`*******************************************************************************
`*******************************************************************************
`* Free License Agreement. *
`* *
`* The user/developer agrees to include a visible credit to "Dmitry Kuschev" *
`* within your programs documentation and or web site. *
`* *
`* The user/developer agrees to NOT offer the this source code for Sale. *
`* *
`* Providing the user/Developer agrees in full to the previous Free *
`* License Agreement clauses, the user/developer may use this source *
`* code FREELY in all their products, commercial or otherwise. *
`* *
`*******************************************************************************
CameraDll=1
Camera=0
For i=1 To 500
Make Object Cube i, Rnd(10)
Position Object i, 500-Rnd(1000), 500-Rnd(1000), 500-Rnd(1000)
Rotate Object i, Rnd(360), Rnd(360), Rnd(360)
Next i
SetOrthoCamera(CameraDll, Camera)
Sync Rate 0
Sync On
Do
Control Camera Using ArrowKeys Camera, .1, .1
Text 10, 10, "Function SetOrthoCamera() by Dmitry Kuschev"
Sync
Loop
Function SetOrthoCamera(CameraDll, Camera)
Near#=1.0
Far#=3000.0
Width#=Screen Width()*1.0
Height#=Screen Height()*1.0
Load Dll "DBProCameraDebug.dll", CameraDll
`Get pointer on internal structure of camera
CID=Call Dll(1, "?GetInternalData@@YAPAXH@Z", Camera)
`Get camera Projection matrix
m00=CID : m01=CID+4 : m02=CID+8 : m03=CID+12
m10=CID+16 : m11=CID+20 : m12=CID+24 : m13=CID+28
m20=CID+32 : m21=CID+36 : m22=CID+40 : m23=CID+44
m30=CID+48 : m31=CID+52 : m32=CID+56 : m33=CID+60
`Replace camera Projection matrix with Ortho matrix
*m00=2.0/Width# : *m01=0.0 : *m02=0.0 : *m03=0.0
*m10=0.0 : *m11=2.0/Height# : *m12=0.0 : *m13=0.0
*m20=0.0 : *m21=0.0 : *m22=1.0/(Far#-Near#) : *m23=0.0
*m30=0.0 : *m31=0.0 : *m32=1.0*Near#/(Near#-Far#) : *m33=1.0
EndFunction
Specs: P4 2.4GHz, DIMM 256 266Mhz, 60GB HD 7200rpm ATA-133, GeForce 4 MX440, CD-RW+DVD, WinXP