blob: ddb086e5a1823f5f28f845678f33da378954ae33 [file] [log] [blame]
/*
* Copyright 2009, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
namespace o3d {
%[
A Param operation that takes 2 floats to produce a Float2.
@o3dparameter input0 ParamFloat The first float.
@o3dparameter input1 ParamFloat The second float.
@o3dparameter output ParamFloat2 The Float2 that is the combination of input0
and input1.
%]
[nocpp, include="core/cross/param_operation.h"]
class ParamOp2FloatsToFloat2 : ParamObject {
%[
The first value for the Float2.
Default = 0.
%]
[getter, setter] float input_0;
%[
The second value for the Float2.
Default = 0.
%]
[getter, setter] float input_1;
%[
The Float2 that results from the inputs.
%]
[getter] Float2 output;
};
%[
A Param operation that takes 3 floats to produce a Float3.
@o3dparameter input0 ParamFloat The first float.
@o3dparameter input1 ParamFloat The second float.
@o3dparameter input2 ParamFloat The third float.
@o3dparameter output ParamFloat3 The Float3 that is the combination of input0,
input1, and input2.
%]
[nocpp, include="core/cross/param_operation.h"]
class ParamOp3FloatsToFloat3 : ParamObject {
%[
The first value for the Float3.
Default = 0.
%]
[getter, setter] float input_0;
%[
The second value for the Float3.
Default = 0.
%]
[getter, setter] float input_1;
%[
The third value for the Float3.
Default = 0.
%]
[getter, setter] float input_2;
%[
The Float3 that results from the inputs.
%]
[getter] Float3 output;
};
%[
A Param operation that takes 4 floats to produce a Float4.
@o3dparameter input0 ParamFloat The first float.
@o3dparameter input1 ParamFloat The second float.
@o3dparameter input2 ParamFloat The third float.
@o3dparameter input3 ParamFloat The fourth float.
@o3dparameter output ParamFloat4 The Float4 that is the combination of input0,
input1, input2, and input3.
%]
[nocpp, include="core/cross/param_operation.h"]
class ParamOp4FloatsToFloat4 : ParamObject {
%[
The first value for the Float4.
Default = 0.
%]
[getter, setter] float input_0;
%[
The second value for the Float4.
Default = 0.
%]
[getter, setter] float input_1;
%[
The third value for the Float4.
Default = 0.
%]
[getter, setter] float input_2;
%[
The fourth value for the Float4.
Default = 0.
%]
[getter, setter] float input_3;
%[
The Float4 that results from the inputs.
%]
[getter] Float4 output;
};
%[
A Param operation that takes 16 floats to produce a Matrix4.
@o3dparameter input0 ParamFloat The 1st float.
@o3dparameter input1 ParamFloat The 2nd float.
@o3dparameter input2 ParamFloat The 3rd float.
@o3dparameter input3 ParamFloat The 4th float.
@o3dparameter input4 ParamFloat The 5th float.
@o3dparameter input5 ParamFloat The 6th float.
@o3dparameter input6 ParamFloat The 7th float.
@o3dparameter input7 ParamFloat The 8th float.
@o3dparameter input8 ParamFloat The 9th float.
@o3dparameter input9 ParamFloat The 10th float.
@o3dparameter input10 ParamFloat The 11th float.
@o3dparameter input11 ParamFloat The 12th float.
@o3dparameter input12 ParamFloat The 13th float.
@o3dparameter input13 ParamFloat The 14th float.
@o3dparameter input14 ParamFloat The 15th float.
@o3dparameter input15 ParamFloat The 16th float.
@o3dparameter output ParamMatrix4 The Matrix4 that is the combination of
the inputs in the following order
<pre>
[[input0, input1, input2, input3],
[input4, input5, input6, input7],
[input8, input9, input10, input11],
[input12, input13, input14, input15]]
</pre>
%]
[nocpp, include="core/cross/param_operation.h"]
class ParamOp16FloatsToMatrix4 : ParamObject {
%[
The first value for the Float4.
Default = 0.
%]
[getter, setter] float input_0;
%[
The second value for the Float4.
Default = 0.
%]
[getter, setter] float input_1;
%[
The third value for the Float4.
Default = 0.
%]
[getter, setter] float input_2;
%[
The fourth value for the Float4.
Default = 0.
%]
[getter, setter] float input_3;
%[
The fifth value for the Float4.
Default = 0.
%]
[getter, setter] float input_4;
%[
The sixth value for the Float4.
Default = 0.
%]
[getter, setter] float input_5;
%[
The seventh value for the Float4.
Default = 0.
%]
[getter, setter] float input_6;
%[
The eighth value for the Float4.
Default = 0.
%]
[getter, setter] float input_7;
%[
The ninth value for the Float4.
Default = 0.
%]
[getter, setter] float input_8;
%[
The tenth value for the Float4.
Default = 0.
%]
[getter, setter] float input_9;
%[
The eleventh value for the Float4.
Default = 0.
%]
[getter, setter] float input_10;
%[
The twelfth value for the Float4.
Default = 0.
%]
[getter, setter] float input_11;
%[
The thirteenth value for the Float4.
Default = 0.
%]
[getter, setter] float input_12;
%[
The fourteenth value for the Float4.
Default = 0.
%]
[getter, setter] float input_13;
%[
The fifteenth value for the Float4.
Default = 0.
%]
[getter, setter] float input_14;
%[
The sixteenth value for the Float4.
Default = 0.
%]
[getter, setter] float input_15;
%[
The Matrix4 that results from the inputs.
%]
[getter] Vectormath::Aos::Matrix4 output;
};
%[
A Param operation that takes 9 floats to produce a 4-by-4 matrix.
The 9 floats encode a translation vector, angles of rotation around the x, y,
and z axes, and three scaling factors. The resulting transformation scales
first, then then rotates around the z-axis, then the y-axis, then the x-axis,
then translates.
@o3dparameter translateX ParamFloat The x component of the translation.
@o3dparameter translateY ParamFloat The y component of the translation.
@o3dparameter translateZ ParamFloat The z component of the translation.
@o3dparameter rotateX ParamFloat The x component of the rotation.
@o3dparameter rotateY ParamFloat The y component of the rotation.
@o3dparameter rotateZ ParamFloat The z component of the rotation.
@o3dparameter scaleX ParamFloat The x component of the scale.
@o3dparameter scaleY ParamFloat The y component of the scale.
@o3dparameter scaleZ ParamFloat The z component of the scale.
@o3dparameter output ParamMatrix4 The matrix described by the components.
%]
[nocpp, include="core/cross/param_operation.h"]
class TRSToMatrix4 : ParamObject {
%[
The x translation for the Matrix4.
Default = 0.
%]
[getter, setter] float translate_x;
%[
The y translation for the Matrix4.
Default = 0.
%]
[getter, setter] float translate_y;
%[
The z translation for the Matrix4.
Default = 0.
%]
[getter, setter] float translate_z;
%[
The x rotation for the Matrix4.
Default = 0.
%]
[getter, setter] float rotate_x;
%[
The y rotation for the Matrix4.
Default = 0.
%]
[getter, setter] float rotate_y;
%[
The z rotation for the Matrix4.
Default = 0.
%]
[getter, setter] float rotate_z;
%[
The x scale for the Matrix4.
Default = 0.
%]
[getter, setter] float scale_x;
%[
The y scale for the Matrix4.
Default = 0.
%]
[getter, setter] float scale_y;
%[
The z scale for the Matrix4.
Default = 0.
%]
[getter, setter] float scale_z;
%[
The Matrix4 that results from the inputs.
%]
[getter] Vectormath::Aos::Matrix4 output;
};
} // namespace o3d