forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Полезные функции (http://forum.boolean.name/forumdisplay.php?f=17)
-   -   ResizeMesh(Width#,Height#,Depth#,Proporcional%) (http://forum.boolean.name/showthread.php?t=2998)

moka 21.03.2007 22:58

ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
Комманда, которая масштабирует мэшь, на выбранный размер.
Есть возможность масштабировать пропорционально:
0 - Полностью на заданный размер.
1 - Пропорционально относительно заданной ширине.
2 - Пропорционально относительно заданной высоте.
3 - Пропорционально относительно заданной долготе.

Код:

Function ResizeMesh(Entity,width#,height#,depth#,proporcional=0)
        If EntityClass(Entity)="Mesh"
                mw#=MeshWidth(Entity)
                mh#=MeshHeight(Entity)
                md#=MeshDepth(Entity)

                Select proporcional
                        Case 1
                                ScaleEntity Entity,width/mw,width/mw,width/mw
                        Case 2
                                ScaleEntity Entity,height/mh,height/mh,height/mh
                        Case 3
                                ScaleEntity Entity,depth/md,depth/md,depth/md
                        Default
                                ScaleEntity Entity,width/mw,height/mh,depth/md
                End Select
        EndIf
End Function


tormoz 22.03.2007 05:10

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
Только не МЕШ, а Ентити.
Почуствуй разницу (с)

moka 22.03.2007 05:16

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
Мы не можень у Ентити узнать размеры, и поэтому не можемь масштабировать другие энтити, только типа Меш. Так-что в данном случае Меш. А скалю Энтити, т.к. могут быть припивоченные объекты, либо как уже встретился баг: Копированный энтити типа "меш", при манипуляциях, тоже манипулируется и источник и копия. Так что, тут приходится юзать скалинг энтити, но только для мешей. :)

HolyDel 22.03.2007 11:21

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
Ctrl+R<<leEntity<<leMesh

Chuma 22.03.2007 16:01

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
и что изменилось?

moka 23.03.2007 00:51

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
HolyDel непонял, что ты хотел сказать :)

HolyDel 23.03.2007 07:30

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
я хотел сказать нажать ctrl+r
ввести в поле поиска leEntity
ввести в поле замена leMesh
ето больше имеет отношение к сообщению Tarmoz'a

Chuma 23.03.2007 14:02

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
релакс - я в том сообщении забыл смайл подставить. а про автозамену понял =)))

HolyDel 23.03.2007 18:47

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
ну, функция стала отвечать своему названию, хотя конечно проще было-бы поменять название функции на ResizeEntity.

moka 24.03.2007 02:13

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
Право за тобой. =) Функцию моджете юзать в своих усмотрениях, я лишь как посчитал удобно сделал, т.к. масштабируется Только мэшь, пэтому ресайзмэшь =) а ты можешь себе поменять ;)

jimon 24.03.2007 08:19

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
тут с утра такой дебильный вопрос
а ета функция вообще работает ?
MeshWidth возвращает размер меша, а ScaleEntity скалит ентети
ети параметры как бы вообще не зависят друг от друга
тоесть если мы скалим ентети, то сам меш никак не изменяется
иначе бы если мы скалили меш - менялся бы внешний размер всех ентети которые оперируют с етим мешом

и еще :
Цитата:

MeshWidth# (mesh)

Returns the width of a mesh. This is calculated by the actual vertex positions and so the scale of the entity (set by ScaleEntity) will not have an effect on the resultant width. Mesh operations, on the other hand, will effect the result.
ps. с утра могу и тормозить ... :)

moka 24.03.2007 08:33

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
хз, хз, :-) у меня всё работает на ура, возможно насчёт "so the scale of the entity will not have an effect" - прогон :-).

HolyDel 24.03.2007 09:38

Re: ResizeMesh(Width#,Height#,Depth#,Proporcional%)
 
ScaleEntity - изменяет параметры в матрице для "родного меша".
сам меш не изменяется.
если кто надумает скалить меш, то вес ентити которые "имеют" етот меш тоже отскалются. Вызвав ету функцию еще раз все станет на свои места т.е. объекты будут иметь тот размер что надо.


Часовой пояс GMT +4, время: 11:29.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot