Функция set()
имеет широкий набор форм, позволяющих выполнять множество различных преобразований.
Tip
При заполнении матрицы в Houdini числа заполняют первую строку, затем вторую и т.д. ("главенство строк").
vector2 set(float v1, float v2)
vector set(float v1, float v2, float v3)
vector4 set(float v1, float v2, float v3, float v4)
matrix2 set(float v1, float v2, float v3, float v4)
matrix3 set(float v1, float v2, float v4, float v4, float v5, float v6, float v7, float v8, float v9)
matrix set(float v1, float v2, float v3, float v4, float v5, float v6, float v7, float v8, float v9, float v10, float v11, float v12, float v13, float v14, float v15, float v16)
Создает вектор или матрицу из значений в аргументах.
vector4 v = set(1.0, 2.0, 3.0, 4.0); matrix3 m = set(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0);
Функция assign выполняет противоположную операцию (извлечение компонентов в переменные).
<vector> set(float nums[])
<matrix> set(float nums[])
Создает вектор/матрицу из массива чисел с плавающей запятой.
float[] nums = {1.0, 2.0, 3.0, 4.0}; vector4 v = set(nums);
<vector> set(float|intv)
<matrix> set(float|intv)
Если вы вектор или матрицу из одного значения, все компоненты вектора/матрицы заполняются этим значением.
vector4 v = set(2.0); // -> {2.0, 2.0, 2.0, 2.0}
matrix2 set(vector2 row1, vector2 row2)
matrix3 set(vector row1, vector row2, vector row3)
matrix set(vector4 row1, vector4 row2, vector4 row3, vector4 row4)
Создает матрицу из нескольких векторных аргументов одного размера, представляющих строки матрицы.
matrix3 m = set({0.0, 1.0, 0.0}, {1.0, 0.0, 1.0}, {0.0, 1.0, 0.0});
matrix3 set(vector rows[])
matrix set(vector4 rows[])
Также вы можете создать матрицу из массива векторов, представляющих строки матрицы. Если в массиве недостаточно векторов для заполнения матрицы, дополнительные строки будут содержать нули.
vector [] set(matrix3 m)
vector4 [] set(matrix m)
Создает массив векторов из строк матрицы того же размера.
matrix3 m3 = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}; vector[] vs = set(m3); // -> array [ {1.0, 2.0, 3.0}, {4.0, 5.0, 6.0}, {7.0, 8.0, 9.0} ]
vector set(vector2 v)
vector4 set(vector2 v)
vector4 set(vector v)
matrix3 set(matrix2 m)
matrix set(matrix2 m)
matrix set(matrix3 m)
Если вы создаете вектор/матрицу большего размера из вектора/матрицы меньшего размера, дополнительные компоненты заполняются нулями.
vector2 v2 = {1.0, 2.0}; vector4 v4 = set(v2); // -> {1.0, 2.0, 0.0, 0.0}
float set(vector v)
float set(vector4 v)
vector2 set(vector4 v)
vector2 set(vector v)
vector set(vector4 v)
Если вы создаете меньший вектор из большего вектора, лишние компоненты будут проигнорированы.
vector4 v4 = {1.0, 2.0, 3.0, 4.0}; vector2 v2 = set(v4) // -> {1.0, 2.0}
matrix2 set(matrix3 m)
matrix2 set(matrix m)
matrix3 set(matrix m)
Если вы создаете меньшую матрицу из матрицы большего размера, меньший тип займет верхний левый угол, остальные компоненты будут проигнорированы.
matrix3 m3 = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}; matrix2 m2 = set(m3); // -> {1.0, 2.0, 4.0, 5.0}
float [] set(<vector>v)
float [] set(<matrix>m)
Создает массив чисел с плавающей запятой из вектора или матрицы.
matrix3 m3 = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0}; float[] nums = set(m3); // -> array [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ]
<vector>[] set(float nums[])
<matrix>[] set(float nums[])
Создает массив векторов/матриц, беря по одному компоненту за раз из массив чисел с плавающей запятой. Это то же самое, что функция unserialize.
float[] nums = {1.0, 2.0, 3.0, 4.0}; vector2[] vs = set(nums); // -> [ {1.0, 2.0}, {3.0, 4.0} ]
int set(float v)
float set(int v)
float [] set(int vs[])
int [] set(float vs[])
Вы можете задать float из int или int из float, массив float из массива int или наоборот.
float[] fracs = { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6 }; int[] floored = set(fracs); // -> array [ 1, 2, 3, 4, 5, 6 ]
float [] set(float num)
Задает всем элементам массива чисел с плавающей запятой одно и то же значение.
float set(float nums[])
Возвращает первый элемент в массиве.
<type> set(<type>v)
<type>[] set(<type>v[])
Если вы вызываете функцию set()
с одинаковым типом аргумента и возвращаемым типом, она просто возвращает значение аргумента.
string s = set("Hello"); // -> "Hello"
See also | |
data |