Создание файлов с иконками
Создавая собственные файлы с иконками, придерживайтесь следующих правил
Файл должен иметь расширение (и, естественно, формат) .bmp.
Каждая иконка должна быть как минимум в двух файлах. Первый должен содержать иконки размером 16 пикселей в ширину и 15 (а не 16) в высоту. Размер иконок во втором файле – 24 на 24 пикселя. Имена этих файлов должны заканчиваться на _16i и _24i соответственно. Например, myicons_16i.bmp и myicons_24i.bmp.
Все иконки должны быть одинакового размера и именно того, который указан в названии файла.
Количество иконок в обоих файлах должно быть одинаково, и располагаться они должны в одном и том же порядке.
Если для иконок имеются маски, то они должны содержаться в аналогично сформированных файлах, имена которых должны оканчиваться на _16m.bmp и _24.bmp. Например, myicons_16m.bmp и myicons_24m.bmp.
Если для иконок имеется альфа-канал, то он должен содержаться в аналогично сформированных файлах, которые должны оканчиваться на _16a.bmp и _24a.bmp для альфа-информации без предварительного умножения и _16p.bmp и _24p.bmp с таковым. Например, myicons_16a.bmp и myicons_24a.bmp.
Если имеется информация о маске, то для маскирования иконок используется она. Если ее нет, то используется альфа-информация, а если и ее нет, то в качестве прозрачного цвета используется цвет левой верхней точки иконки.
Если Вы создаете файл иконок в процессе работы 3ds max, то убедитесь, что заносите его в правильный директорий. Директорий для текущего пользовательского интерфейса можно получить с помощью функции
cui.GetDir ( )
Средства работы с мышью
Средства работы с мышью используются для того, чтобы предоставить пользователю возможность совершать действия, связанные с нажатиями кнопки мыши в видовом окне. Чаще всего они используются при написании скрипт плугинов, о чем будет рассказано далее. Рассмотрим пример
tool BoxCreate
( local b
on mousePoint clickno do
if clickno == 1 then b = box pos:worldPoint else #stop
on mouseMove clickno do b.pos = worldPoint
)
Данное средство позволяет пользователю нажатием левой кнопки мыши создать параллелепипед стандартных размеров и переместить его в нужную точку окна, двигая мышью. После того, как кнопка будет отпущена, действие прекратится. Чтобы начать работу, необходимо, для приведенного примера ввести в окно интерпретатора строку
startTool BoxCreate
Общий синтаксис определения средства для работы с мышью следующий
tool Имя_переменной prompt:Число numPoints: Число
Далее должен следовать текст на MAXScript, который представляет собой алгоритм работы средства. Подробно его структура и правила оформления будут рассмотрены далее. Первый параметр - имя переменной, в которую, после определения, будет занесена ссылка на данное средство. Класс этой переменной - MouseTool. Необязательный параметр prompt может содержать строку, которая появится в статус-строке 3ds max после начала работы со средством. В параметре numPoints, так же необязательном, указывается максимально возможное число нажатий на кнопку мыши. После того, как это число будет превышено, средство автоматически прекратит работу.
Для запуска и остановки средств работы с мышью применяются следующие функции. Запускает работу средства
startTool Средство prompt: Символьная_строка snap: Имя
numPoints: Число
Первый параметр - переменная, содержащая ссылку на средство. Прочие параметры необязательны. Параметры numPoints и prompt дублируют одноименные параметры определения средства. Если их значения отличаются от указанных в определении, то используются те, что указаны при обращении к функции. Параметр snap указывает способ привязки к сетке и может иметь значение либо #3D либо #2D. Однако его указание не включает привязку, пользователь должен сделать это средствами стандартного интерфейса 3ds max.
Функция StartTool возвращает значение #stop, если пользователь исчерпал количество нажатий или #abort, если была нажата правая кнопка мыши или клавиша Esc.
