'an image pyramid class VBPyramid
'this can also be used to load and store images, though other classes would be preferable if the pyramid levels aren't needed.
'loadimage() 'from a vbimage object
'GetImage() 'get a copy of the first(original image) level.
'eval() 'get the pixel at the homoginous coordinates
'look in here if the image does not use a full pathname.
'You have to set this before using it...
DefaultPath As String
MipMapCreation As Boolean 'we can just use this to store a single image, or we can create mip map levels. Users choice.
initialized As Boolean
'this is the width and height of the original image
Width As Long
Height As Long
levels As Long
MakeNormalMap As Boolean
'return a bump normal in r,g,b
Function EvalBump(ByVal U As Single, ByVal v As Single, ByVal Spot As Single, r As Single, g As Single, b As Single, ByVal mode As Long, Optional ByVal normalized As Boolean = False)
'get pixel at u,v in homoginous (0-1) coordinates into r,g,b.
'"w" is the "z" value from the camera, or the mip map level to use.
Function Eval(ByVal U As Single, ByVal v As Single, ByVal Spot As Single, r As Single, g As Single, b As Single, ByVal mode As Long, Optional ByVal normalized As Boolean = False)
Function LoadPicture(FileName As String) As Long
Sub SetImage(ByVal w As Long, ByVal h As Long, rbuf() As Byte, gbuf() As Byte, bbuf() As Byte)
'get a copy of the original image.
'this can be +1 or not, because we just copy from it.
'an image of a different size will be cropped though, so be aware.
Sub GetImage(rbuf() As Byte, bbuf() As Byte, gbuf() As Byte)