| Classes | |
| struct | SegmentSphereIntersectionData | 
| class | LMinMax | 
| class | SMinMax | 
| class | Random | 
| struct | RayShaderStackElement | 
| struct | MsgGICSExData | 
| struct | MsgGINewData | 
| class | Stratified2DRandom | 
| struct | DisplaceInfo | 
| struct | VolumeData | 
| class | VPBuffer | 
| struct | VideoPostStruct | 
| class | Render | 
| struct | BakeProgressInfo | 
| struct | BakeTextureResizeNotify | 
| class | GeCipher256 | 
| Macros | |
| #define | MAXRANGE | 
| #define | MAXELEMENTS | 
| #define | MIN_EPSILON | 
| Typedefs | |
| typedef LMinMax | MinMax | 
| Variables | |
| static const Float | COLORTOINT_MULTIPLIER | 
| static const Float | PERCENT | 
| static const Float | THIRD | 
| static const Float | SIXTH | 
| static const Int32 | NOISE_RESOLUTION | 
| NONE | |
| PREPARE | |
| GI_PREPASS | |
| FILL_IMAGE | |
| COMPLETE | |
| INITIALIZE | |
| RESIZENOTIFY | |
| struct BakeProgressInfo | MAXON_ENUM_LIST | 
| #define MAXRANGE | 
Maximum value for metric data.
| #define MAXELEMENTS | 
Maximum number of points.
| #define MIN_EPSILON | 
Minimum epsilon value.
| Vector GetOptimalAngle | ( | const Vector & | hpb_old, | 
| const Vector & | hpb_new, | ||
| ROTATIONORDER | order | ||
| ) | 
Modifies hpb_new so that the "distance" to the last angle hpb_old is at minimum.
| [in] | hpb_old | The old HPB. | 
| [in] | hpb_new | The new HPB. | 
| [in] | order | The rotation order. | 
Calculates the distance from a point to a line.
| [in] | p0 | The starting point of the line. | 
| [in] | v | The line vector. | 
| [in] | p | The point. | 
| Float PointLineSegmentDistance | ( | const Vector & | segmentPoint1, | 
| const Vector & | segmentPoint2, | ||
| const Vector & | pos, | ||
| Vector * | intersectionPoint = nullptr, | ||
| Float * | lineOffset = nullptr | ||
| ) | 
Calculates the distance from a point to a line segment between two points.
| [in] | segmentPoint1 | The line segments first point. | 
| [in] | segmentPoint2 | The line segments second point. | 
| [in] | pos | The point to test against the line segment. | 
| [out] | intersectionPoint | Optional, if non-null the intersection point on the segment. | 
| [out] | lineOffset | Optional, if non-null, the offset along the segment of the intersection point. | 
| Float PointLineSegmentDistance2D | ( | const Vector & | segmentPoint1, | 
| const Vector & | segmentPoint2, | ||
| const Vector & | pos, | ||
| Vector * | intersectionPoint = nullptr, | ||
| Float * | lineOffset = nullptr | ||
| ) | 
Calculates the distance from a point to a line segment between two points in 2D ignoring the Z value.
| [in] | segmentPoint1 | The line segments first point. | 
| [in] | segmentPoint2 | The line segments second point. | 
| [in] | pos | The point to test against the line segment. | 
| [out] | intersectionPoint | Optional, if non-null the intersection point on the segment. | 
| [out] | lineOffset | Optional, if non-null, the offset along the segment of the intersection point. | 
Finds the ray vector after a reflection on a surface normal.
| [in] | v | The incoming ray. | 
| [in] | n | The surface normal. | 
| Bool SphereLineIntersection | ( | const Vector & | linePoint1, | 
| const Vector & | linePoint2, | ||
| const Vector & | sphereCenter, | ||
| Float | sphereRadius, | ||
| Float * | intersection1 = nullptr, | ||
| Float * | intersection2 = nullptr, | ||
| Vector * | hitPoint1 = nullptr, | ||
| Vector * | hitPoint2 = nullptr | ||
| ) | 
Calculates where the intersection points are between a line and a sphere in 3D space. since R16
| [in] | linePoint1 | The first point of the line. | 
| [in] | linePoint2 | The second point of the line. | 
| [in] | sphereCenter | The center of the sphere. | 
| [in] | sphereRadius | The radius of the sphere. | 
| [out] | intersection1 | (optional) Assigned the first intersection point (lowest) as an offset between linePoint1 and linePoint2 | 
| [out] | intersection2 | (optional) Assigned the second intersection point (highest) as an offset between linePoint1 and linePoint2 | 
| [out] | hitPoint1 | (optional) Assigned the actual 3D point where the line first intersects (enters) the sphere. | 
| [out] | hitPoint2 | (optional) Assigned the actual 3D point where the line subsequently intersects (exits) the sphere. | 
| Bool CircleLineIntersection | ( | const Vector & | linePoint1, | 
| const Vector & | linePoint2, | ||
| const Vector & | circleCenter, | ||
| Float | circleRadius, | ||
| Float * | intersection1 = nullptr, | ||
| Float * | intersection2 = nullptr, | ||
| Vector * | hitPoint1 = nullptr, | ||
| Vector * | hitPoint2 = nullptr | ||
| ) | 
Calculates where the intersection points are between a line and a circle in 2D space (although Z will also be calculated on the resulting hit points) since R16
| [in] | linePoint1 | The first point of the line. | 
| [in] | linePoint2 | The second point of the line. | 
| [in] | circleCenter | The center of the circle. | 
| [in] | circleRadius | The radius of the circle. | 
| [out] | intersection1 | (optional) Assigned the first intersection point (lowest) as an offset between linePoint1 and linePoint2 | 
| [out] | intersection2 | (optional) Assigned the second intersection point (highest) as an offset between linePoint1 and linePoint2 | 
| [out] | hitPoint1 | (optional) Assigned the actual point where the line first intersects (enters) the circle, Z may also be calculated. | 
| [out] | hitPoint2 | (optional) Assigned the actual point where the line subsequently intersects (exits) the circle, Z may also be calculated. | 
| Bool SphereSegmentIntersection | ( | const Vector & | linePoint1, | 
| const Vector & | linePoint2, | ||
| const Vector & | sphereCenter, | ||
| Float | sphereRadius, | ||
| maxon::BaseArray< SegmentSphereIntersectionData > & | intersections | ||
| ) | 
Calculates where the intersection points are between a segment (a portion of a line) and a sphere in 3D space. since R16
| [in] | linePoint1 | The first point (start) of the segment. | 
| [in] | linePoint2 | The second point (end) of the segment. | 
| [in] | sphereCenter | The center of the sphere. | 
| [in] | sphereRadius | The radius of the sphere. | 
| [out] | intersections | Assigned the SegmentSphereIntersectionData hit-points. | 
| Bool CircleSegmentIntersection | ( | const Vector & | linePoint1, | 
| const Vector & | linePoint2, | ||
| const Vector & | circleCenter, | ||
| Float | circleRadius, | ||
| maxon::BaseArray< SegmentSphereIntersectionData > & | intersections | ||
| ) | 
Calculates where the intersection points are between a segment (a portion of a line) and a circle in 2D space (although Z will be calculated for any resulting hit points) since R16
| [in] | linePoint1 | The first point (start) of the segment. | 
| [in] | linePoint2 | The second point (end) of the segment. | 
| [in] | circleCenter | The center of the circle. | 
| [in] | circleRadius | The radius of the circle. | 
| [out] | intersections | Assigned the SegmentSphereIntersectionData hit-points. | 
Converts RGB into the HSV color space.
| [in] | col | The RGB color to convert. | 
Converts HSV into the RGB color space.
| [in] | col | The HSV color to convert. | 
Converts RGB into the HSL color space.
| [in] | col | The RGB color to convert. | 
Converts HSL into the RGB color space.
| [in] | col | The HSL color to convert. | 
| Vector CalcSplinePoint | ( | Float | offset, | 
| SPLINETYPE | type, | ||
| Bool | closed, | ||
| Int32 | pcnt, | ||
| const Vector * | padr, | ||
| const Tangent * | tadr = nullptr | ||
| ) | 
Calculates a point along a spline curve from a set of points in 3D space.
| [in] | offset | The offset along the spline from 0.0 to 1.0. | 
| [in] | type | The type of spline, i.e. AKIMA, BSPLINE etc. | 
| [in] | closed | Whether the spline is closed or not. | 
| [in] | pcnt | The number of points in the spline. | 
| [in] | padr | The points array. | 
| [in] | tadr | The tangents array, required for Bezier, Cubic and Akima spline types (otherwise will default to b-spline). | 
| Vector CalcSplineTangent | ( | Float | offset, | 
| SPLINETYPE | type, | ||
| Bool | closed, | ||
| Int32 | pcnt, | ||
| const Vector * | padr, | ||
| const Tangent * | tadr = nullptr | ||
| ) | 
Calculates the tangent of a point along a spline curve from a given set of points and optional tangents.
| [in] | offset | The offset along the spline from 0.0 to 1.0. | 
| [in] | type | The type of spline, i.e. AKIMA, BSPLINE etc. | 
| [in] | closed | Whether the spline is closed or not. | 
| [in] | pcnt | The number of points in the spline. | 
| [in] | padr | The points array. | 
| [in] | tadr | The tangents array, required for Bezier, Cubic and Akima spline types (otherwise will default to b-spline). | 
| void CalcSplineInsert | ( | Float | offset, | 
| SPLINETYPE | type, | ||
| Bool | closed, | ||
| Int32 | pcnt, | ||
| const Vector * | padr, | ||
| const Tangent * | tadr, | ||
| Int32 & | pointIndex, | ||
| Vector & | resultPoint, | ||
| Tangent & | resultTangent, | ||
| Vector & | leftTangent, | ||
| Vector & | rightTangent | ||
| ) | 
Calculates data about a point would if it were inserted into the spline at the passed offset.
| [in] | offset | The offset to calculate the point for. | 
| [in] | type | The spline type. | 
| [in] | closed | The closed state of the spline points. | 
| [in] | pcnt | The number of points in the spline. | 
| [in] | padr | The address of the points array. | 
| [in] | tadr | The (optional) address of the tangents array. | 
| [out] | pointIndex | The index that the resulting point would be if it were inserted into the spline. | 
| [out] | resultPoint | The position of the resulting point. | 
| [out] | resultTangent | The spline tangent information of the resulting point. | 
| [out] | leftTangent | The correct new left tangent (tadr[pointIndex - 1].vr). | 
| [out] | rightTangent | The correct new right tangent (tadr[pointIndex].vl). | 
| Tangent TransformTangent | ( | const Vector & | newPos, | 
| const Vector & | planeNormal, | ||
| const Vector & | position, | ||
| const Tangent & | tangent, | ||
| TANGENTSIDE | tangentSide, | ||
| TANGENTTRANSFORMFLAG | flags = TANGENTTRANSFORMFLAG::BREAK_SCALE | ||
| ) | 
Creates a transformed tangent around a point and plane, allowing to directly set the position of one of the tangent handles and automatically rotating the rest of the tangent to match.
| [in] | newPos | The new position for the tangent handle. | 
| [in] | planeNormal | The normal of the plane for rotation of the handles. | 
| [in] | position | The position of the center of the tangent being modified. | 
| [in] | tangent | The tangent to modify/derive the resulting tangent from. | 
| [in] | tangentSide | The handle to modify of the tangent, left, right, or none. | 
| [in] | flags | The flags for controlling tangent breaking, rotation and scale locking etc. | 
| void CalcSplineMovement | ( | const Vector & | newPos, | 
| Float | offset, | ||
| SPLINETYPE | type, | ||
| const Matrix & | splineMg, | ||
| BaseDraw * | bd, | ||
| const Vector & | planeNormal, | ||
| Bool | closed, | ||
| Bool | lockTangentAngle, | ||
| Bool | lockTangentLength, | ||
| BREAKTANGENTS | breakTangents, | ||
| Int32 | pcnt, | ||
| Vector * | padr, | ||
| Tangent * | tadr | ||
| ) | 
Moves a point on a spline curve to a user specified new position.
| [in] | newPos | The new position for the point of the curve at offset. | 
| [in] | offset | The offset to move to the position newPos. | 
| [in] | type | The type of spline to move. | 
| [in] | splineMg | The matrix of the spline. | 
| [in] | bd | The (optional) basedraw. | 
| [in] | planeNormal | The normal for tangent rotation, typically Vector(0,0,1). | 
| [in] | closed | The closed state of the spline. | 
| [in] | lockTangentAngle | true if tangents angle may not be changed by this routine. | 
| [in] | lockTangentLength | true if the tangents length may not be changed by this routine. | 
| [in] | breakTangents | Set to break the tangents while manipulating the curve if tangents exist. | 
| [in] | pcnt | The number of points in the spline. | 
| [out] | padr | The address of the points that describe the spline. | 
| [out] | tadr | The (optional) address of the tangents that are used by the spline. | 
| Bool CalcSplineDefaultTangents | ( | SPLINETYPE | type, | 
| Bool | closed, | ||
| Int32 | pcnt, | ||
| const Vector * | padr, | ||
| Tangent * | tadr | ||
| ) | 
Calculates the default tangents for the passed points (spline segment) based on the spline type.
| [in] | type | The spline type to calculate the tangents for. | 
| [in] | closed | Whether the spline segment is closed. | 
| [in] | pcnt | The number of points to calculate. | 
| [in] | padr | The address of the points. | 
| [out] | tadr | The resulting tangents (caller owns the array, must be pre-allocated). | 
| SplineObject* BooleanSplines | ( | SplineObject * | initialSpline, | 
| AtomArray * | booleanObjects, | ||
| BaseDocument * | doc, | ||
| BaseDraw * | bd, | ||
| SPLINEBOOL_AXIS | projectionAxis, | ||
| SPLINEBOOL_MODE | booleanMode | ||
| ) | 
Booleans an initial SplineObject with an array of other SplineObjects along a passed projection axis (in 2D).
| [in] | initialSpline | The original SplineObject that will have the operations applied to it. | 
| [in] | booleanObjects | The array of SplineObjects to boolean with the initialSpline. | 
| [in] | doc | The active document that the objects belong to. | 
| [in] | bd | The active BaseDraw. | 
| [in] | projectionAxis | The projection axis to use, XY, ZY, screen space etc. | 
| [in] | booleanMode | The type of boolean to apply (Union, Subtract etc). | 
Calculates the value of a spline at a point.
| [in] | x | The position on the spline. | 
| [in] | knot | The spline knots array. The caller owns the pointed array. | 
| [in] | nknots | The number of knots. | 
Calculates the value of a spline at a point.
| [in] | x | The position on the spline. | 
| [in] | knot | The spline knots array. The caller owns the pointed array. | 
| [in] | nknots | The number of knots. | 
| void CalcRestrictionInc | ( | const ObjectRestriction * | lr, | 
| const RayObject * | op, | ||
| Bool & | nodif, | ||
| Bool & | nospec | ||
| ) | 
Calculates the include-/exclude situation for a given object op and a light source (&light->lr is passed). 
| [in] | lr | The light restriction to evaluate. The caller owns the pointed light restriction. | 
| [in] | op | The object to evaluate. The caller owns the pointed object. | 
| [in,out] | nodif | Must be initialized with false before the call. Assigned true if lr specifies that op should not receive any diffuse light. | 
| [in,out] | nospec | Must be initialized with false before the call. Assigned true if lr specifies that op should not receive any specular light. | 
| BAKE_TEX_ERR BakeTexture | ( | BaseDocument * | doc, | 
| const BaseContainer & | data, | ||
| BaseBitmap * | bmp, | ||
| BaseThread * | th, | ||
| BakeProgressHook * | hook, | ||
| BakeProgressInfo * | info | ||
| ) | 
Bakes the texture(s) specified by the last InitBakeTexture() call into bmp.
| [in] | doc | The document. The caller owns the pointed document. | 
| [in] | data | The bake settings: BakeTexEnums | 
| [out] | bmp | The bitmap to bake to. If this points to a MultipassBitmap, it must be initialized with the correct width and height before BakeTexture() is called. The caller owns the pointed bitmap. If this points to a MultipassBitmap, it must be initialized with the correct width and height before BakeTexture() is called. Multipass bitmaps must be used if BAKE_TEX_AMBIENT_OCCLUSION is set. The only allowed modes for multipass bitmaps are COLORMODE::RGB, COLORMODE::ARGB, COLORMODE::RGBw, COLORMODE::ARGBw, COLORMODE::RGBf, COLORMODE::ARGBf. | 
| [in] | th | The current thread. The caller owns the pointed document. | 
| [in] | hook | The bake progress hook callback function pointer. | 
| [in] | info | The bake progress information passed to the hook callback. | 
| BaseDocument* InitBakeTexture | ( | BaseDocument * | doc, | 
| TextureTag * | textag, | ||
| UVWTag * | texuvw, | ||
| UVWTag * | destuvw, | ||
| const BaseContainer & | bc, | ||
| BAKE_TEX_ERR * | err = nullptr, | ||
| BaseThread * | th = nullptr | ||
| ) | 
Initializes a bake operation of a single tag for BakeTexture().
| [in] | doc | The document. The caller owns the pointed document. | 
| [in] | textag | The texture tag to bake. Must be assigned to an object. The caller owns the pointed tag. | 
| [in] | texuvw | The UVW tag to bake. Must be valid if UVW projection is selected in the tag, ignored otherwise. The caller owns the pointed tag. | 
| [out] | destuvw | The destination UVW tag for the bake. If not nullptr, the current projection is transformed into the uvw tag. The caller owns the pointed tag. | 
| [in] | bc | The bake settings: BakeTexEnums | 
| [out] | err | Assigned the error result, if not nullptr: BAKE_TEX_ERR | 
| [in] | th | The current thread. The caller owns the pointed document. | 
| BaseDocument* InitBakeTexture | ( | BaseDocument * | doc, | 
| TextureTag ** | textags, | ||
| UVWTag ** | texuvws, | ||
| UVWTag ** | destuvws, | ||
| Int32 | cnt, | ||
| const BaseContainer & | bc, | ||
| BAKE_TEX_ERR * | err = nullptr, | ||
| BaseThread * | th = nullptr | ||
| ) | 
Initializes a bake operation of multiple tags for BakeTexture().
| [in] | doc | The document. The caller owns the pointed document. | 
| [in] | textags | The texture tags to bake. Must be assigned to objects. The caller owns the pointed array. | 
| [in] | texuvws | The UVW tags to bake. The caller owns the pointed array. | 
| [out] | destuvws | The destination UVW tags for the bake. If not nullptr, the current projection is transformed into the uvw tags. The caller owns the pointed array. | 
| [in] | cnt | The number of tags in textags, texuvws and destuvws arrays. | 
| [in] | bc | The bake settings: BakeTexEnums | 
| [out] | err | Assigned the error result, if not nullptr: BAKE_TEX_ERR | 
| [in] | th | The current thread. The caller owns the pointed document. | 
| 
 | static | 
Constant to convert from vectors color components to integers.
| 
 | static | 
Constant to convert from 0-1 range to percentage.
| 
 | static | 
Constant to calculate the third of a value.
| 
 | static | 
Constant to calculate the sixth of a value.
| NONE | 
None.
| PREPARE | 
Prepare.
| GI_PREPASS | 
GI prepass.
| FILL_IMAGE | 
Fill image.
| COMPLETE | 
Complete.
| INITIALIZE | 
Initialize.
| RESIZENOTIFY | 
Resize notify. See BakeTextureResizeNotify.