Сообщение от Кирпи4
Блин, мужики, выручите по-братски...
Всю голову сломал, надо построить бокс вокруг меша неопределенной формы (то бишь пересчет позиций всех вертексов необходим).
Что то вот код понадобился, а написать не выходит...
|
Нечто вроде:
Global EntityBox_Width#, EntityBox_Height#, EntityBox_Depth#
Function GetEntityBox(entity)
EntityBox_Width = 0
EntityBox_Height = 0
EntityBox_Depth = 0
Local surf_count = CountSurfaces(entity)
For surf_n = 0 To (surf_count - 1)
Local surf = GetSurface(entity, surf_n)
Local vert_count = CountVertices(surf)
For vert_n = 0 To (vert_count-1)
EntityBox_Width = Max(VertexX(surf, vert_n), EntityBox_Width)
EntityBox_Height = Max(VertexY(surf, vert_n), EntityBox_Height)
EntityBox_Depth = Max(VertexZ(surf, vert_n), EntityBox_Depth)
Next
Next
End Function
Function Max#(v1#, v2#)
If v1 > v2 Then
Return v1
Else
Return v2
EndIF
End Function
Писал прямо тут. Исправить ошибки, думаю, не трудно.
Там может быть косяк с CountSurfaces
Если у тебя AnimMesh то нужно обернуть это ещё в рекурсию и бежать по чайлдам.
И да, не злоупотребляй в цикле. Перебор - довольно ресурсоёмкая операция.