Ну чочо, продолжим:
Чётность:
Function IsOdd( value )
If value =0 Then Return 0
If Float( value Mod 2 ) <>0 Then Return 1 Else Return 0
End Function
HEX в INT:
Function Hex2Int%(h$)
Local z,i
Local t2$= Upper$(Trim$(h$))
Local d% = 0
For z = 1 To Len(t2$)
i = Instr("0123456789ABCDEF",Mid$(t2$,z,1))
If (i > 0) Then d = d * 16 + i - 1
Next
Return d
End Function
Узнать размер куба, в который вписан меш.
Когда пользовался PhysX`ом функция была дико полезна.
Global EntityBoxX#, EntityBoxY#, EntityBoxZ#
Function GetEntityBox(ent, recursive = True, root = 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 s = 1 To cnt_surf
surf = GetSurface(ent, s)
cnt_verts = CountVertices(surf) - 1
For v = 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 i = 1 To cnt_children
GetEntityBox(GetChild(ent, i), True, root)
Next
EndIf
End Function