![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Базовые классы MAXScript
Класс Value
MAXScript не является, в полном смысле слова, языком объектно-ориентированного программирования. Например, в нем нельзя создать тип данных, наследующий свойства другого типа, тоже созданного пользователем. Тем не менее, стандартные типы данных образуют иерархическую структуру, причем дочерние классы наследуют свойства и методы родительских. Родительским для всех типов данных, даже структур, определенных пользователем, является класс value. Этот класс является абстрактным, то есть объект этого класса нельзя создать, поскольку он не содержит данных. В дальнейшем, при описании поддерживаемых MAXScript типов данных, для каждого из них будут описаны литералы, конструкторы (способы создания объектов), операторы, свойства и методы. Везде, где по тексту программы могут стоять выражения, возвращающие значения какого либо типа, будет написано название этого типа. Например, если написано
Углы_Эйлера_1 + Углы_Эйлера_2
то это значит, что оператор сложения может быть применен к углам Эйлера.
Value
Класс value – абстрактный и, следовательно, литералов и конструкторов иметь не может.
Операторы
Для всех типов данных, как для наследующих классу value определены следующие операторы
Сравнения, равенство
Value = = Value
и неравенство
Value!= Value
Преобразования типа
Value as Имя_класса
Например
3.14 as string
преобразует значение типа float в символьную строку. Следует отметить, однако, что каждый тип данных можно преобразовать не в каждый тип, но в символьную строку можно преобразовать каждое выражение. Что же касается других возможных вариантов, то они будут рассматриваться далее в описании для каждого типа.
Методы
Функция вывода print может иметь три параметра, два последних – необязательны
print Value to: Поток #noMap
Поток – класс, который будет рассмотрен позднее. Если он не указан, то вывод осуществляется в окно интерпретатора. Если параметр #noMap не задан, то при выводе, например массивов, каждый элемент будет выводиться на новой строке. В противном случае все значения будут выводиться в одну строку.
Другая функция предназначена для более гибкой организации вывода
format Символьная_строка value to: Поток
Поток – как и для print параметр необязательный. Value – список выводимых значений. В этом одно из главных отличий format от print. Format может выводить неограниченное количество значений, в то время как print только одно. Символьная строка определяет формат вывода. Символ процента “%”в этой строке означает, что именно в этой позиции будет выведено очередное значение из списка. Например, в результате выполнения такого скрипта
x = 2; y = 5
format “x = %, y = %” x y
в окно интерпретатора будет выведена такая строка
x = 2, y = 5
Функция format не добавляет автоматически к концу выводимой строки символ перехода на новую строку. Если Вам это необходимо, включайте в строку формата сочетание символов “\n”.
Имеются так же методы для определения или проверки класса объекта.
Функция
classOf Value
возвращает имя класса указанного объекта. Например, в результате выполнения скрипта
S = sphere()
classOf S
будет выведена строка
sphere
Можно получить имя родительского класса объекта с помощью функции
superclassOf Value
Функция
isKindOf Value Имя_класса
возвращает true, если заданное значение принадлежит указанному классу или классу – потомку указанного. В противном случае результат будет false. Например, продолжив пример со сферой S, напишем
isKindOf S sphere
Эта строка вернет true. Строка
isKindOf S GeometryClass
так же вернет true, а вот
isKindOf S Box
уже false. Функция
isStructDef Value
возвращает true, если указанное значение – определение структуры. Рассмотрим пример
t = struct TestStruct (a, b)
v = TestStruct 1 2
После такого определения скрипт
isStructDef t
вернет true,
isStructDef TestStruct
так же true, а
isStructDef v
вернет false. Чтобы определить, что переменная является структурой, существует другая функция
isStruct Value
Продолжим пример со структурой TestStruct. Скрипт
isStruct v
вернет true.
Чтобы определить, что переменная содержит контроллер, а о контроллерах речь впереди, применяется функция
isController Value
которая возвращает true, если указанное значение – контроллер, и false в противном случае.
Число
Число в MAXScript может быть целым и вещественным. Оба этих типа поддерживают одни и те же операции и методы.
Дата публикования: 2015-01-13; Прочитано: 810 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!