Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Операторы. Базовые классы MAXScript



Базовые классы 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...