Отображаемые методы

Методы типа get и set

Методы нередко начинаются с префикса get или set. Так, метод с префиксом get используется для получения, а метод с префиксом set — для установки конкретных свойств объекта.

Большая часть методов типа get и set применяется в классе Editable_Mesh, который стоит в иерархии ниже класса GeometryClass.

Для изучения методов типа get и set выполните следующее упражнение.

1. Откройте раздел MAXScript Language Reference ⇨ 3dsMax Objects ⇨ Editable Meshes, Splines, Patches, and Polys ⇨ Editable_Mesh and TriMesh Editable_Mesh: GeometryClass and TriMesh: Value (Справочник по языку MAXScript Объекты 3dsMax ⇨ Редактируемые каркасы, сплайны, лоскуты и многоугольники Классы Editable_Mesh и TriMesh ⇨ Класс Editable_Mesh: Классы GeometryClass и TriMesh: Значение) в справочном руководстве по MAXScript.

В этом разделе приведены все методы и свойства, характерные для редактируемых каркасов. Вместо того чтобы создавать и править совершенно новый каркас, можно преобразовать параллелепипед в редактируемый каркас.


Глава 4

2. Прокрутите текст справочного руководства до конца раздела "Constructors (Editable_Mesh)" (Конструкторы класса Editable_Mesh). Два последних метода в этом разделе преобразуют любой объект класса Node в редактируемый каркас.

3. Введите в приемнике команд следующую строку кода: m = convertToMesh b

Перейдя к панели Modify, вы можете обнаружить, что параллелепипед преобразован в редактируемый каркас.

4. Откройте следующий раздел справочного руководства, "Mesh Vertex Methods" (Методы манипулирования вершинами каркаса). Первым в этом разделе перечислен метод getNumVerts. Попробуйте применить его.

5. Введите в приемнике команд следующую строку кода: getNumVerts m

В приемнике команд возвратится значение 8, обозначающее число вершин в редактируемом каркасе.

Этот метод можно также использовать для присваивания числа вершин переменной:

numVerts = getNumVerts m

В этой строке кода число вершин (в данном случае — 8) присваивается переменной numVerts.

Некоторые методы могут воздействовать на всю совокупность объектов одной командой. Когда операция выполняется над целым рядом объектов, то говорят, что она отображается на эти объекты.

Применяя метод к одному или нескольким объектам, можно воспользоваться метасимволом для обозначения этих объектов либо организовать их в совокупность или массив и затем применить данный метод к полученной совокупности объектов. Для изучения отображаемых методов выполните следующее упражнение.

1. Вновь откройте раздел "Editable_Mesh: GeometryClass and TriMesh: Value" справочного руководства.

2. Прокрутите текст вниз и найдите правило для метода convertToMesh: convertToMesh <node> -- mapped

Обозначение mapped (отображаемый метод), приведенное после этого правила, указывает на то, что данный метод можно применять к нескольким объектам сразу. Попробуйте применить данный метод к находящимся на сцене объектам.

3. Установите 3dsMax в исходное состояние или удалите все объекты со сцены.

4. Введите в приемнике команд следующий фрагмент кода:


Объекты и классы

c = cylinder pos:[50,0,0]

b = box()

s = sphere pos: [-50,0,0]

В этом коде три объекта создаются в разных местах сцены.

5. Введите в приемнике команд следующую строку кода: convertToMesh $*

В этой строке метасимвол * служит для обозначения всех преобразуемых объектов сцены в редактируемые каркасы. Далее вам предстоит создать массив для хранения этих объектов и применить к данному массиву соответствующий метод.

6. Введите в приемнике команд следующую строку кода:

objectArray = #(c,b,s)

В итоге создается массив objectArray, содержащий три объекта.

7. Введите в приемнике команд следующую строку кода:

hide objectArray

Все объекты скрываются на сцене. Метод hide, который может применяться ко всем членам класса Node, является также отображаемым методом.