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.