Render.ru

события

#1
Короче надо обробатовать событие перетягивания объектов в сцене
Ну чтоб выхватывать на сколько перетащили...
Очень нада помогите...
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#2
Какое такое событие ?
Вопрос не понятен.
Напиши с начала и по порядку.
 
#3
Ну короче представь... Вот например нужно, что б была на тулбаре кнопочка (залипающая)... Вот если она нажата, то при перетягивании любого объекта в сцене в файлик записывается название этого объекта и смещение которое дали объекту.....

Так вот где нада оисать действия на событие ПЕРЕТАСКИВАНИЯ ???

Зарание всех благодарю....
 
#4
Ну типа отето я надыбал...
when transform selection change handleAt:#redrawViews do
(
rotate selection (angleaxis 10 [1,0,0])
)

Только 2-е проблемы:
1) Оно отрабатывает после перетаскивания, а нада ВО ВРЕМЯ ПЕРЕТАСКИВАНИЯ...

2) Как всётаки выхватить dx dy dz ????
 

Savin Denis

Модератор форума
Команда форума
Рейтинг
138
#5
Во первых такая кнопочка уже есть называется MacroRecorder.
select $Box02
move $ [-87.1056,0,0]
select $Torus01
move $ [17.1657,-40.7969,0]
select $Box01
move $ [-11.5105,-47.8351,0]

>Оно отрабатывает после перетаскивания, а нада ВО ВРЕМЯ ПЕРЕТАСКИВАНИЯ...
Все нормально работает во время перетаскивания.

>Как всётаки выхватить dx dy dz

----------------------------------------------------------------------------------------------

global sm_name = #()
global sm_move = #()

global sm_obj
global sm_pos = [0,0,0]
global sm_move_pos = [0,0,0]

clearSelection()
deleteAllChangeHandlers()

when select $* change handleAt:#redrawViews do
(
if (selection.count > 0 and selection[1] == sm_obj) then return ()
if sm_obj != undefined then (
sm_move_pos = sm_obj.pos
append sm_name (sm_obj.name)
append sm_move (sm_move_pos - sm_pos)
print (sm_obj.name)
print (sm_move_pos - sm_pos)
)
sm_obj = selection[1]
if selection.count > 0 then sm_move_pos = sm_pos = sm_obj.pos
)

----------------------------------------------------------------------------------------------
 
Сверху