亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mconstants.bas

?? 3ds文件瀏覽程序
?? BAS
字號(hào):
Attribute VB_Name = "mConstants"
Option Explicit

'----------------------------------------------------
Public gCtl As glxCtl
Public GL As CGL ' main class
Public Scene As CScene 'collection of root nodes
Public Tree3ds As TreeView 'the Treeview the chunks are displayed in
Public fMainForm As frmMain
Public Materials As CMaterials 'collection of materials in the scene
Public ReadyToDraw As Boolean 'flag set while parsing a file
Public ELog$ 'error log produced by parser
Public Textures As CTextures
'----------------------------------------------------
'global state flags
Public optTextures As Boolean
Public optWireFrame As Boolean
'
'----------------------------------------------------
Public Const PI = 3.141592654
Type POINT4F
    p(0 To 3) As Single
End Type

Type POINT3F
    p(0 To 2) As Single
End Type

Type INDEX3L
    p(0 To 2) As Long
End Type

Type INDEX2L
    p(0 To 1) As Long
End Type

Type POINT2F
    p(0 To 1) As Single
End Type

Public Enum GLEditStates
    STATE_SELECT = 1
    STATE_ZOOM = 5
    STATE_ARCROTATE = 6
    STATE_PAN = 7
End Enum
Public Enum GLViews
    GLVIEW_PERSPECTIVE = glxPerspective
    GLVIEW_FRONT = glxFront
    GLVIEW_TOP = glxTop
    GLVIEW_RIGHT = glxRight
    GLVIEW_LEFT = glxLeft
    GLVIEW_BACK = glxBack
    GLVIEW_BOTTOM = glxBottom
End Enum

Dim m_NextNodeID& 'counter for node classes

'----------------------------------------------------
'API
'----------------------------------------------------
Type POINTAPI
        x As Long
        y As Long
End Type

Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
End Type
Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long
Declare Function ClipCursorFree Lib "user32" Alias "ClipCursor" (ByVal lpNull As Long) As Long
Declare Sub CopyToByteFromByte Lib "kernel32" Alias "RtlMoveMemory" (Dest As Byte, Src As Byte, ByVal Length&)
Declare Sub CopyToStrFromInt Lib "kernel32" Alias "RtlMoveMemory" (ByVal Dest$, Src%, ByVal Length&)
'Declare Sub CopyToIntFromStr Lib "kernel32" Alias "RtlMoveMemory" (Src%, ByVal dest$, ByVal Length&)
'Declare Sub CopyToLongFromStr Lib "kernel32" Alias "RtlMoveMemory" (Src&, ByVal dest$, ByVal Length&)
Declare Sub CopyToPtrFromPtr Lib "kernel32" Alias "RtlMoveMemory" (ByVal DestAddr&, ByVal SrcAddr&, ByVal Length&)
Declare Sub CopyToByteFromPtr Lib "kernel32" Alias "RtlMoveMemory" (Dest As Byte, ByVal SrcAddr&, ByVal Length&)
Declare Sub CopyToLongFromPtr Lib "kernel32" Alias "RtlMoveMemory" (Dest&, ByVal SrcAddr&, ByVal Length&)
Declare Sub CopyToIntegerFromPtr Lib "kernel32" Alias "RtlMoveMemory" (Dest%, ByVal SrcAddr&, ByVal Length&)
Declare Sub CopyToSingleFromPtr Lib "kernel32" Alias "RtlMoveMemory" (Dest!, ByVal SrcAddr&, ByVal Length&)
Declare Sub CopyToDoubleFromPtr Lib "kernel32" Alias "RtlMoveMemory" (Dest#, ByVal SrcAddr&, ByVal Length&)
Declare Sub CopyToStrFromPtr Lib "kernel32" Alias "RtlMoveMemory" (ByVal Dest$, ByVal SrcAddr&, ByVal Length&)
Declare Sub CopyToStrFromLong Lib "kernel32" Alias "RtlMoveMemory" (ByVal Dest$, Src&, ByVal Length&)
Declare Sub CopyToTypeFromPtr Lib "kernel32" Alias "RtlMoveMemory" (ByRef Dest As Any, ByVal SrcAddr&, ByVal Length&)
Declare Sub CopyToTypeFromType Lib "kernel32" Alias "RtlMoveMemory" (ByRef Dest As Any, ByRef Src As Any, ByVal Length&)
'Declare Sub CopyToByteFromPtr Lib "kernel32" Alias "RtlMoveMemory" ( _
'        dest As Byte, ByVal Src&, ByVal Length&)
Declare Function GetOpenFileName& Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME)
Declare Function CreateFileMappingDef& Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile&, ByVal lpFileMappingAttributes&, ByVal flProtect&, ByVal dwMaximumSizeHigh&, ByVal dwMaximumSizeLow&, ByVal lpName As String)
'Declare Function CreateDIBSection256& Lib "gdi32" (ByVal Hdc&, _
'            pBitmapInfo As BITMAPINFO256, ByVal iUsage&, lplpVoid&, _
'            ByVal hSection&, ByVal dwOffset&)
Declare Function CreateFile& Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long)
Declare Function IsCharAlphaNumeric& Lib "user32" Alias "IsCharAlphaNumericA" (ByVal cChar As Byte)

'----------------------------------------------------
'assigns a unique id to each node
'----------------------------------------------------
Public Function NextNodeName&()
    m_NextNodeID = m_NextNodeID& + 1
    NextNodeName = m_NextNodeID
End Function

'----------------------------------------------------
'parsing errors
'----------------------------------------------------
Public Sub LogError(msg$)
ELog = ELog & msg & vbCrLf
End Sub

'---------------------------------------------------------
'* Opens a file using a file mapping object
'You MUST call CloseFile when finished!
'---------------------------------------------------------
Public Function LoadFile(ByVal Filename$, FileHandle&, MapHandle&, ptr&) As Boolean
Dim hFile& ' File handle
Dim hMap& ' Mapping object handle
Dim pv& ' Ptr to mapped file
Dim r&
    On Error GoTo Cleanup
    If Filename = "" Then Exit Function
    ' Map the file into memory.
    hFile = CreateFile(Filename, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0)
    If (hFile = INVALID_HANDLE_VALUE) Then GoTo Cleanup
    '
    hMap = CreateFileMappingDef(hFile, 0, PAGE_READONLY, 0, 0, 0)
    If hMap = 0 Then GoTo Cleanup
    '
    pv = MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, 0)
    If pv = 0 Then GoTo Cleanup
    '
    'return the pointer
    ptr = pv
    FileHandle = hFile
    MapHandle = hMap
    LoadFile = True
    Exit Function
Cleanup:
    If pv Then UnmapViewOfFile pv
    If hMap Then CloseHandle hMap
    If hFile <> INVALID_HANDLE_VALUE Then CloseHandle hFile
End Function

'---------------------------------------------------------
' closes a file
'---------------------------------------------------------
Public Sub CloseFile(hFile&, hMap&, ptr&)
    If ptr Then UnmapViewOfFile ptr
    If hMap Then CloseHandle hMap
    If hFile <> INVALID_HANDLE_VALUE Then CloseHandle hFile
End Sub

'------------------------------------
'return pos of last occurence of char$
'------------------------------------
Public Function GetLast&(s$, char$)
Dim i&
On Error Resume Next
For i = Len(s) To 1 Step -1
    If Mid$(s, i, 1) = char Then
        GetLast = i: Exit Function
    End If
Next
End Function

'------------------------------------
'returns all text to right of last '\', else all text
'------------------------------------
Public Function ExtractName$(ByVal fil$)
Dim r&, s$
On Error Resume Next
    r = GetLast(fil, "\")
    If r = 0 Then
        ExtractName = fil
    Else
        ExtractName = Mid$(fil, r + 1)
    End If
End Function

'------------------------------------
'assumes a filename, trims last "\"
'------------------------------------
Public Function ExtractPath$(ByVal fil$)
Dim r&, s$
On Error Resume Next
    r = GetLast(fil, "\")
    If r = 0 Then
        ExtractPath = fil
    Else
        ExtractPath = Left$(fil, r - 1)
    End If
End Function

'---------------------------------------------------------
' Functions to aid in reading in binary data from file
'---------------------------------------------------------
Public Function ReadByte(ptr&, Value As Byte) As Boolean
    CopyToByteFromPtr Value, ptr, 1
    ptr = ptr + 1
    ReadByte = True
End Function

Public Function ReadShort(ptr&, Value%) As Boolean
    CopyToIntegerFromPtr Value, ptr, 2
    ptr = ptr + 2
    ReadShort = True
End Function

Public Function ReadLong(ptr&, Value&) As Boolean
    CopyToLongFromPtr Value, ptr, 4
    ptr = ptr + 4
    ReadLong = True
End Function

Public Function ReadFloat(ptr&, Value!) As Boolean
    CopyToSingleFromPtr Value, ptr, 4
    ptr = ptr + 4
    ReadFloat = True
End Function

Public Function Read3Floats(ptr&, v3!()) As Boolean
    CopyToSingleFromPtr v3(0), ptr, 12
    ptr = ptr + 12
    Read3Floats = True
End Function

Public Function ReadDouble(ptr&, Value#) As Boolean
    CopyToDoubleFromPtr Value, ptr, 8
    ptr = ptr + 8
    ReadDouble = True
End Function

'------------------------------------------------------------
'the following 2 functions are used by the obj file reader
'------------------------------------------------------------
Public Function GetNextToken(token$, lin$, pos&) As Boolean
Dim PtrStart&, char&
On Error GoTo ErrorHandler
'
'find start of token
Do While pos <= Len(lin)
    char = Asc(Mid$(lin, pos&, 1))
    If char = 13 Or char = 10 Then
        Debug.Assert 0
        Exit Function
    ElseIf char = 35 Then '# comments
        Debug.Assert 0
        Exit Function
    ElseIf char = 34 Then '" string
        Debug.Assert 0
        Exit Function
    ElseIf char = 44 Then ', comma
        'white space, continue
    ElseIf char > 32 And char < 127 Then
        Exit Do
    End If
    pos = pos + 1
Loop
PtrStart = pos
'
'find the end of the current token
Do While pos <= Len(lin)
    char = Asc(Mid$(lin, pos, 1))
    If char < 33 Or char > 126 Then Exit Do
    If char = 35 Then 'comment #
        'knight.obj is corrupted
        'Exit Do
    ElseIf char = 40 Or char = 41 Then '() brackets
        Debug.Assert 0
        Exit Do
    ElseIf char = 44 Then ', comma
        Debug.Assert 0
        Exit Do
    End If
    pos = pos + 1
Loop
'
'pos now points to first white space or char after this token
token = Mid$(lin, PtrStart, pos - PtrStart)
If token = "" Then Debug.Assert 0
'Debug.Print token
GetNextToken = -1
Exit Function
'
'------------------------------------------------------------
ErrorHandler:
Debug.Print Err.Description
Debug.Assert 0
Exit Function
Resume Next
End Function

'------------------------------------------------------------
Public Function GetFaceIndices(v&(), t&(), n&(), lin$) As Long
Dim cnt&, char&, pos&, lastpos&
Dim token$, linpos&, i&
On Error GoTo ErrorHandler
'
linpos = 3
If Not GetNextToken(token, lin, linpos) Then GoTo ErrorHandler
cnt = NumSlashes(token)
If Not InStr(token, "//") Then
    cnt = cnt + 1
End If
Do
    ' can be one of %d, %d/%d, %d//%d, %d/%d/%d
    Select Case cnt
    Case 0
        v(i) = Val(token)
    Case 1
        pos = InStr(token, "/")
        v(i) = Val(Left$(token, pos - 1))
        t(i) = Val(Mid$(token, pos + 1))
    Case 2
        lastpos = InStr(token, "/")
        v(i) = Val(Left$(token, lastpos - 1))
        n(i) = Val(Mid$(token, pos + 2))
    Case 3
        lastpos = InStr(token, "/")
        v(i) = Val(Left$(token, lastpos - 1))
        pos = InStr(lastpos + 1, token, "/")
        t(i) = Val(Mid$(token, lastpos + 1, pos - lastpos - 1))
        n(i) = Val(Mid$(token, pos + 1))
    End Select
    i = i + 1
    If i = 3 Then Exit Do
    If Not GetNextToken(token, lin, linpos) Then GoTo ErrorHandler
Loop
'return number of values read
GetFaceIndices = cnt
Exit Function
'
'------------------------------------------------------------
ErrorHandler:
Debug.Assert 0
GetFaceIndices = -1
Exit Function
Resume Next
End Function

'------------------------------------------------------------
Public Function NumSlashes&(s$)
Dim i&, cnt&
    For i = 1 To Len(s)
        If Mid$(s, i, 1) = "/" Then cnt = cnt + 1
    Next
    NumSlashes = cnt
End Function


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人精品在线观看| 日韩国产欧美视频| 欧美久久一二区| 国产a视频精品免费观看| 亚洲成人在线免费| 国产精品日韩成人| 欧美tickling挠脚心丨vk| 日本道精品一区二区三区 | 亚洲精品日韩专区silk| 欧美一级电影网站| 欧美中文字幕不卡| 不卡的av网站| 国产91精品在线观看| 美女一区二区久久| 天堂久久久久va久久久久| 日韩美女久久久| 欧美激情一区二区在线| 日韩精品中文字幕一区二区三区| 色妞www精品视频| 成人黄色大片在线观看| 精品一区二区成人精品| 青娱乐精品在线视频| 亚洲成人精品在线观看| 亚洲美女在线一区| 亚洲欧美在线视频观看| 欧美激情一区二区三区不卡 | 盗摄精品av一区二区三区| 久久精品国产亚洲5555| 日韩经典中文字幕一区| 亚洲一区日韩精品中文字幕| 综合色中文字幕| 国产精品三级视频| 中文字幕不卡在线观看| 日本一区二区免费在线| 国产人成亚洲第一网站在线播放 | 国产成人啪免费观看软件| 久久精品国产亚洲5555| 久久97超碰色| 国产麻豆精品一区二区| 韩国三级电影一区二区| 国产老女人精品毛片久久| 国模一区二区三区白浆| 国产精品综合二区| 成人性色生活片| 成人av电影观看| 一本色道久久综合狠狠躁的推荐| 色婷婷激情久久| 欧美日韩国产影片| 91精品免费在线观看| 欧美大片在线观看一区| 2020国产精品久久精品美国| 久久久国产午夜精品| 国产精品女同一区二区三区| 国产精品久久久久天堂| 亚洲一区免费视频| 日本伊人精品一区二区三区观看方式| 日韩国产精品91| 国产一区二区在线看| 成人妖精视频yjsp地址| 日本韩国一区二区| 日韩一区二区三区在线视频| 国产视频视频一区| 樱桃视频在线观看一区| 日韩国产高清影视| 国产91在线观看丝袜| 色哟哟精品一区| 91精品免费在线观看| 亚洲国产精品ⅴa在线观看| 一区二区在线观看视频在线观看| 五月天激情小说综合| 国产老女人精品毛片久久| 91麻豆视频网站| 欧美一区二区成人6969| 欧美激情综合五月色丁香| 亚洲成人一区在线| 国产福利精品导航| 欧美日韩一级二级| 国产视频一区二区在线观看| 一区二区免费在线| 韩国女主播一区| 在线精品视频一区二区三四| 精品国产伦一区二区三区免费| 亚洲欧美在线视频| 久久国内精品视频| 色婷婷av一区二区三区之一色屋| 欧美tk丨vk视频| 怡红院av一区二区三区| 黄色精品一二区| 91成人国产精品| 久久久久久麻豆| 五月激情丁香一区二区三区| 成人精品国产福利| 日韩欧美综合一区| 亚洲精品五月天| 国产精品自拍一区| 欧美丰满少妇xxxbbb| 欧美国产一区二区在线观看| 丝袜诱惑制服诱惑色一区在线观看 | 国产精品久久久久久久久图文区 | 亚洲精品久久久久久国产精华液| 久久99国产乱子伦精品免费| 色婷婷狠狠综合| 久久久精品日韩欧美| 人人精品人人爱| 欧美综合亚洲图片综合区| 国产午夜精品久久久久久久 | 久久精品国产精品亚洲综合| 在线一区二区三区四区五区 | 一本一本久久a久久精品综合麻豆| 欧美本精品男人aⅴ天堂| 亚洲一区二区五区| 91小宝寻花一区二区三区| 国产欧美综合在线观看第十页| 日本不卡不码高清免费观看| 91黄视频在线观看| 亚洲人成伊人成综合网小说| 丁香天五香天堂综合| 欧美videos中文字幕| 视频一区在线视频| 欧美伊人久久久久久久久影院 | 久久久久国产成人精品亚洲午夜| 手机精品视频在线观看| 欧美色图一区二区三区| 依依成人精品视频| 91小视频在线免费看| 日韩毛片视频在线看| 9l国产精品久久久久麻豆| 亚洲国产精品高清| 成人av高清在线| 亚洲欧洲美洲综合色网| 97精品超碰一区二区三区| 国产精品久久久久久久久久久免费看 | 国产精品理论片| 国产91高潮流白浆在线麻豆 | 精品一区二区三区久久| 精品国产一区二区精华| 国内精品免费**视频| 久久综合色婷婷| 国产高清不卡一区| 国产精品日产欧美久久久久| 成人av午夜影院| 中文字幕一区二区三区四区不卡| 93久久精品日日躁夜夜躁欧美| 自拍偷拍欧美激情| 欧美视频在线一区二区三区| 午夜精品久久久久久久蜜桃app| 欧美午夜一区二区三区| 偷窥国产亚洲免费视频| 欧美一级专区免费大片| 国产综合久久久久影院| 国产精品人妖ts系列视频| 91在线精品一区二区三区| 亚洲成人在线观看视频| 精品日韩在线一区| 成人国产精品免费观看| 亚洲影院免费观看| 日韩欧美一区在线| 国内一区二区在线| 亚洲男人天堂av| 欧美高清视频一二三区| 国产一区二区三区日韩| 中文字幕日韩av资源站| 欧美主播一区二区三区美女| 日本aⅴ亚洲精品中文乱码| 国产亚洲一区字幕| 在线观看国产91| 老色鬼精品视频在线观看播放| 中文字幕欧美日韩一区| 欧美日韩高清影院| 国产精品亚洲午夜一区二区三区 | 欧美日韩一级片在线观看| 精品一区二区三区免费视频| 国产三级欧美三级| 欧美在线三级电影| 国产美女视频一区| 亚洲伊人色欲综合网| 久久精品一区蜜桃臀影院| 91国产免费观看| 国产一区二区视频在线| 一个色妞综合视频在线观看| 欧美一区二区三区的| 91原创在线视频| 精品一区免费av| 亚洲一区二区三区影院| 国产三级久久久| 欧美日韩成人激情| 成人中文字幕电影| 麻豆视频一区二区| 亚洲精品福利视频网站| 国产日韩欧美在线一区| 制服视频三区第一页精品| 99久久精品国产一区| 久久99精品视频| 亚洲一区在线电影| 中文字幕在线一区免费| 久久久蜜桃精品| 日韩一级二级三级精品视频| 色天天综合色天天久久| 成人免费黄色在线| 久国产精品韩国三级视频|