Тема: Исходница
Показать сообщение отдельно
Старый 31.08.2010, 08:48   #11
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Исходница

Ну чочо, продолжим:

Чётность:
Function IsOddvalue )
    If 
value =0 Then Return 0
    
    
If Floatvalue Mod 2 ) <>0 Then Return Else Return 0
End 
Function 
HEX в INT:
Function Hex2Int%(h$)
    
Local z,i
    
    Local t2
$= Upper$(Trim$(h$))
    
Local d% = 0
    
    
For 1 To Len(t2$)
        
Instr("0123456789ABCDEF",Mid$(t2$,z,1))
        If (
0Then d 16 1
    Next
    
Return d
End 
Function 

Узнать размер куба, в который вписан меш.
Когда пользовался PhysX`ом функция была дико полезна.
Global EntityBoxX#, EntityBoxY#, EntityBoxZ#
Function GetEntityBox(entrecursive Trueroot 0)
If 
root 0 Then
    EntityBoxX
# = 0
    
EntityBoxY# = 0
    
EntityBoxZ# = 0
Else
    
ox# = EntityX(ent, True) - EntityX(root, True)
    
oy# = EntityY(ent, True) - EntityY(root, True)
    
oz# = EntityZ(ent, True) - EntityZ(root, True)
EndIf
cnt_surf CountSurfaces(ent)
For 
1 To cnt_surf
    surf 
GetSurface(ents)
    
cnt_verts CountVertices(surf) - 1
    
For 0 To cnt_verts
        vx
# = Abs(VertexX(surf, v) + ox#)
        
vy# = Abs(VertexY(surf, v) + oy#)
        
vz# = Abs(VertexZ(surf, v) + oz#)
        
If (vx# > EntityBoxX#) Then EntityBoxX# = vx#
        
If (vy# > EntityBoxY#) Then EntityBoxY# = vy#
        
If (vz# > EntityBoxZ#) Then EntityBoxZ# = vz#
    
Next
Next
If recursive Then
    
If root 0 Then root ent
    cnt_children 
CountChildren(ent)
    For 
1 To cnt_children
        GetEntityBox
(GetChild(enti), Trueroot)
    
Next
EndIf
End Function 
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
Arles (31.08.2010), baton4ik (31.08.2010), impersonalis (31.08.2010)