|
SuperDex Physics C++ API
|
Namespaces | |
| namespace | colors |
| Predefined color constants for common use cases. | |
| namespace | materials |
| namespace | model_utils |
| namespace | prefab |
Classes | |
| class | Aabb |
| struct | ActiveAnisoArapMaterialParams |
| Parameters for the Active Anisotropic ARAP material model. More... | |
| struct | ActiveNeoHookeanMaterialParams |
| Parameters for the Active Neo-Hookean composite material model. More... | |
| struct | ActiveShapeTargetingArapMaterialParams |
| Parameters for the Active Shape Targeting ARAP material model. More... | |
| class | Actor |
| Represents a simulated body (actor) in a scene. More... | |
| struct | ActorHandle |
| Unique identifier for an Actor within a Scene. More... | |
| class | Allocator |
| Virtual interface class for memory allocation and deallocation. More... | |
| struct | ArapMaterialParams |
| Parameters for the As-Rigid-As-Possible (ARAP) material model. More... | |
| struct | Array |
| struct | Articulated3dRotationRangeConstraintParams |
| Parameters for creating a range constraint on a 3D-rotation articulated joint. More... | |
| struct | Articulated3dRotationTargetConstraintParams |
| Parameters for creating a target constraint on 3D rotation DoFs of an articulated actor. More... | |
| struct | ArticulatedActorParams |
| Parameters to create an articulated actor. More... | |
| struct | ArticulatedCycleJoint |
| Defines a cycle-closing joint in an articulated body. More... | |
| struct | ArticulatedCycleJointParams |
| Parameters for a cycle-closing joint within an articulated actor. More... | |
| struct | ArticulatedDofInfo |
| Degree-of-freedom layout information for a single joint in an articulated body. More... | |
| struct | ArticulatedJointFrictionParams |
| Per-joint friction parameters for articulated bodies. More... | |
| struct | ArticulatedJointParams |
| Parameters describing a single joint within an articulated actor. More... | |
| struct | ArticulatedLinkParams |
| Parameters describing a single rigid link within an articulated actor. More... | |
| struct | ArticulatedShapeInfo |
| Information describing an articulated shape's kinematic structure. More... | |
| struct | ArticulatedSingleDofRangeConstraintParams |
| Parameters for creating a range constraint on a single articulated DoF. More... | |
| struct | ArticulatedSingleDofTargetConstraintParams |
| Parameters for creating a target constraint on a single articulated DoF. More... | |
| struct | ArticulatedSkinParams |
| Optional skinned mesh attached to an articulated actor for collision and rendering. More... | |
| class | AsyncScene |
| Manages a simulation scene that steps asynchronously using the SuperDex Physics worker pool. More... | |
| struct | AsyncStepParams |
| Parameters controlling the stepping behavior of an AsyncScene. More... | |
| struct | BlendingData |
| Blending data for one source shape within a soft skinned mesh. More... | |
| struct | BlendingDataView |
| A non-owning view of the data blending data for one source shape within a soft skinned mesh. More... | |
| struct | BoundarySubsamplingParams |
| Parameters for subsampling boundary integrals such as contact. More... | |
| struct | Box |
| Data for an implicit box within a model file. More... | |
| struct | CallbackHandle |
| Unique identifier for a callback registration within a Scene. More... | |
| class | Constraint |
| Represents a constraint that restricts the degrees of freedom of one or more actors. More... | |
| struct | ConstraintHandle |
| Unique identifier for a Constraint within a Scene. More... | |
| struct | ConstraintParams |
| Base constraint parameters. More... | |
| struct | ContactParams |
| Parameters for contact mechanics simulation. More... | |
| struct | ContactPoint |
| Information about a contact point between two actors. More... | |
| class | Context |
| Main entry point for SuperDex Physics simulation. More... | |
| struct | CoordinateSpace |
| Coordinate-axis convention and linear unit scale. More... | |
| class | DebugDraw |
| Manages debug visualization features for a scene. More... | |
| struct | DebugDrawData |
| Collection of debug draw primitives. More... | |
| struct | DebugDrawLineVertices |
| Line primitives for debug visualization. More... | |
| struct | DebugDrawSpheres |
| Sphere primitives for debug visualization. More... | |
| class | DebugServer |
| Server API to enable remote debugging and visualization. More... | |
| class | DefaultAllocator |
| Mochi's default implementation of the Allocator interface. More... | |
| struct | DeformableNodePositionConstraintParams |
| Parameters for creating a position constraint on a deformable actor node. More... | |
| struct | DeformableNodeToDeformableNodeConstraintParams |
| Parameters for creating a constraint coupling a node in a deformable actor to a node in another deformable actor. More... | |
| struct | DeformableNodeToRigidConstraintParams |
| Parameters for creating a constraint coupling a deformable node to a rigid actor. More... | |
| class | DynamicArray |
| A dynamically resizable array with syntax and behavior similar to std::pmr::vector. More... | |
| class | Error |
| class | ErrorAssert |
| class | ErrorLog |
| struct | ExperimentalEvalParams |
| [Experimental] Evaluation settings common to the full scene. More... | |
| struct | GridSdfData |
| Data for a pre-computed SDF grid. More... | |
| struct | GridSdfDataView |
| A non-owning view of precomputed grid-based signed-distance-field data. More... | |
| struct | GridSdfParams |
| Parameters controlling the resolution of grid-based Signed Distance Fields (SDF). More... | |
| struct | Handle |
| Generic 64-bit handle providing base functionality for strongly-typed handles. More... | |
| struct | Int2Hash |
| struct | Int2Less |
| struct | Int3SortAndCompare |
| struct | Int3SortAndHash |
| struct | IsNdArray |
| struct | IsNdArray< NdArray< T, D0, DIMS... > > |
| struct | IsResizeNoInitSafe |
| Trait to determine if a type is safe for use with DynamicArray::resize_noinit. More... | |
| struct | JointRotationRangeConstraintParams |
| Parameters for creating a joint rotation range constraint between two rigid actors. More... | |
| struct | JointRotationTrackingConstraintParams |
| Parameters for creating a joint rotation tracking constraint between two rigid actors. More... | |
| struct | LinearElasticMaterialParams |
| Parameters for the Linear Elastic (Hookean) material model. More... | |
| struct | LinearSolverParams |
| Parameters for the linear solve performed in each iteration of the non-linear solver. More... | |
| class | MatrixTransformRT |
| struct | MeshData |
| Mesh data for a Mochi actor or model file. More... | |
| struct | MeshDataView |
| A non-owning view of the mesh data for a Mochi actor or model file. More... | |
| struct | ModelData |
| The contents of a Mochi model file. More... | |
| struct | ModelDataView |
| A non-owning view of the contents of a Mochi model file. More... | |
| class | NdArray |
| struct | NodeContactForce |
| Contact force applied to a specific node. More... | |
| struct | NonLinearSolverParams |
| Parameters for the non-linear solver. More... | |
| class | Obb |
| struct | PerElementSoftMaterialData |
| Per-element material parameters for a soft body in struct-of-arrays format. More... | |
| struct | PerElementSoftMaterialDataView |
| Non-owning view of per-element material parameters for a soft body, in struct-of-arrays format. More... | |
| struct | PerformanceStats |
| Timing and profiling metrics from the last simulation step. More... | |
| class | Plane |
| struct | PoseConstraintInfo |
| Information about a single pose constraint in a pose controller. More... | |
| struct | PoseControllerParams |
| Parameters to create a pose controller for an articulated actor. More... | |
| struct | PoseTrackingParams |
| Parameters for pose controller tracking constraints. More... | |
| struct | PrefabHandle |
| Runtime handle to a loaded nested prefab (the resolved target of a prefab::PrefabReference). More... | |
| class | Quaternion |
| struct | QueryHandle |
| Unique identifier for a query within a Scene. More... | |
| struct | RecenteringParams |
| Parameters controlling recentering behavior for soft actors (not soft-skinned). More... | |
| struct | RecordingParams |
| Parameters controlling what data gets included in a scene recording. More... | |
| struct | RigidActorParams |
| Parameters to create a rigid body actor. More... | |
| struct | RigidPivotPositionConstraintParams |
| Parameters for creating a position constraint on a rigid actor's pivot point. More... | |
| struct | RigidPivotRotationConstraintParams |
| Parameters for creating a rotation constraint on a rigid actor's pivot frame. More... | |
| struct | RigidPivotToRigidTargetConstraintParams |
| Parameters for creating a constraint on a rigid actor's pivot point. More... | |
| struct | RigidPrismaticJointConstraintParams |
| Parameters for creating a prismatic joint between two rigid actors. More... | |
| struct | RigidSphericalJointConstraintParams |
| Parameters for creating a spherical joint between two rigid actors. More... | |
| struct | RodElementRotationToRigidConstraintParams |
| Parameters for creating a tracking constraint on the relative rotation between a rigid actor and a rod element. More... | |
| struct | RoutingElement |
| One ordered element in a spatial tendon's heterogeneous routing list. More... | |
| struct | SaturationHessianParams |
| [Experimental] Controls whether force-saturation terms use a fitted quadratic Hessian independently for each saturation pathway. More... | |
| class | Scene |
| Represents a simulation scene. More... | |
| struct | SceneHandle |
| Unique identifier for a Scene within a Context. More... | |
| struct | SdfDistances |
| SDF distance information for active contact sample points. More... | |
| struct | ShapeHandle |
| Handle to a shape (mesh, sphere, plane, etc.) within a Context. More... | |
| class | Simd |
| class | Simd< T, N > |
| class | Simd< T, N, std::enable_if_t<(N > kSimdDefaultSize< T > &&Simd< T >::kIsSupported), SimdConcept > > |
| Simd partial specialization for larger values of N. More... | |
| struct | SimdConcept |
| struct | SkinningData |
| Skinning data for a Mochi mesh. More... | |
| struct | SkinningDataView |
| A non-owning view of the skinning data for a Mochi mesh. More... | |
| struct | SmithNeoHookeanMaterialParams |
| Parameters for the stable Neo-Hookean hyperelastic material model by Smith et al. More... | |
| struct | SoftActorParams |
| Parameters to create a soft deformable actor. More... | |
| struct | SoftMaterialParams |
| Material parameters for soft body simulation. More... | |
| struct | SoftSkinnedActorParams |
| Parameters to create soft-skinned actors with a shared articulated skeleton. More... | |
| struct | SolverParams |
| Simulation solver configuration parameters. More... | |
| struct | SolverStats |
| Solver convergence metrics from the last simulation step. More... | |
| class | Span |
| class | Sphere |
| struct | StateHandle |
| Unique identifier for a captured simulation state within a Scene. More... | |
| struct | StepInfo |
| Information passed to per-step callbacks. More... | |
| class | StlAllocator |
| struct | StVenantKirchhoffMaterialParams |
| Parameters for the Saint Venant-Kirchhoff (StVK) hyperelastic material model. More... | |
| struct | TetFaces |
| class | TransformRT |
| struct | Void |
| Empty object when no value is needed. More... | |
Concepts | |
| concept | ConvertibleTo |
| concept | HasDistance |
| concept | IsArithmetic |
| concept | IsConst |
| concept | IsHalf |
| concept | IsInvokableWithRaw |
| concept | IsNonConst |
| concept | IsNotVoidObject |
| concept | IsPrimitiveShape |
| concept | IsSdfBv |
| concept | IsSimd |
| concept | IsSimdSupportedType |
Typedefs | |
| using | Color = NdArray<uint8_t, 4> |
| RGBA color representation using 4 bytes (0-255 per channel) in RGBA order. | |
| using | Double2 = NdArray<double, 2> |
| using | Double3 = NdArray<double, 3> |
| using | Double4 = NdArray<double, 4> |
| using | DynamicString = std::basic_string<char, std::char_traits<char>, StlAllocator<char>> |
| Alias for std::string using a polymorphic superdex::Allocator pointer. | |
| using | Float2 = NdArray<float, 2> |
| using | Float3 = NdArray<float, 3> |
| using | Float4 = NdArray<float, 4> |
| using | Int2 = NdArray<int, 2> |
| using | Int3 = NdArray<int, 3> |
| using | Int4 = NdArray<int, 4> |
| using | LogFn = std::function<void(LogChannel, char const* message, char const* file, int line)> |
| using | Matrix2x2f = NdArray<float, 2, 2> |
| using | Matrix2x2r = NdArray<real, 2, 2> |
| using | Matrix2x3f = NdArray<float, 2, 3> |
| using | Matrix2x3r = NdArray<real, 2, 3> |
| using | Matrix3x2f = NdArray<float, 3, 2> |
| using | Matrix3x2r = NdArray<real, 3, 2> |
| using | Matrix3x3f = NdArray<float, 3, 3> |
| using | Matrix3x3r = NdArray<real, 3, 3> |
| using | Matrix4x3f = NdArray<float, 4, 3> |
| using | Matrix4x3r = NdArray<real, 4, 3> |
| using | Matrix4x4f = NdArray<float, 4, 4> |
| using | Matrix4x4r = NdArray<real, 4, 4> |
| using | NeoHookeanMaterialParams = SmithNeoHookeanMaterialParams |
| using | OnAssertFn |
| Callback invoked when an assertion fails. | |
| using | real = float |
| using | Real1 = NdArray<real, 1> |
| using | Real2 = NdArray<real, 2> |
| using | Real3 = NdArray<real, 3> |
| using | Real4 = NdArray<real, 4> |
| using | Real5 = NdArray<real, 5> |
| using | Real6 = NdArray<real, 6> |
| using | Tensor3x3x3f = NdArray<float, 3, 3, 3> |
| using | Tensor3x3x3r = NdArray<real, 3, 3, 3> |
| using | Tensor3x3x3x3f = NdArray<float, 3, 3, 3, 3> |
| using | Tensor3x3x3x3r = NdArray<real, 3, 3, 3, 3> |
| using | Vec2d = Simd<double, 2> |
| using | Vec2l = Simd<int64_t, 2> |
| using | Vec4d = Simd<double, 4> |
| using | Vec4f = Simd<float, 4> |
| using | Vec4i = Simd<int, 4> |
| using | Vec4l = Simd<int64_t, 4> |
| using | Vec4r = Simd<real, 4> |
| using | Vec8d = Simd<double, 8> |
| using | Vec8f = Simd<float, 8> |
| using | Vec8i = Simd<int, 8> |
| using | Vec8l = Simd<int64_t, 8> |
| using | Vec8r = Simd<real, 8> |
| using | VMatrix2x2f = Simd<float, 4> |
| using | VMatrix2x2r = Simd<real, 4> |
| Special case for the SIMD representation of a 2x2 matrix. | |
| using | VMatrix2x3f = NdArray<Simd<float, 4>, 2> |
| using | VMatrix2x3r = NdArray<Simd<real, 4>, 2> |
| using | VMatrix2x4f = NdArray<Simd<float, 4>, 2> |
| using | VMatrix2x4r = NdArray<Simd<real, 4>, 2> |
| using | VMatrix3x2f = NdArray<Simd<float, 4>, 3> |
| using | VMatrix3x2r = NdArray<Simd<real, 4>, 3> |
| SIMD representation of a NxM matrices. | |
| using | VMatrix3x3d = NdArray<Simd<double, 4>, 3> |
| using | VMatrix3x3f = NdArray<Simd<float, 4>, 3> |
| using | VMatrix3x3r = NdArray<Simd<real, 4>, 3> |
| using | VMatrix3x4f = NdArray<Simd<float, 4>, 3> |
| using | VMatrix3x4r = NdArray<Simd<real, 4>, 3> |
| using | VMatrix4x3f = NdArray<Simd<float, 4>, 4> |
| using | VMatrix4x3r = NdArray<Simd<real, 4>, 4> |
| using | VMatrix4x4f = NdArray<Simd<float, 4>, 4> |
| using | VMatrix4x4r = NdArray<Simd<real, 4>, 4> |
| using | VSymMatrix2x2f = Simd<float, 4> |
| using | VSymMatrix2x2r = Simd<real, 4> |
| Special case for the SIMD representation of a 2x2 symmetric matrix. | |
| using | VSymMatrix3x3f = NdArray<Simd<float, 4>, 2> |
| using | VSymMatrix3x3r = NdArray<Simd<real, 4>, 2> |
| Special case for the SIMD representation of a 3x3 symmetric matrix. | |
| using | VTensor3x3x3f = NdArray<Simd<float, 4>, 3, 3> |
| using | VTensor3x3x3r = NdArray<Simd<real, 4>, 3, 3> |
| using | VTensor3x3x3x3f = NdArray<Simd<float, 4>, 3, 3, 3> |
| using | VTensor3x3x3x3r = NdArray<Simd<real, 4>, 3, 3, 3> |
| SIMD representation of tensors. | |
| using | VTensor4x3x3r = NdArray<Simd<real, 4>, 4, 3> |
Enumerations | |
| enum class | ActorBoundaryElementType { P1Q1 , P1Q3 , P1Q6 , ExperimentalP1Q7 , ExperimentalP1Q12 , ExperimentalP1Q16 , Count , Default = P1Q3 } |
| Two-dimensional discretization element types for actor boundary integrals. More... | |
| enum class | ActorSegmentElementType { P1Q1 , P1Q2 , P1Q3 , Count , Default = P1Q3 } |
| One-dimensional discretization element types for actor segment integrals. More... | |
| enum class | ActorType { None , Rigid , Soft , Articulated , Shell , Rod , Count } |
| Type of actor. More... | |
| enum class | ArticulatedJointType { Free , Prismatic , Revolute , Spherical , Hard , Cycle , Count , Invalid = Count } |
| Types of joints in an articulated body. More... | |
| enum class | BoundarySubsamplingStrategy { UniformProbability = 0 , AreaProportional = 1 , Count = 2 } |
| Strategy for selecting the active boundary faces when subsampling boundary integrals. More... | |
| enum class | ColliderType { None , Auto , Sphere , Box , Mesh , Plane , Sdf , PointCloud , Count } |
| Collision detection geometry for an Actor. More... | |
| enum class | ConceptMatch { True } |
| enum class | ConstraintType { None , ArticulatedSingleDofRange , Articulated3dRotationRange , ArticulatedSingleDofTarget , Articulated3dRotationTarget , JointRotationRange , JointRotationTracking , RigidPivotPosition , RigidPivotToRigidTarget , RigidPivotRotation , RigidPrismaticJoint , RigidSphericalJoint , DeformableNodePosition , DeformableNodeToRigid , DeformableNodeToDeformableNode , RodElementRotationToRigid , Count } |
| Type of constraint acting on actors' degrees of freedom. More... | |
| enum struct | ConvergenceStatus { None , Converged , Stopped , Diverged , Count } |
| Convergence status of the non-linear solver. More... | |
| enum class | CoordinateSpaceAxes : uint16_t { Right , Left , Up , Down , Forward , Backward , RUF = Right << 0 | Up << 3 | Forward << 6 , RUB = Right << 0 | Up << 3 | Backward << 6 , RDF = Right << 0 | Down << 3 | Forward << 6 , RDB = Right << 0 | Down << 3 | Backward << 6 , LUF = Left << 0 | Up << 3 | Forward << 6 , LUB = Left << 0 | Up << 3 | Backward << 6 , LDF = Left << 0 | Down << 3 | Forward << 6 , LDB = Left << 0 | Down << 3 | Backward << 6 , RFU = Right << 0 | Forward << 3 | Up << 6 , RFD = Right << 0 | Forward << 3 | Down << 6 , RBU = Right << 0 | Backward << 3 | Up << 6 , RBD = Right << 0 | Backward << 3 | Down << 6 , LFU = Left << 0 | Forward << 3 | Up << 6 , LFD = Left << 0 | Forward << 3 | Down << 6 , LBU = Left << 0 | Backward << 3 | Up << 6 , LBD = Left << 0 | Backward << 3 | Down << 6 , URF = Up << 0 | Right << 3 | Forward << 6 , URB = Up << 0 | Right << 3 | Backward << 6 , ULF = Up << 0 | Left << 3 | Forward << 6 , ULB = Up << 0 | Left << 3 | Backward << 6 , DRF = Down << 0 | Right << 3 | Forward << 6 , DRB = Down << 0 | Right << 3 | Backward << 6 , DLF = Down << 0 | Left << 3 | Forward << 6 , DLB = Down << 0 | Left << 3 | Backward << 6 , UFR = Up << 0 | Forward << 3 | Right << 6 , UFL = Up << 0 | Forward << 3 | Left << 6 , UBR = Up << 0 | Backward << 3 | Right << 6 , UBL = Up << 0 | Backward << 3 | Left << 6 , DFR = Down << 0 | Forward << 3 | Right << 6 , DFL = Down << 0 | Forward << 3 | Left << 6 , DBR = Down << 0 | Backward << 3 | Right << 6 , DBL = Down << 0 | Backward << 3 | Left << 6 , FRU = Forward << 0 | Right << 3 | Up << 6 , FRD = Forward << 0 | Right << 3 | Down << 6 , FLU = Forward << 0 | Left << 3 | Up << 6 , FLD = Forward << 0 | Left << 3 | Down << 6 , BRU = Backward << 0 | Right << 3 | Up << 6 , BRD = Backward << 0 | Right << 3 | Down << 6 , BLU = Backward << 0 | Left << 3 | Up << 6 , BLD = Backward << 0 | Left << 3 | Down << 6 , FUR = Forward << 0 | Up << 3 | Right << 6 , FUL = Forward << 0 | Up << 3 | Left << 6 , FDR = Forward << 0 | Down << 3 | Right << 6 , FDL = Forward << 0 | Down << 3 | Left << 6 , BUR = Backward << 0 | Up << 3 | Right << 6 , BUL = Backward << 0 | Up << 3 | Left << 6 , BDR = Backward << 0 | Down << 3 | Right << 6 , BDL = Backward << 0 | Down << 3 | Left << 6 , Default = FLU } |
| Combination of axis directions for a coordinate space convention. More... | |
| enum class | CoulombFrictionModel { C1Regularized , CinfRegularized , Count , Default = C1Regularized } |
| Selects which Coulomb friction smoothing model to use. More... | |
| enum class | FileFormat { JSON , H5 , Count } |
| enum struct | GridSdfResolutionMode { LargestAxis , SmallestAxis , MeanAxis , LargestEdge , SmallestEdge , MeanEdge , Explicit , Count } |
| The maximum voxel size for an SDF will be determined by one of these measurements scaled by GridSdfParams::resolutionDelta. More... | |
| enum class | IncludeNestedActors { No , Yes , Count } |
| Specifies whether actor-contact filtering also applies to nested actors. More... | |
| enum struct | IntegrationMethod { BackwardEuler , BDF2 , BDF3 , DIRK22 , DIRK23 , DIRK33 , SymplecticDIRK12 , SymplecticDIRK22 , Count , Default = BackwardEuler } |
| Time integration methods. More... | |
| enum struct | LinearSolverConvergenceNorm { ResidualL2 , PreconditionedResidualL2 , ResidualPreconditionerInduced , Count , Default = PreconditionedResidualL2 } |
| Norm types for the stopping criteria of the linear solver. More... | |
| enum struct | LinearSolverType { CG , GMRES , CudaCG , CudaGMRES , AugmentedCG , LDLT , LU , AsyncCG , ParallelCG , MINRES , ExperimentalCudaSparseCholesky , ExperimentalCudaSparseLDLT , ExperimentalCudaSparseLU , Auto , Count , Default = Auto } |
| Linear solver types. More... | |
| enum struct | LinearToleranceStrategy { Constant , EisenstatWalker1 , EisenstatWalker2 , EisenstatWalker3 , Count , Default = EisenstatWalker2 } |
| Strategies to select the relative tolerance of the linear solver (aka forcing term). More... | |
| enum struct | LineSearchType { None , Simple , Armijo , WolfeWeak , WolfeStrong , ResidualNorm , ArmijoOrResidualNorm , Count , Default = ResidualNorm } |
| Line search methods for the non-linear solver. More... | |
| enum class | LogChannel { Verbose , Info , Warning , Error , Count } |
| enum struct | MaterialPsdStrategy { MaterialDefault , None , Projection , Fast , AbsEigenProjection , PerTermProjection , Count } |
| Strategy for ensuring positive semi-definite (PSD) Hessian matrices in material models. More... | |
| enum class | MeshFileType { Legacy , PLY , OFF , STL , OBJ , Count } |
| Mesh file format hint for Context::LoadShapeFromBytes and model-loading APIs that read from byte buffers. More... | |
| enum struct | NonLinearSolverConvergenceMode { Global , PerActorWeighted , Count , Default = PerActorWeighted } |
| Convergence monitoring mode for the non-linear solver residual. More... | |
| enum struct | NonLinearSolverType { Newton , BFGS , SR1 , Count , Default = Newton } |
| Non-linear solver types. More... | |
| enum class | PoseConstraintType { Joint = 0 , LinkTranslation = 1 , LinkRotation = 2 , Count , Invalid = 255 } |
| Type of constraint in an articulated pose controller. More... | |
| enum struct | PreconditionerType { None , Jacobi , BlockJacobi , SSOR , BlockSSOR , LU , AMG , SymInverse , LDLT , ILU0 , IC0 , PerActor , ColoredSSOR , Count , Default = PerActor } |
| Preconditioner types for the linear solver. More... | |
| enum class | PsdProjectionMode { Never , Always , IfFailRetry , IfFailAlways , Count , Default = Always } |
| Positive Semi-Definite (PSD) projection modes for the dresidual matrix. More... | |
| enum class | QueryType { NodePositions , ElementsDeformationGradient , SurfaceNodePositions , SurfaceNodeNormals , VisualNodePositions , VisualNodeNormals , ContactPoints , ElasticEnergy , NodeContactForces , ConstraintForce , ArticulatedControllerForce , SdfDistances , TotalContactForce , Count } |
| Type of query data to compute for an actor or constraint. More... | |
| enum class | RoutingElementType { Waypoint , LinearJoint } |
| Selects how a RoutingElement contributes to a spatial tendon's routing. More... | |
| enum struct | SoftMaterialType { NeoHookean = 0 , StVenantKirchhoff = 1 , LinearElastic = 2 , ActiveNeoHookean = 3 , ActiveShapeTargetingArap = 4 , Arap = 5 , Count = 6 } |
| Material constitutive models for soft bodies. More... | |
| enum struct | VerbosityLevel { Silent = 0 , Error = 1 , Warning = 2 , Verbose = 3 , Count = 4 } |
| Verbosity levels for solvers and optimizers. More... | |
Functions | |
| template<class T, int N> | |
| Simd< T, N > | Abs (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | Abs (T a) |
| template<class T, int N> | |
| Simd< T, N > | ACos (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | ACos (T a) |
| template<int COUNT = -1, class T, int N> | |
| bool | AllTrue (Simd< T, N > a) |
| template<typename T> | |
| bool | AllTrue (T const &a) |
| template<int COUNT = -1, class T, int N> | |
| bool | AnyTrue (Simd< T, N > a) |
| template<typename T> | |
| bool | AnyTrue (T const &a) |
| template<typename T, typename InBeginIterator, typename InEndIterator> | |
| void | Append (DynamicArray< T > &out, InBeginIterator const &inBegin, InEndIterator const &inEnd) |
| Utility Functions. | |
| template<typename T, typename InContainer> | |
| void | Append (DynamicArray< T > &out, InContainer const &inContainer) |
| template<typename T, typename ContainerIn> | |
| void | AppendSum (DynamicArray< T > &out, ContainerIn const &in, T valueToAdd) |
| template<typename T, size_t N> | |
| constexpr size_t | ArgMax (NdArray< T, N > const &a) |
| template<typename T, size_t N> | |
| constexpr size_t | ArgMin (NdArray< T, N > const &a) |
| template<class T, int N> | |
| Simd< T, N > | ASin (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | ASin (T a) |
| template<class T, int N> | |
| Simd< T, N > | ATan (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | ATan (T a) |
| template<typename T> | |
| constexpr T | ATan2 (T y, T x) |
| template<typename T, int N> | |
| constexpr NdArray< T, N > | BasisVector (int axis) |
| template<int x, int y, int z, int w, class T, int N> | |
| Simd< T, N > | Blend (Simd< T, N > a, Simd< T, N > b) |
| template<int x, int y, class T, int N> | |
| Simd< T, N > | Blend (Simd< T, N > a, Simd< T, N > b) |
| template<int i, class T, int N> | |
| Simd< T, N > | Broadcast (Simd< T, N > v) |
| template<class T, int N> | |
| Simd< T, N > | Broadcast (Simd< T, N > v, int i) |
| template<class V, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| V | Broadcast (typename V::Scalar a) |
| template<class V, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| V | Broadcast (typename V::Scalar const *ptr) |
| template<class V, int N, std::enable_if_t< IsSimd< V > &&N > = 3, superdex::ConceptMatch> | |
| NdArray< V, 3 > | Broadcast3 (Simd< typename V::Scalar, N > const &a) |
| template<class V, size_t D0, int D1, std::enable_if_t< IsSimd< V > &&D0 > = 3 && D1 >= 3, superdex::ConceptMatch> | |
| NdArray< V, 3, 3 > | Broadcast3x3 (NdArray< Simd< typename V::Scalar, D1 >, D0 > const &a) |
| template<class V, size_t D0, size_t... DIMS, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| NdArray< V, D0, DIMS... > | BroadcastEach (NdArray< typename V::Scalar, D0, DIMS... > const &a) |
| template<class V, int N, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| NdArray< V, N > | BroadcastEach (Simd< typename V::Scalar, N > const &a) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Ceil (NdArray< T, N > const &a) |
| template<typename T> | |
| constexpr T | Ceil (T a) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Clamp (NdArray< T, N > const &a, NdArray< T, N > const &min, NdArray< T, N > const &max) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Clamp (NdArray< T, N > const &a, T min, T max) |
| template<typename ValT, typename MinT, typename MaxT> | |
| constexpr ValT | Clamp (ValT value, MinT min, MaxT max) |
| template<typename T> | |
| constexpr NdArray< T, 2, 2 > | Cofactor (NdArray< T, 2, 2 > const &mat) |
| template<typename T> | |
| constexpr NdArray< T, 3, 3 > | Cofactor (NdArray< T, 3, 3 > const &mat) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3 > | Cofactor3x3 (NdArray< Simd< T, 4 >, 3 > const &mat) |
| template<typename T> | |
| constexpr void | Cofactor4x4 (T const m[16], T adjOut[16]) |
| template<typename T> | |
| Simd< T, 4 > | CofactorSym2x2 (Simd< T, 4 > const &mat) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 2 > | CofactorSym3x3 (NdArray< Simd< T, 4 >, 2 > const &mat) |
| template<typename T, size_t N, size_t M> | |
| constexpr T | Colon (NdArray< T, N, M > const &A, NdArray< T, N, M > const &B) |
| template<typename T> | |
| T | Colon3x3 (NdArray< Simd< T, 4 >, 3 > const &A, NdArray< Simd< T, 4 >, 3 > const &B) |
| Quaternion | Conjugate (Quaternion const &a) |
| template<class T, int N> | |
| Simd< T, N > | Cos (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | Cos (T a) |
| Context * | CreateContext (int numWorkerThreads=-1) |
| Initialize SuperDex Physics by creating a Context object. | |
| template<typename T> | |
| constexpr NdArray< T, 3 > | Cross (NdArray< T, 3 > const &a, NdArray< T, 3 > const &b) |
| template<class T, int N> | |
| Simd< T, N > | Cross3 (Simd< T, N > a, Simd< T, N > b) |
| std::pair< Real3, TransformRT > | DecomposeMatrixTransform (VMatrix4x4r const &matrixTransform) |
| template<class T, class A> | |
| void | Delete (A *allocator, T *ptr) |
| Destroy and deallocate an object that was created via New<T>. | |
| void | DestroyContext (Context *context) |
| Shut down SuperDex Physics by destroying the Context object. | |
| template<typename T> | |
| constexpr T | Det (NdArray< T, 2, 2 > const &A) |
| template<typename T> | |
| constexpr T | Det (NdArray< T, 3, 3 > const &A) |
| template<typename T> | |
| constexpr T | Det (NdArray< T, 4, 4 > const &A) |
| template<typename T> | |
| T | Det2x2 (Simd< T, 4 > const &A) |
| template<typename T, size_t N> | |
| T | Det3x3 (NdArray< Simd< T, 4 >, N > const &A) |
| template<typename T> | |
| constexpr T | Det4x4 (T const m[16]) |
| template<size_t N, typename T> | |
| constexpr NdArray< T, N, N > | DiagonalMatrix (NdArray< T, N > const &diagonalVector) |
| template<size_t N, typename T> | |
| constexpr NdArray< T, N, N > | DiagonalMatrix (T valueOnDiagonal) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N, N > | DNormalize (NdArray< T, N > const &v) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N, N > | DNormalize (NdArray< T, N > const &v, T sqrNorm) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3 > | DNormalize3 (Simd< T, 4 > const &v) |
| template<typename T> | |
| constexpr NdArray< T, 3, 3 > | Dot (NdArray< T, 3, 3 > const &a, NdArray< T, 3, 3 > const &b) |
| template<typename T, size_t N> | |
| constexpr T | Dot (NdArray< T, N > const &a, NdArray< T, N > const &b) |
| template<typename T, size_t N, size_t M, size_t L> | |
| constexpr NdArray< T, N, L > | Dot (NdArray< T, N, M > const &a, NdArray< T, M, L > const &B) |
| template<int COUNT = -1, class T, int N> | |
| T | Dot (Simd< T, N > a, Simd< T, N > b) |
| template<typename T, size_t N> | |
| constexpr T | Dot (Span< T const > a, NdArray< T, N > const &b) |
| template<typename T> | |
| constexpr T | Dot (Span< T const > a, Span< T const > b) |
| template<typename T> | |
| Simd< T, 4 > | Dot2x2 (Simd< T, 4 > const &a, Simd< T, 4 > const &b) |
| template<typename T, size_t D0A, size_t D0B> | |
| NdArray< Simd< T, 4 >, 3 > | Dot3x3 (NdArray< Simd< T, 4 >, D0A > const &a, NdArray< Simd< T, 4 >, D0B > const &b) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 4 > | Dot4x4 (NdArray< Simd< T, 4 >, 4 > const &a, NdArray< Simd< T, 4 >, 4 > const &b) |
| template<typename T> | |
| constexpr NdArray< T, 3 > | DotMatVec (NdArray< T, 3, 3 > const &a, NdArray< T, 3 > const &b) |
| template<typename T, size_t N, size_t M> | |
| constexpr NdArray< T, N > | DotMatVec (NdArray< T, N, M > const &a, NdArray< T, M > const &b) |
| template<typename T, size_t N, size_t M> | |
| constexpr NdArray< T, N > | DotMatVec (NdArray< T, N, M > const &a, Span< T const > b) |
| template<typename T, size_t N, size_t M> | |
| void | DotMatVec (NdArray< T, N, M > const &a, Span< T const > b, Span< T > out) |
| template<typename T, size_t D0> | |
| Simd< T, 4 > | DotMatVec3x3 (NdArray< Simd< T, 4 >, D0 > const &m, Simd< T, 4 > v) |
| template<size_t N, typename T, size_t D0> | |
| Simd< T, 4 > | DotMatVec3xN (NdArray< Simd< T, 4 >, D0 > const &m, Simd< T, 4 > v) |
| template<typename T> | |
| Simd< T, 4 > | DotMatVec4x4 (NdArray< Simd< T, 4 >, 4 > const &m, Simd< T, 4 > v) |
| template<typename T, size_t N, size_t M> | |
| constexpr NdArray< T, M > | DotVecMat (NdArray< T, N > const &a, NdArray< T, N, M > const &b) |
| template<typename T> | |
| Simd< T, 4 > | DotVecMat2x3 (Simd< T, 4 > v, NdArray< Simd< T, 4 >, 2 > const &m) |
| template<typename T, size_t D0> | |
| Simd< T, 4 > | DotVecMat3x3 (Simd< T, 4 > v, NdArray< Simd< T, 4 >, D0 > const &m) |
| template<typename T> | |
| Simd< T, 4 > | DotVecMat4x4 (Simd< T, 4 > a, NdArray< Simd< T, 4 >, 4 > const &b) |
| template<typename InputIt, std::enable_if_t<(std::is_base_of_v< std::input_iterator_tag, typename std::iterator_traits< InputIt >::iterator_category >), superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| DynamicArray (InputIt, InputIt, Allocator *=GetDefaultAllocator()) -> DynamicArray< typename std::iterator_traits< InputIt >::value_type > | |
| void | EnableLogChannel (LogChannel channel, bool enable) |
| template<int COUNT = -1, class T, int N> | |
| bool | Equal (Simd< T, N > a, Simd< T, N > b) |
| template<typename T> | |
| constexpr auto | Equal (T const &a, T const &b) |
| bool | EquivalentRotation (Quaternion const &a, Quaternion const &b, real epsilon=kDefaultNearEqualEpsilon< real >) |
| bool | EquivalentRotation (Quaternion const &a, Quaternion const &b, Vec4r epsilon) |
| template<class T, int N> | |
| Simd< T, N > | Exp (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | Exp (T a) |
| template<size_t N, typename T = real> | |
| constexpr NdArray< T, N, N > | Eye () |
| template<class T, int N> | |
| Simd< T, N > | FastRound (Simd< T, N > a) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Floor (NdArray< T, N > const &a) |
| template<class T, int N> | |
| Simd< T, N > | Floor (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | Floor (T a) |
| void | FlushLog () |
| std::string | Format () |
| std::string | Format (char const *format,...) |
| constexpr auto | FourthOrderEye () |
| constexpr auto | FourthOrderEyeSym () |
| template<int i, class T, int N> | |
| T | Get (Simd< T, N > v) |
| template<class T, int N> | |
| T | Get (Simd< T, N > v, int i) |
| template<class T, int N> | |
| T | Get0 (Simd< T, N > v) |
| Allocator * | GetDefaultAllocator () |
| Get an instance of the DefaultAllocator class. | |
| template<int iHalf, class T, int N> | |
| Simd< T, N/2 > | GetHalf (Simd< T, N > a) |
| LogFn | GetLogCallback () |
| Matrix3x3r | GetRotationMatrix (TransformRT const &transform) |
| Vec4r | GetRotationVector (TransformRT const &transform) |
| template<int COUNT = -1, class T, int N> | |
| T | HMax (Simd< T, N > a) |
| template<int COUNT = -1, class T, int N> | |
| T | HMin (Simd< T, N > a) |
| template<int COUNT = -1, class T, int N> | |
| T | HProd (Simd< T, N > a) |
| template<int COUNT = -1, class T, int N> | |
| T | HSum (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | IntegralSqrt (T a) |
| TransformRT | Interpolate (TransformRT const &a, TransformRT const &b, real t) |
| MatrixTransformRT | Invert (MatrixTransformRT const &a) |
| template<typename T> | |
| constexpr NdArray< T, 2, 2 > | Invert (NdArray< T, 2, 2 > const &a) |
| template<typename T> | |
| constexpr NdArray< T, 2, 2 > | Invert (NdArray< T, 2, 2 > const &a, T det) |
| template<typename T> | |
| constexpr NdArray< T, 3, 3 > | Invert (NdArray< T, 3, 3 > const &a) |
| template<typename T> | |
| constexpr NdArray< T, 3, 3 > | Invert (NdArray< T, 3, 3 > const &a, T det) |
| template<typename T> | |
| constexpr NdArray< T, 4, 4 > | Invert (NdArray< T, 4, 4 > const &A) |
| TransformRT | Invert (TransformRT const &a) |
| template<typename T> | |
| Simd< T, 4 > | Invert2x2 (Simd< T, 4 > const &mat, T det) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3 > | Invert3x3 (NdArray< Simd< T, 4 >, 3 > const &mat) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3 > | Invert3x3 (NdArray< Simd< T, 4 >, 3 > const &mat, Simd< T, 4 > det) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3 > | Invert3x3 (NdArray< Simd< T, 4 >, 3 > const &mat, T det) |
| template<typename T> | |
| constexpr NdArray< Simd< T, 4 >, 4 > | Invert4x4 (NdArray< Simd< T, 4 >, 4 > const &A) |
| template<typename T> | |
| constexpr void | InvertRowMajor4x4 (T const m[16], T invOut[16]) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 4 > | InvertTransformation (NdArray< Simd< T, 4 >, 4 > const &mat) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 4 > | InvertTransformationTransposed (NdArray< Simd< T, 4 >, 4 > const &mat) |
| template<typename T> | |
| constexpr Simd< T, 4 > | InvSkew3 (NdArray< Simd< T, 4 >, 3 > const &matrix) |
| constexpr auto | IouterI () |
| bool | IsDebuggerAttached () |
| Return true if we can detect that a debugger is attached to this process. | |
| template<class T, int DN, size_t D0, size_t... DIMS> | |
| bool | IsFinite (NdArray< Simd< T, DN >, D0, DIMS... > const &a) |
| template<class T, size_t D0, size_t... DIMS> | |
| bool | IsFinite (NdArray< T, D0, DIMS... > const &a) |
| bool | IsFinite (Quaternion const &q) |
| template<class T, int N> | |
| bool | IsFinite (Simd< T, N > a) |
| template<typename T, std::enable_if_t< std::is_arithmetic_v< T >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| bool | IsFinite (T a) |
| bool | IsFinite (TransformRT const &a) |
| template<typename T> | |
| constexpr int | isize (T const &a) |
| template<typename T, size_t N> | |
| constexpr int | isize (T const (&array)[N]) |
| bool | IsLogChannelEnabled (LogChannel channel) |
| template<typename T> | |
| constexpr bool | IsPowerOfTwo (T a) |
| template<int i, class T, int N> | |
| int | IsTrue (Simd< T, N > mask) |
| template<typename T, size_t D0, size_t D1> | |
| constexpr auto | LargestRow (NdArray< T, D0, D1 > const &A, T *sqrNorm=nullptr) |
| auto | LargestRowColSym2x2 (VSymMatrix2x2r A, Vec4r &outNormSqr) |
| auto | LargestRowColSym3x3 (VSymMatrix3x3r A, Vec4r &outNormSqr) |
| Quaternion | Lerp (Quaternion a, Quaternion b, real t) |
| template<typename T, typename Frac> | |
| constexpr T | Lerp (T a, T b, Frac t) |
| template<class T, int N> | |
| Simd< T, N > | Ln (Simd< T, N > a) |
| template<int N, class V, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| V | Load (typename V::Scalar const *ptr) |
| template<class V, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| V | Load (typename V::Scalar const *ptr) |
| template<class V, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| V | Load (typename V::Scalar const *ptr, int n) |
| template<class V, class I, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| V | LoadIndexed (typename V::Scalar const *ptr, Simd< I, V::kSize > indices) |
| template<size_t D0, size_t D1, typename T> | |
| void | LoadMatrix (NdArray< Simd< T, 4 >, D0 > &out, NdArray< T, D0, D1 > const &x) |
| template<size_t D0, size_t D1, typename T, typename ConstOrNonConstT> | |
| void | LoadMatrix (NdArray< Simd< T, 4 >, D0 > &out, Span< ConstOrNonConstT > x) |
| template<size_t D0, size_t D1, typename T> | |
| void | LoadMatrix (NdArray< Simd< T, 4 >, D0 > &out, T const *x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | LoadMatrix (NdArray< Simd< T, 4 >, D0, D1, D2 > &out, NdArray< T, D0, D1, D2, D3 > const &x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | LoadMatrix (NdArray< Simd< T, 4 >, D0, D1, D2 > &out, T const *x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | LoadSubmatrix (NdArray< Simd< T, 4 >, D0 > &out, Int2 coords, NdArray< T, D2, D3 > const &x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T, typename ConstOrNonConstT> | |
| void | LoadSubmatrix (NdArray< Simd< T, 4 >, D0 > &out, Int2 coords, Span< ConstOrNonConstT > x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | LoadSubmatrix (NdArray< Simd< T, 4 >, D0 > &out, Int2 coords, Span< T > x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | LoadSubmatrix (NdArray< Simd< T, 4 >, D0 > &out, Int2 coords, T const *x) |
| template<int kTupleCount = -1, class T, int N> | |
| void | LoadTransposed (T const *ptr, Simd< T, N > &out0, Simd< T, N > &out1, Simd< T, N > &out2) |
| template<int kTupleCount = -1, class V, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| void | LoadTransposed (typename V::Scalar const *ptr, NdArray< V, 3 > &out) |
| void | Log (LogChannel channel, std::string msg, char const *file, int line, bool newline) |
| constexpr Color | MakeColor (uint32_t rgba) |
| Creates a Color from a packed 32-bit RGBA value. | |
| constexpr Color | MakeColor (uint8_t r, uint8_t g, uint8_t b, uint8_t a=255) |
| Creates a Color from 4 unsigned bytes in RGBA order. | |
| template<typename ContainerT> | |
| auto | MakeConstSpan (ContainerT const &container) |
| template<typename T, typename S> | |
| Span< T const, S > | MakeConstSpan (Span< T, S > const &alreadyASpan) |
| template<typename T, size_t N> | |
| auto | MakeConstSpan (T(&arr)[N]) |
| template<typename T> | |
| Span< T const, size_t > | MakeSingletonConstSpan (T const &obj) |
| template<typename T> | |
| Span< T, size_t > | MakeSingletonSpan (T &obj) |
| template<typename ContainerT> | |
| auto | MakeSpan (ContainerT &container) |
| template<typename T, typename S> | |
| Span< T, S > const & | MakeSpan (Span< T, S > const &alreadyASpan) |
| template<typename T, size_t N> | |
| auto | MakeSpan (T(&arr)[N]) |
| template<typename T, size_t N> | |
| constexpr T | Max (NdArray< T, N > const &a) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Max (NdArray< T, N > const &a, NdArray< T, N > const &max) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Max (NdArray< T, N > const &a, T max) |
| template<class T, int N> | |
| Simd< T, N > | Max (Simd< T, N > a, Simd< T, N > b) |
| template<typename T, typename... More> | |
| constexpr T | Max (T a, T b, T c, More... args) |
| template<typename T> | |
| constexpr T const & | Max (T const &a, T const &b) |
| template<class ForwardIt> | |
| constexpr ForwardIt | MaxElement (ForwardIt first, ForwardIt last) |
| template<typename T, size_t N> | |
| constexpr T | Mean (NdArray< T, N > const &a) |
| template<typename T, size_t N> | |
| constexpr T | Min (NdArray< T, N > const &a) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Min (NdArray< T, N > const &a, NdArray< T, N > const &min) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Min (NdArray< T, N > const &a, T min) |
| template<class T, int N> | |
| Simd< T, N > | Min (Simd< T, N > a, Simd< T, N > b) |
| template<typename T, typename... More> | |
| constexpr T | Min (T a, T b, T c, More... args) |
| template<typename T> | |
| constexpr T const & | Min (T const &a, T const &b) |
| template<class ForwardIt> | |
| constexpr ForwardIt | MinElement (ForwardIt first, ForwardIt last) |
| template<typename T> | |
| constexpr T | Minor4x4 (T const m[16], int r0, int r1, int r2, int c0, int c1, int c2) |
| template<typename A, typename B, typename C> | |
| constexpr auto | MulAdd (A a, B b, C c) |
| template<class T, int N> | |
| Simd< T, N > | MulAdd (Simd< T, N > a, Simd< T, N > b, Simd< T, N > c) |
| template<typename A, typename B, typename C> | |
| constexpr auto | MulSub (A a, B b, C c) |
| template<class T, int N> | |
| Simd< T, N > | MulSub (Simd< T, N > a, Simd< T, N > b, Simd< T, N > c) |
| template<typename A> | |
| constexpr A | MultiplyConstexpr (A a) |
| template<typename A, typename... ARGS> | |
| constexpr A | MultiplyConstexpr (A a, ARGS... args) |
| bool | NearEqual (MatrixTransformRT const &a, MatrixTransformRT const &b, real epsilon=kDefaultNearEqualEpsilon< real >) |
| bool | NearEqual (MatrixTransformRT const &a, MatrixTransformRT const &b, Vec4r epsilon) |
| template<typename T, size_t D0, int D1> | |
| bool | NearEqual (NdArray< Simd< T, D1 >, D0 > const &a, NdArray< Simd< T, D1 >, D0 > const &b, T epsilon=kDefaultNearEqualEpsilon< T >) |
| template<typename T, typename Eps = T, size_t D0, size_t... DIMS> | |
| constexpr bool | NearEqual (NdArray< T, D0, DIMS... > const &a, NdArray< T, D0, DIMS... > const &b, Eps epsilon=kDefaultNearEqualEpsilon< T >) |
| bool | NearEqual (Quaternion const &a, Quaternion const &b, real epsilon=kDefaultNearEqualEpsilon< real >) |
| bool | NearEqual (Quaternion const &a, Quaternion const &b, Vec4r epsilon) |
| template<int COUNT = -1, class T, int N, class Eps = T> | |
| bool | NearEqual (Simd< T, N > a, Simd< T, N > b, Eps epsilon=kDefaultNearEqualEpsilon< Eps >) |
| template<typename T, std::enable_if_t< std::is_arithmetic_v< T >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| constexpr auto | NearEqual (T const &a, T const &b, T epsilon=kDefaultNearEqualEpsilon< T >) |
| bool | NearEqual (TransformRT const &a, TransformRT const &b, real epsilon=kDefaultNearEqualEpsilon< real >) |
| bool | NearEqual (TransformRT const &a, TransformRT const &b, Vec4r epsilon) |
| template<typename T, std::enable_if_t< std::is_arithmetic_v< T >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| constexpr auto | NearEqualRel (T const &a, T const &b, T epsilon=kDefaultNearEqualEpsilon< T >) |
| template<int COUNT = -1, class T, int N, class Eps = T> | |
| bool | NearZero (Simd< T, N > a, Eps epsilon=kDefaultNearEqualEpsilon< Eps >) |
| template<typename T, std::enable_if_t< std::is_arithmetic_v< T >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| constexpr auto | NearZero (T const &a, T epsilon=kDefaultNearEqualEpsilon< T >) |
| template<bool x, bool y, bool z, bool w, class T, int N> | |
| Simd< T, N > | Neg (Simd< T, N > a) |
| template<typename A, typename B, typename C> | |
| constexpr auto | NegMulAdd (A a, B b, C c) |
| template<class T, int N> | |
| Simd< T, N > | NegMulAdd (Simd< T, N > a, Simd< T, N > b, Simd< T, N > c) |
| template<typename A, typename B, typename C> | |
| constexpr auto | NegMulSub (A a, B b, C c) |
| template<class T, int N> | |
| Simd< T, N > | NegMulSub (Simd< T, N > a, Simd< T, N > b, Simd< T, N > c) |
| template<class T, class A, class... Args> | |
| T * | New (A *allocator, Args &&... args) |
| Create a new object of type T using memory allocated by a polymorphic Allocator. | |
| template<typename T> | |
| constexpr T | NextPowerOfTwo (T a) |
| template<typename T, size_t N> | |
| T | Norm (NdArray< T, N > const &a) |
| template<typename T, size_t N, size_t M> | |
| T | Norm (NdArray< T, N, M > const &a) |
| real | Norm (Quaternion a) |
| template<int COUNT = -1, class T, int N> | |
| T | Norm (Simd< T, N > a) |
| template<typename T, size_t D0, int D1, std::enable_if_t< D0 > = 3 && D1 >= 3, superdex::ConceptMatch> | |
| T | Norm3x3 (NdArray< Simd< T, D1 >, D0 > const &a) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Normalize (NdArray< T, N > const &a) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Normalize (NdArray< T, N > const &a, T sqrNorm) |
| Quaternion | Normalize (Quaternion a) |
| template<int COUNT = -1, class T, int N> | |
| Simd< T, N > | Normalize (Simd< T, N > a) |
| template<class T, int N> | |
| Simd< T, N > | Normalize (Simd< T, N > a, Simd< T, N > normSqr) |
| template<class T, int N> | |
| Simd< T, N > | Normalize (Simd< T, N > a, T normSqr) |
| TransformRT | NormalizeRotation (TransformRT const &a) |
| template<typename T, size_t N> | |
| constexpr T | NormSqr (NdArray< T, N > const &a) |
| template<typename T, size_t N, size_t M> | |
| constexpr T | NormSqr (NdArray< T, N, M > const &a) |
| real | NormSqr (Quaternion a) |
| template<int COUNT = -1, class T, int N> | |
| T | NormSqr (Simd< T, N > a) |
| template<typename T, size_t D0, int D1, std::enable_if_t< D0 > = 3 && D1 >= 3, superdex::ConceptMatch> | |
| T | NormSqr3x3 (NdArray< Simd< T, D1 >, D0 > const &a) |
| template<int COUNT = -1, class T, int N> | |
| bool | NotEqual (Simd< T, N > a, Simd< T, N > b) |
| template<typename T> | |
| constexpr auto | NotEqual (T const &a, T const &b) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr bool | operator!= (NdArray< Simd< T, 4 >, D0, DIMS... > const &lhs, NdArray< Simd< T, 4 >, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr bool | operator!= (NdArray< T, D0, DIMS... > const &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| constexpr real | operator""_r (long double val) |
| constexpr real | operator""_r (unsigned long long int val) |
| constexpr size_t | operator""_uz (unsigned long long int val) |
| constexpr ptrdiff_t | operator""_z (unsigned long long int val) |
| template<class T, int N> | |
| Simd< T, N > | operator&& (Simd< T, N > lhs, Simd< T, N > rhs) |
| template<class T, int N, class RHS> | |
| Simd< T, N > & | operator&= (Simd< T, N > &lhs, RHS rhs) |
| template<typename T, int N, size_t D0, size_t... DIMS> | |
| constexpr NdArray< Simd< T, N >, D0, DIMS... > | operator* (NdArray< Simd< T, N >, D0, DIMS... > const &lhs, T rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator* (NdArray< T, D0, DIMS... > const &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator* (NdArray< T, D0, DIMS... > const &lhs, T rhs) |
| Quaternion | operator* (Quaternion a, real b) |
| Quaternion | operator* (real a, Quaternion b) |
| template<class T, int N> | |
| auto | operator* (Simd< T, N > lhs, T rhs) |
| template<typename T, int N, size_t D0, size_t... DIMS> | |
| constexpr NdArray< Simd< T, N >, D0, DIMS... > | operator* (T lhs, NdArray< Simd< T, N >, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator* (T lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<class T, int N> | |
| auto | operator* (T lhs, Simd< T, N > rhs) |
| template<typename T, size_t D0, size_t... DIMS, typename AnyRHS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator*= (NdArray< T, D0, DIMS... > &lhs, AnyRHS const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator*= (NdArray< T, D0, DIMS... > &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator*= (NdArray< T, D0, DIMS... > &lhs, T rhs) |
| template<class T, int N, class RHS> | |
| Simd< T, N > & | operator*= (Simd< T, N > &lhs, RHS rhs) |
| template<typename T, int N, size_t D0, size_t... DIMS> | |
| constexpr NdArray< Simd< T, N >, D0, DIMS... > | operator+ (NdArray< Simd< T, N >, D0, DIMS... > const &lhs, T rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator+ (NdArray< T, D0, DIMS... > const &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator+ (NdArray< T, D0, DIMS... > const &lhs, T rhs) |
| template<class T, int N> | |
| auto | operator+ (Simd< T, N > lhs, T rhs) |
| template<typename T, int N, size_t D0, size_t... DIMS> | |
| constexpr NdArray< Simd< T, N >, D0, DIMS... > | operator+ (T lhs, NdArray< Simd< T, N >, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator+ (T lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<class T, int N> | |
| auto | operator+ (T lhs, Simd< T, N > rhs) |
| template<typename T, size_t D0, size_t... DIMS, typename AnyRHS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator+= (NdArray< T, D0, DIMS... > &lhs, AnyRHS const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator+= (NdArray< T, D0, DIMS... > &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator+= (NdArray< T, D0, DIMS... > &lhs, T rhs) |
| template<class T, int N, class RHS> | |
| Simd< T, N > & | operator+= (Simd< T, N > &lhs, RHS rhs) |
| template<typename T, int N, size_t D0, size_t... DIMS> | |
| constexpr NdArray< Simd< T, N >, D0, DIMS... > | operator- (NdArray< Simd< T, N >, D0, DIMS... > const &lhs, T rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator- (NdArray< T, D0, DIMS... > const &a) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator- (NdArray< T, D0, DIMS... > const &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator- (NdArray< T, D0, DIMS... > const &lhs, T rhs) |
| template<class T, int N> | |
| auto | operator- (Simd< T, N > lhs, T rhs) |
| template<typename T, int N, size_t D0, size_t... DIMS> | |
| constexpr NdArray< Simd< T, N >, D0, DIMS... > | operator- (T lhs, NdArray< Simd< T, N >, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator- (T lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<class T, int N> | |
| auto | operator- (T lhs, Simd< T, N > rhs) |
| template<typename T, size_t D0, size_t... DIMS, typename AnyRHS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator-= (NdArray< T, D0, DIMS... > &lhs, AnyRHS const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator-= (NdArray< T, D0, DIMS... > &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator-= (NdArray< T, D0, DIMS... > &lhs, T rhs) |
| template<class T, int N, class RHS> | |
| Simd< T, N > & | operator-= (Simd< T, N > &lhs, RHS rhs) |
| template<typename T, int N, size_t D0, size_t... DIMS> | |
| constexpr NdArray< Simd< T, N >, D0, DIMS... > | operator/ (NdArray< Simd< T, N >, D0, DIMS... > const &lhs, T rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator/ (NdArray< T, D0, DIMS... > const &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator/ (NdArray< T, D0, DIMS... > const &lhs, T rhs) |
| Quaternion | operator/ (Quaternion a, real b) |
| template<class T, int N> | |
| auto | operator/ (Simd< T, N > lhs, T rhs) |
| template<typename T, int N, size_t D0, size_t... DIMS> | |
| constexpr NdArray< Simd< T, N >, D0, DIMS... > | operator/ (T lhs, NdArray< Simd< T, N >, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > | operator/ (T lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<class T, int N> | |
| auto | operator/ (T lhs, Simd< T, N > rhs) |
| template<typename T, size_t D0, size_t... DIMS, typename AnyRHS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator/= (NdArray< T, D0, DIMS... > &lhs, AnyRHS const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator/= (NdArray< T, D0, DIMS... > &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr NdArray< T, D0, DIMS... > & | operator/= (NdArray< T, D0, DIMS... > &lhs, T rhs) |
| template<class T, int N, class RHS> | |
| Simd< T, N > & | operator/= (Simd< T, N > &lhs, RHS rhs) |
| template<typename T, size_t D0> | |
| constexpr bool | operator== (NdArray< Simd< T, 4 >, D0 > const &lhs, NdArray< Simd< T, 4 >, D0 > const &rhs) |
| template<typename T, size_t D0, size_t... DIMS> | |
| constexpr bool | operator== (NdArray< T, D0, DIMS... > const &lhs, NdArray< T, D0, DIMS... > const &rhs) |
| template<class T, int N, class RHS> | |
| Simd< T, N > & | operator^= (Simd< T, N > &lhs, RHS rhs) |
| template<class T, int N, class RHS> | |
| Simd< T, N > & | operator|= (Simd< T, N > &lhs, RHS rhs) |
| template<class T, int N> | |
| Simd< T, N > | operator|| (Simd< T, N > lhs, Simd< T, N > rhs) |
| template<typename T> | |
| constexpr NdArray< T, 2 > | OrthogonalVector (NdArray< T, 2 > const &vec) |
| template<typename T> | |
| constexpr NdArray< T, 3 > | OrthogonalVector (NdArray< T, 3 > const &vec) |
| template<typename T, int N> | |
| Simd< T, 4 > | OrthogonalVector3 (Simd< T, 4 > a) |
| template<class T> | |
| Simd< T, 4 > | OrthogonalVector3 (Simd< T, 4 > a) |
| template<typename T> | |
| constexpr NdArray< T, 2, 2 > | Outer (NdArray< T, 2 > const &a, NdArray< T, 2 > const &b) |
| template<typename T> | |
| constexpr NdArray< T, 3, 2 > | Outer (NdArray< T, 3 > const &a, NdArray< T, 2 > const &b) |
| template<typename T> | |
| constexpr NdArray< T, 3, 3 > | Outer (NdArray< T, 3 > const &a, NdArray< T, 3 > const &b) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 2, 2 > | Outer2 (Simd< T, 4 > const &a, Simd< T, 4 > const &b) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3, 3 > | Outer3 (NdArray< Simd< T, 4 >, 3 > const &mat, Simd< T, 4 > const &vec) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3, 3, 3 > | Outer3 (NdArray< Simd< T, 4 >, 3 > const &mat0, NdArray< Simd< T, 4 >, 3 > const &mat1) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3, 3, 3 > | Outer3 (NdArray< Simd< T, 4 >, 3, 3 > const &ten, Simd< T, 4 > const &vec) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3 > | Outer3 (Simd< T, 4 > a, Simd< T, 4 > b) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3, 3 > | Outer3 (Simd< T, 4 > const &vec, NdArray< Simd< T, 4 >, 3 > const &mat) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3, 3, 3 > | Outer3 (Simd< T, 4 > const &vec, NdArray< Simd< T, 4 >, 3, 3 > const &ten) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 2 > | OuterSym3 (Simd< T, 4 > a, Simd< T, 4 > b) |
| template<typename B, typename E> | |
| constexpr B | Pow (B base, E exp) |
| template<typename T, size_t N> | |
| constexpr T | Prod (NdArray< T, N > const &a) |
| template<typename T> | |
| void | PseudoInvert (NdArray< T, 3, 2 > const &a, NdArray< T, 2, 3 > *outInv, T *outDet) |
| Quaternion | QuaternionFromMatrix (Matrix3x3r const &matrix, real eps=1e-3_r) |
| Quaternion | QuaternionFromMatrix (VMatrix3x3r const &matrix, real eps=1e-3_r) |
| template<typename T> | |
| constexpr T | Rcp (T a) |
| template<class T, int N> | |
| Simd< T, N > | RcpApprox (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | RcpApprox (T a) |
| template<class T, int N> | |
| Simd< T, N > | RcpSqrtApprox (Simd< T, N > a) |
| template<typename T, size_t N, bool MinInclusiveT, bool MaxInclusiveT> | |
| constexpr NdArray< T, N > | Rect (NdArray< T, N > const &a, NdArray< T, N > const &min, NdArray< T, N > const &max, std::integral_constant< bool, MinInclusiveT > minInclusive=std::true_type{}, std::integral_constant< bool, MaxInclusiveT > maxInclusive=std::false_type{}) |
| template<typename ValT, typename MinT, typename MaxT, bool kMinInclusive, bool kMaxInclusive> | |
| constexpr ValT | Rect (ValT value, MinT min, MaxT max, std::integral_constant< bool, kMinInclusive >=std::true_type{}, std::integral_constant< bool, kMaxInclusive >=std::false_type{}) |
| template<typename T> | |
| constexpr T | Remap (T value, T inA, T inB, T outA, T outB) |
| template<typename T> | |
| constexpr T | RemapAndClamp (T value, T inA, T inB, T outA, T outB) |
| TransformRT | Repivot (TransformRT const &transform, Real3 const &pivot) |
| template<typename T, size_t N> | |
| constexpr NdArray< T, N > | Round (NdArray< T, N > const &a) |
| template<typename T> | |
| constexpr T | Round (T a) |
| template<typename T> | |
| constexpr T | RoundDown (T numToRound, T multiple) |
| template<typename T> | |
| constexpr T | RoundUp (T numToRound, T multiple) |
| template<typename T> | |
| constexpr T | Select (bool condition, T a, T b) |
| template<class T, int N, class MaskT> | |
| Simd< T, N > | Select (Simd< MaskT, N > conditionMask, Simd< T, N > a, Simd< T, N > b) |
| template<class V> | |
| V | Sequence () |
| template<class T, int N> | |
| Simd< T, N > | Set (Simd< T, N > a, int i, T value) |
| template<int i, class T, int N> | |
| Simd< T, N > | Set (Simd< T, N > a, T value) |
| void | SetLogCallback (LogFn fn) |
| void | SetRotationVector (Real3 const &rotVec, TransformRT &outTransform) |
| void | SetRotationVector (Vec4r const &rotVec, TransformRT &outTransform) |
| template<int kShift, class T, int N> | |
| Simd< T, N > | ShiftRight (Simd< T, N > a) |
| template<int x = 0, int y = 1, class T> | |
| Simd< T, 2 > | Shuffle (Simd< T, 2 > a) |
| template<int x = 0, int y = 1, int z = 2, int w = 3, class T> | |
| Simd< T, 4 > | Shuffle (Simd< T, 4 > a) |
| template<int x, int y, int z, int w, class T> | |
| Simd< T, 4 > | Shuffle (Simd< T, 4 > a, Simd< T, 4 > b) |
| template<typename T> | |
| constexpr T | Sign (T x) |
| template<typename T> | |
| constexpr T | SignedSqr (T a) |
| template<typename T> | |
| constexpr T | SignedSqrt (T a) |
| template<int i, class V = Vec4r> | |
| V | SimdBasisVector () |
| template<class V = Vec4r> | |
| V | SimdBasisVector (int axis) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 2 > | SimdFullToSym (NdArray< Simd< T, 4 >, 3 > const &m) |
| template<typename T> | |
| Simd< T, 4 > | SimdFullToSym (Simd< T, 4 > const &m) |
| template<class V, class... MoreBools> | |
| V | SimdMask (bool b0, bool b1, MoreBools... bs) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3 > | SimdSymToFull (NdArray< Simd< T, 4 >, 2 > const &m) |
| template<typename T> | |
| Simd< T, 4 > | SimdSymToFull (Simd< T, 4 > const &m) |
| template<class V = Vec4r> | |
| V | SimdZero () |
| template<class T, int N> | |
| Simd< T, N > | Sin (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | Sin (T a) |
| template<typename T> | |
| constexpr T | Sinc (T a) |
| template<class T, int N> | |
| std::pair< Simd< T, N >, Simd< T, N > > | SinCos (Simd< T, N > a) |
| template<typename T> | |
| constexpr NdArray< T, 3, 3 > | Skew (NdArray< T, 3 > const &v) |
| template<typename T> | |
| constexpr NdArray< Simd< T, 4 >, 3 > | Skew3 (Simd< T, 4 > const &vector) |
| Quaternion | Slerp (Quaternion a, Quaternion b, real t) |
| template<typename T> | |
| constexpr T | Sqr (T a) |
| template<class T, int N> | |
| Simd< T, N > | Sqrt (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | Sqrt (T a) |
| template<typename To, typename From, std::enable_if_t< std::is_arithmetic_v< From > &&std::is_arithmetic_v< To >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| constexpr To | StaticCast (From const &a) |
| template<class To, class From, std::enable_if_t< IsSimd< To > &&IsSimd< From >, superdex::ConceptMatch >> | |
| To | StaticCast (From const &a) |
| template<class To, class FromT, int FromN> requires (IsSimd<To> && Simd<FromT, FromN>::kIsSupported) | |
| To | StaticCast (Simd< FromT, FromN > const &in) |
| template<class VecTo, class VecFrom, std::enable_if_t< IsSimd< VecTo > &&IsSimd< VecFrom >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| VecTo | StaticCast (VecFrom const &a) |
| StaticCast from one Simd type to another of the same size. | |
| template<int COUNT = -1, class T, int N> | |
| void | Store (T *ptr, Simd< T, N > a) |
| template<class T, int N> | |
| void | Store (T *ptr, Simd< T, N > a, int count) |
| template<size_t D0, size_t D1, typename T> | |
| void | StoreMatrix (NdArray< T, D0, D1 > &out, NdArray< Simd< T, 4 >, D0 > const &x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | StoreMatrix (NdArray< T, D0, D1, D2, D3 > &out, NdArray< Simd< T, 4 >, D0, D1, D2 > const &x) |
| template<size_t D0, size_t D1, typename T> | |
| void | StoreMatrix (Span< T > out, NdArray< Simd< T, 4 >, D0 > const &x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | StoreMatrix (T *out, NdArray< Simd< T, 4 >, D0, D1, D2 > const &x) |
| template<size_t D0, size_t D1, typename T> | |
| void | StoreMatrix (T *outData, NdArray< Simd< T, 4 >, D0 > const &x) |
| template<class T, int N, class MaskT> | |
| int | StoreSelected (T *ptr, Simd< MaskT, N > condition, Simd< T, N > values) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | StoreSubmatrix (NdArray< T, D2, D3 > &out, Int2 coords, NdArray< Simd< T, 4 >, D0 > const &x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | StoreSubmatrix (Span< T > out, Int2 coords, NdArray< Simd< T, 4 >, D0 > const &x) |
| template<size_t D0, size_t D1, size_t D2, size_t D3, typename T> | |
| void | StoreSubmatrix (T *out, Int2 coords, NdArray< Simd< T, 4 >, D0 > const &x) |
| template<int kTupleCount = -1, class T, int N> | |
| void | StoreTransposed (T *ptr, Simd< T, N > a, Simd< T, N > b, Simd< T, N > c) |
| template<int kTupleCount = -1, class V, std::enable_if_t< IsSimd< V >, superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| void | StoreTransposed (typename V::Scalar *ptr, NdArray< V, 3 > const &src) |
| template<typename T, size_t N> | |
| constexpr T | Sum (NdArray< T, N > const &a) |
| template<typename T> | |
| constexpr NdArray< T, 2, 2 > | SymMatrix2x2 (T a00, T a01, T a11) |
| template<class T, int N> | |
| Simd< T, N > | Tan (Simd< T, N > a) |
| template<typename T> | |
| constexpr T | Tan (T a) |
| template<class T, int N> | |
| Simd< T, N > | Tanh (Simd< T, N > a) |
| constexpr Float3 | ToFloat3 (Color const &color) |
| Converts a Color to a normalized Float3 vector (RGB only). | |
| constexpr Float4 | ToFloat4 (Color const &color) |
| Converts a Color to a normalized Float4 vector (RGBA). | |
| Matrix3x3r | ToMatrix3x3 (Quaternion const &q) |
| MatrixTransformRT | ToMatrixTransformRT (Quaternion const &rot, Real3 const &trans) |
| MatrixTransformRT | ToMatrixTransformRT (TransformRT const &a) |
| template<typename T> | |
| NdArray< T, 4, 4 > | ToNdArray (NdArray< Simd< T, 4 >, 4 > m) |
| template<typename T> | |
| NdArray< T, 2, 2 > | ToNdArray2x2 (Simd< T, 4 > m) |
| template<typename T> | |
| NdArray< T, 3, 3 > | ToNdArray3x3 (NdArray< Simd< T, 4 >, 3 > m) |
| template<typename T> | |
| NdArray< T, 2, 2 > | ToNdArraySym2x2 (Simd< T, 4 > m) |
| template<typename T> | |
| NdArray< T, 3, 3 > | ToNdArraySym3x3 (NdArray< Simd< T, 4 >, 2 > m) |
| template<typename T> | |
| NdArray< T, 3, 3, 3 > | ToNdArrayTensor (NdArray< Simd< T, 4 >, 3, 3 > const &t) |
| template<typename T> | |
| NdArray< T, 3, 3, 3, 3 > | ToNdArrayTensor (NdArray< Simd< T, 4 >, 3, 3, 3 > const &t) |
| template<typename T> | |
| Real2 | ToReal2 (Simd< T, 4 > v) |
| template<typename T> | |
| Real3 | ToReal3 (Simd< T, 4 > v) |
| template<typename T> | |
| Real4 | ToReal4 (Simd< T, 4 > v) |
| template<typename T> | |
| Simd< T, 4 > | ToSimd (NdArray< T, 2 > const &v, T z=T(0), T w=T(0)) |
| template<typename T> | |
| Simd< T, 4 > | ToSimd (NdArray< T, 3 > const &v, T w=T(0)) |
| template<typename T> | |
| Simd< T, 4 > | ToSimd (NdArray< T, 4 > v) |
| template<class V> | |
| V | ToSimdDirection (V a) |
| template<typename T> | |
| Simd< T, 4 > | ToSimdFromSymComponents2x2 (T a00, T a01, T a11) |
| template<typename T> | |
| Simd< T, 4 > | ToSimdMatrix (NdArray< T, 2, 2 > const &m) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3 > | ToSimdMatrix (NdArray< T, 3, 3 > const &m) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 4 > | ToSimdMatrix (NdArray< T, 4, 4 > const &m) |
| template<class V> | |
| V | ToSimdPoint (V a) |
| template<typename T> | |
| Simd< T, 4 > | ToSimdSymMatrix (NdArray< T, 2, 2 > const &m) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 2 > | ToSimdSymMatrix (NdArray< T, 3, 3 > const &m) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3, 3 > | ToSimdTensor (NdArray< T, 3, 3, 3 > const &t) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 3, 3, 3 > | ToSimdTensor (NdArray< T, 3, 3, 3, 3 > const &t) |
| TransformRT | ToTransformRT (MatrixTransformRT const &a) |
| VMatrix3x3r | ToVMatrix3x3 (Quaternion const &q) |
| std::pair< VMatrix3x3r, VMatrix3x3r > | ToVMatrix3x3_WithTranspose (Quaternion const &q) |
| VMatrix3x3r | ToVMatrix3x3Transpose (Quaternion const &q) |
| VMatrix4x4r | ToVMatrix4x4 (MatrixTransformRT const &a) |
| VMatrix4x4r | ToVMatrix4x4 (TransformRT const &a) |
| VMatrix4x4r | ToVMatrix4x4Transpose (MatrixTransformRT const &a) |
| VMatrix4x4r | ToVMatrix4x4Transpose (TransformRT const &a) |
| template<typename T, size_t DimTotal = 3, size_t DimTrace = DimTotal> | |
| constexpr T | Trace (NdArray< T, DimTotal, DimTotal > const &mat) |
| template<typename T> | |
| constexpr T | Trace2x2 (Simd< T, 4 > const &mat) |
| template<typename T> | |
| constexpr T | Trace3x3 (NdArray< Simd< T, 4 >, 3 > const &mat) |
| template<typename T, size_t N, size_t M> | |
| constexpr NdArray< T, M, N > | Transpose (NdArray< T, N, M > const &mat) |
| template<typename T> | |
| Simd< T, 4 > | Transpose2x2 (Simd< T, 4 > const &m) |
| template<typename T, size_t D0> | |
| NdArray< Simd< T, 4 >, 3 > | Transpose3x3 (NdArray< Simd< T, 4 >, D0 > const &m) |
| template<typename T> | |
| NdArray< Simd< T, 4 >, 4 > | Transpose4x4 (NdArray< Simd< T, 4 >, 4 > const &m) |
| template<typename T> | |
| constexpr T | TripleProduct (NdArray< T, 3 > const &a, NdArray< T, 3 > const &b, NdArray< T, 3 > const &c) |
| template<typename T, size_t N> | |
| Simd< T, 4 > | VDet3x3 (NdArray< Simd< T, 4 >, N > const &A) |
| template<size_t N, typename T> | |
| NdArray< Simd< T, 4 >, N > | VDiagonalMatrix (Simd< T, 4 > const &diagonalVector) |
| template<size_t N, typename T> | |
| NdArray< Simd< T, 4 >, N > | VDiagonalMatrix (T valueOnDiagonal) |
| template<int COUNT = -1, class V> | |
| V | VDot (V a, V b) |
| template<typename T = real> | |
| NdArray< Simd< T, 4 >, 3, 3 > | VDSkew3 () |
| template<class V> | |
| V | VEqual (V a, V b) |
| template<size_t N, typename T = real> | |
| NdArray< Simd< T, 4 >, N > | VEye () |
| VMatrix3x3r | VGetRotationMatrix (TransformRT const &transform) |
| template<class T, int DN, size_t D0, size_t... DIMS> | |
| Simd< T, DN > | VIsFinite (NdArray< Simd< T, DN >, D0, DIMS... > const &a) |
| Per-lane finiteness check on a SIMD-typed NdArray. | |
| Vec4r | VIsFinite (Quaternion const &q) |
| template<class T, int N> | |
| Simd< T, N > | VIsFinite (Simd< T, N > a) |
| Vec4r | VIsFinite (TransformRT const &a) |
| template<typename T, size_t D0, int D1> | |
| Simd< T, D1 > | VNearEqual (NdArray< Simd< T, D1 >, D0 > const &a, NdArray< Simd< T, D1 >, D0 > const &b, Simd< T, D1 > epsilon=kDefaultNearEqualEpsilon< T >) |
| template<class V> | |
| V | VNearEqual (V a, V b, V epsilon) |
| template<class V> | |
| V | VNearZero (V a, V epsilon) |
| template<int COUNT = -1, class T, int N> | |
| Simd< T, N > | VNorm (Simd< T, N > a) |
| template<int COUNT = -1, class T, int N> | |
| Simd< T, N > | VNormSqr (Simd< T, N > a) |
| template<class V> | |
| V | VNotEqual (V a, V b) |
Variables | |
| constexpr int | kAutoLinearSolverMaxIter = -1 |
| Sentinel value for LinearSolverParams::maxIter that lets Mochi automatically select the maximum number of linear solver iterations. | |
| constexpr real | kDefaultAnisoAlpha = 1000_r |
| Default anisotropic stiffness (α) [Pa]. | |
| constexpr real | kDefaultAnisoLength = 1_r |
| Default anisotropic reference length (dimensionless). | |
| constexpr real | kDefaultArapStiffness = 1000_r |
| Default ARAP stiffness (μ) [Pa]. | |
| constexpr real | kDefaultDensity = 1000_r |
| Default material density [kg/m³]. | |
| constexpr Real3 | kDefaultGravity = {0_r, -9.8_r, 0_r} |
| Default gravity acceleration in world frame [m/s²]. | |
| template<typename T> | |
| constexpr T | kDefaultNearEqualEpsilon {0} |
| template<> | |
| constexpr double | kDefaultNearEqualEpsilon< double > {1.0e-6} |
| template<> | |
| constexpr float | kDefaultNearEqualEpsilon< float > {1.0e-6f} |
| template<class T, int N> | |
| Simd< T, N > const | kDefaultNearEqualEpsilon< Simd< T, N > > {kDefaultNearEqualEpsilon<T>} |
| constexpr real | kDefaultPoissonRatio = 0.45_r |
| Default Poisson's ratio (dimensionless). | |
| constexpr real | kDefaultRelStepTol = 10_r * std::numeric_limits<real>::epsilon() |
| Default tolerance for the L2 norm of the non-linear solver's raw linear-solve increment. | |
| constexpr real | kDefaultYoungsModulus = 1e5_r |
| Default Young's modulus [Pa]. | |
| constexpr real | kDegreesPerRadian = 180_r / kPI |
| static constexpr NdArray< real, 3, 3, 3, 3 > | kFourthOrderEye = FourthOrderEye() |
| static constexpr NdArray< real, 3, 3, 3, 3 > | kFourthOrderEyeSym = FourthOrderEyeSym() |
| static constexpr real | kGridSdfDefaultBoundaryPadding |
| Default value for GridSdfParams::boundaryPaddingDist [m]. | |
| constexpr real | kInf = std::numeric_limits<real>::infinity() |
| constexpr Real3 | kInf3 = {kInf, kInf, kInf} |
| constexpr uint64_t | kInvalidHandle = 0 |
| Default value for an invalid handle. | |
| static constexpr NdArray< real, 3, 3, 3, 3 > | kIouterI = IouterI() |
| template<typename T> | |
| static constexpr bool | kIsNdArray = IsNdArray<std::decay_t<T>>::value |
| template<typename T> | |
| constexpr bool | kIsResizeNoInitSafe = IsResizeNoInitSafe<T>::value |
| Helper variable template for IsResizeNoInitSafe. | |
| constexpr int | kMeshDataSpaceDim = 3 |
| Spatial dimensionality of mesh data. | |
| constexpr Real2 | kMinus2PiPlus2Pi = {-2_r * kPI, 2_r * kPI} |
| template<typename T> | |
| constexpr T | kMinusOne = T{0} - 1 |
| constexpr real | kPI = 3.14159265358979323846_r |
| constexpr real | kRadiansPerDegree = kPI / 180_r |
| constexpr Real3 | kReal3Ones = {1_r, 1_r, 1_r} |
| constexpr Real3 | kReal3XAxis = {1_r, 0_r, 0_r} |
| constexpr Real3 | kReal3YAxis = {0_r, 1_r, 0_r} |
| constexpr Real3 | kReal3ZAxis = {0_r, 0_r, 1_r} |
| constexpr Real3 | kReal3Zeros = {0_r, 0_r, 0_r} |
| constexpr NdArray< real, 3, 3 > | kSecondOrderIdentity |
| constexpr int | kSentinelIndex = -1 |
| template<class T> | |
| constexpr int | kSimdDefaultSize = Unsupported architecture / sizeof(T) |
| constexpr real | kSqrt2 = 1.41421356237309504880_r |
| constexpr real | kSqrt3Over2 = 0.86602540378443864676_r |
| constexpr real | kSqrtPi = 1.772453850905515881919427556567825376987457275390625_r |
| constexpr Real2 | kUnitInterval = {0_r, 1_r} |
| using superdex::Color = NdArray<uint8_t, 4> |
| using superdex::Double2 = NdArray<double, 2> |
Definition at line 117 of file nd_array.h.
| using superdex::Double3 = NdArray<double, 3> |
Definition at line 118 of file nd_array.h.
| using superdex::Double4 = NdArray<double, 4> |
Definition at line 119 of file nd_array.h.
| using superdex::DynamicString = std::basic_string<char, std::char_traits<char>, StlAllocator<char>> |
Alias for std::string using a polymorphic superdex::Allocator pointer.
Definition at line 39 of file dynamic_string.h.
| using superdex::Float2 = NdArray<float, 2> |
Definition at line 112 of file nd_array.h.
| using superdex::Float3 = NdArray<float, 3> |
Definition at line 113 of file nd_array.h.
| using superdex::Float4 = NdArray<float, 4> |
Definition at line 114 of file nd_array.h.
| using superdex::Int2 = NdArray<int, 2> |
Definition at line 137 of file nd_array.h.
| using superdex::Int3 = NdArray<int, 3> |
Definition at line 138 of file nd_array.h.
| using superdex::Int4 = NdArray<int, 4> |
Definition at line 139 of file nd_array.h.
| using superdex::LogFn = std::function<void(LogChannel, char const* message, char const* file, int line)> |
| using superdex::Matrix2x2f = NdArray<float, 2, 2> |
Definition at line 129 of file nd_array.h.
| using superdex::Matrix2x2r = NdArray<real, 2, 2> |
Definition at line 122 of file nd_array.h.
| using superdex::Matrix2x3f = NdArray<float, 2, 3> |
Definition at line 130 of file nd_array.h.
| using superdex::Matrix2x3r = NdArray<real, 2, 3> |
Definition at line 123 of file nd_array.h.
| using superdex::Matrix3x2f = NdArray<float, 3, 2> |
Definition at line 131 of file nd_array.h.
| using superdex::Matrix3x2r = NdArray<real, 3, 2> |
Definition at line 124 of file nd_array.h.
| using superdex::Matrix3x3f = NdArray<float, 3, 3> |
Definition at line 132 of file nd_array.h.
| using superdex::Matrix3x3r = NdArray<real, 3, 3> |
Definition at line 125 of file nd_array.h.
| using superdex::Matrix4x3f = NdArray<float, 4, 3> |
Definition at line 133 of file nd_array.h.
| using superdex::Matrix4x3r = NdArray<real, 4, 3> |
Definition at line 126 of file nd_array.h.
| using superdex::Matrix4x4f = NdArray<float, 4, 4> |
Definition at line 134 of file nd_array.h.
| using superdex::Matrix4x4r = NdArray<real, 4, 4> |
Definition at line 127 of file nd_array.h.
Definition at line 36 of file material_params.h.
| using superdex::OnAssertFn |
Callback invoked when an assertion fails.
Receives the failed condition, formatted message, source file, and source line. Return true to break execution at the failure site.
| using superdex::real = float |
Definition at line 115 of file mochi_config.h.
| using superdex::Real1 = NdArray<real, 1> |
Definition at line 104 of file nd_array.h.
| using superdex::Real2 = NdArray<real, 2> |
Definition at line 105 of file nd_array.h.
| using superdex::Real3 = NdArray<real, 3> |
Definition at line 106 of file nd_array.h.
| using superdex::Real4 = NdArray<real, 4> |
Definition at line 107 of file nd_array.h.
| using superdex::Real5 = NdArray<real, 5> |
Definition at line 108 of file nd_array.h.
| using superdex::Real6 = NdArray<real, 6> |
Definition at line 109 of file nd_array.h.
| using superdex::Tensor3x3x3f = NdArray<float, 3, 3, 3> |
Definition at line 146 of file nd_array.h.
| using superdex::Tensor3x3x3r = NdArray<real, 3, 3, 3> |
Definition at line 143 of file nd_array.h.
| using superdex::Tensor3x3x3x3f = NdArray<float, 3, 3, 3, 3> |
Definition at line 145 of file nd_array.h.
| using superdex::Tensor3x3x3x3r = NdArray<real, 3, 3, 3, 3> |
Definition at line 142 of file nd_array.h.
| using superdex::Vec2d = Simd<double, 2> |
| using superdex::Vec2l = Simd<int64_t, 2> |
| using superdex::Vec4d = Simd<double, 4> |
| using superdex::Vec4f = Simd<float, 4> |
| using superdex::Vec4i = Simd<int, 4> |
| using superdex::Vec4l = Simd<int64_t, 4> |
| using superdex::Vec4r = Simd<real, 4> |
| using superdex::Vec8d = Simd<double, 8> |
| using superdex::Vec8f = Simd<float, 8> |
| using superdex::Vec8i = Simd<int, 8> |
| using superdex::Vec8l = Simd<int64_t, 8> |
| using superdex::Vec8r = Simd<real, 8> |
| using superdex::VMatrix2x2f = Simd<float, 4> |
| using superdex::VMatrix2x2r = Simd<real, 4> |
| using superdex::VMatrix2x3f = NdArray<Simd<float, 4>, 2> |
| using superdex::VMatrix2x4f = NdArray<Simd<float, 4>, 2> |
| using superdex::VMatrix3x2f = NdArray<Simd<float, 4>, 3> |
| using superdex::VMatrix3x2r = NdArray<Simd<real, 4>, 3> |
| using superdex::VMatrix3x3d = NdArray<Simd<double, 4>, 3> |
| using superdex::VMatrix3x3f = NdArray<Simd<float, 4>, 3> |
| using superdex::VMatrix3x4f = NdArray<Simd<float, 4>, 3> |
| using superdex::VMatrix4x3f = NdArray<Simd<float, 4>, 4> |
| using superdex::VMatrix4x4f = NdArray<Simd<float, 4>, 4> |
| using superdex::VSymMatrix2x2f = Simd<float, 4> |
| using superdex::VSymMatrix2x2r = Simd<real, 4> |
| using superdex::VSymMatrix3x3f = NdArray<Simd<float, 4>, 2> |
| using superdex::VSymMatrix3x3r = NdArray<Simd<real, 4>, 2> |
Special case for the SIMD representation of a 3x3 symmetric matrix.
Stores the matrix entries in two vectors, containing the diagonal terms (a, b, c, ?) and the off-diagonal terms (d, e, f, ?). Corresponds to the symmetric matrix: | a d e | | d b f | | e f c |
| using superdex::VTensor3x3x3f = NdArray<Simd<float, 4>, 3, 3> |
| using superdex::VTensor3x3x3r = NdArray<Simd<real, 4>, 3, 3> |
| using superdex::VTensor3x3x3x3f = NdArray<Simd<float, 4>, 3, 3, 3> |
| using superdex::VTensor3x3x3x3r = NdArray<Simd<real, 4>, 3, 3, 3> |
| using superdex::VTensor4x3x3r = NdArray<Simd<real, 4>, 4, 3> |
|
strong |
Two-dimensional discretization element types for actor boundary integrals.
Definition at line 49 of file mochi_enums.h.
|
strong |
One-dimensional discretization element types for actor segment integrals.
Definition at line 67 of file mochi_enums.h.
|
strong |
Type of actor.
Definition at line 25 of file mochi_enums.h.
|
strong |
Types of joints in an articulated body.
Definition at line 75 of file articulated_body_params.h.
|
strong |
Strategy for selecting the active boundary faces when subsampling boundary integrals.
Definition at line 41 of file mochi_enums.h.
|
strong |
Collision detection geometry for an Actor.
| Enumerator | |
|---|---|
| None | No collision representation. Other actors cannot detect contact with this actor.
|
| Auto | Automatic collider type selection based on the actor's shape.
|
| Sphere | Represent the actor by an approximating sphere derived from its bounding volume.
|
| Box | Represent the actor by its axis-aligned bounding box (AABB), in the actor's local frame.
|
| Mesh | [Experimental] Represent the actor by its surface mesh.
|
| Plane | Represent the actor as an infinite plane.
|
| Sdf | Grid-based Signed Distance Field (SDF) collision representation.
|
| PointCloud | Point-cloud collision representation. Contacts are detected by proximity queries between collider-side sample points and colliding-side sample points. Only other point-cloud colliders can collide with this type. |
| Count | Number of collider type enum values. |
Definition at line 335 of file contact_params.h.
|
strong |
| Enumerator | |
|---|---|
| True | |
Definition at line 757 of file mochi_platform.h.
|
strong |
Type of constraint acting on actors' degrees of freedom.
Each constraint type enforces specific relationships between actor DoFs, such as fixing positions, limiting joint ranges, or maintaining rigid connections. The type determines which constraint methods are applicable and what parameters are required.
| Enumerator | |
|---|---|
| None | Invalid constraint type. |
| ArticulatedSingleDofRange | Range constraint on a single articulated DoF. Limits the DoF value to [min, max]. |
| Articulated3dRotationRange | Range constraint on the DoFs of an articulated 3D rotation. Limits DoF values to [min, max]. |
| ArticulatedSingleDofTarget | Target constraint on a single articulated DoF. Drives the DoF toward a target value. |
| Articulated3dRotationTarget | Target constraint on the DoFs of an articulated 3D rotation. Drives rotation DoFs toward target values. |
| JointRotationRange | Range constraint on joint rotation. Limits joint angles to specified bounds. |
| JointRotationTracking | Tracking constraint on joint rotation. Drives joint toward target orientation. |
| RigidPivotPosition | Position constraint on a rigid actor's pivot point. Fixes or tracks a world-space position. |
| RigidPivotToRigidTarget | Position constraint that drives a rigid actor's pivot point toward where that same local point would be if the actor's center-of-mass frame matched a target transform. |
| RigidPivotRotation | Rotation constraint on a rigid actor's pivot frame. Fixes or tracks a world-space orientation. |
| RigidPrismaticJoint | Translational prismatic joint constraint between two rigid actors. Constrains translation to a single axis. Does not constrain rotation. Pair with ConstraintType::JointRotationTracking for a full prismatic joint. |
| RigidSphericalJoint | Spherical joint constraint between two rigid actors. Allows rotation but no translation. |
| DeformableNodePosition | Position constraint on a deformable actor node. Fixes or tracks node position in world space. |
| DeformableNodeToRigid | Constraint connecting a deformable node to a rigid actor. Attaches deformable body to rigid body. |
| DeformableNodeToDeformableNode | Constraint connecting two deformable actor nodes. |
| RodElementRotationToRigid | Rotation constraint between a rigid actor and a rod element. Tracks relative rotation. |
| Count | Number of constraint type enum values. |
Definition at line 79 of file mochi_enums.h.
|
strong |
Convergence status of the non-linear solver.
Definition at line 28 of file nonlinear_solver_params.h.
|
strong |
Combination of axis directions for a coordinate space convention.
Each three-letter name gives the semantic direction of positive X, positive Y, and positive Z, respectively. For example, CoordinateSpaceAxes::FLU means X-forward, Y-left, Z-up.
Definition at line 35 of file coordinate_space.h.
|
strong |
Selects which Coulomb friction smoothing model to use.
| Enumerator | |
|---|---|
| C1Regularized | C1-smoothed Coulomb friction with compact support: friction transitions linearly from 0 to full strength over [0, ContactParams::frictionFalloffVel]. |
| CinfRegularized | C-infinity regularized Coulomb friction with no compact support: friction asymptotically approaches full strength. ContactParams::frictionFalloffVel controls the regularization scale. |
| Count | Number of friction model enum values. |
| Default | Default Coulomb friction model. |
Definition at line 298 of file contact_params.h.
|
strong |
| Enumerator | |
|---|---|
| JSON | JSON format (text). |
| H5 | HDF5 format (binary). Requires MOCHI_USE_HDF5. |
| Count | |
Definition at line 312 of file model_data.h.
|
strong |
The maximum voxel size for an SDF will be determined by one of these measurements scaled by GridSdfParams::resolutionDelta.
| Enumerator | |
|---|---|
| LargestAxis | Use the largest dimension of the mesh's axis-aligned bounding box (AABB) as reference. |
| SmallestAxis | Use the smallest dimension of the mesh's AABB as reference. |
| MeanAxis | Use the average of all three AABB dimensions as reference. |
| LargestEdge | Use the largest edge length in the mesh as reference. |
| SmallestEdge | Use the smallest edge length in the mesh as reference. |
| MeanEdge | Use the average edge length in the mesh as reference. |
| Explicit | Use GridSdfParams::resolutionDelta to set the maximum voxel size in meters (no scaling based on the features of the mesh nor AABB). |
| Count | Total number of resolution modes. |
Definition at line 31 of file grid_sdf_params.h.
|
strong |
Specifies whether actor-contact filtering also applies to nested actors.
| Enumerator | |
|---|---|
| No | Affect only the exact actor handles passed to the API. |
| Yes | Affect the exact actor and, for parent actors, its nested actors.
|
| Count | Number of IncludeNestedActors values. |
Definition at line 158 of file mochi_enums.h.
|
strong |
Time integration methods.
Definition at line 25 of file integration_params.h.
|
strong |
Norm types for the stopping criteria of the linear solver.
Definition at line 322 of file linear_solver_params.h.
|
strong |
Linear solver types.
| Enumerator | |
|---|---|
| CG | Conjugate Gradient (CG) solver.
|
| GMRES | Generalized Minimal Residual (GMRES) solver. |
| CudaCG | CUDA CG solver.
|
| CudaGMRES | CUDA GMRES solver.
|
| AugmentedCG | [Experimental] Augmented CG solver with Krylov subspace recycling.
|
| LDLT | Direct solver based on the LDLt factorization without pivoting.
|
| LU | Direct solver based on the dense LU factorization without pivoting.
|
| AsyncCG | [Experimental] Asynchronous CG solver.
|
| ParallelCG | [Experimental] Parallel CG solver.
|
| MINRES | Minimal Residual (MINRES) solver.
|
| ExperimentalCudaSparseCholesky | [Experimental] CUDA sparse Cholesky factorization.
|
| ExperimentalCudaSparseLDLT | [Experimental] CUDA sparse LDLt factorization.
|
| ExperimentalCudaSparseLU | [Experimental] CUDA sparse LU factorization.
|
| Auto | Let Mochi select the solver type based on the problem. |
| Count | Number of solver type enum values. |
| Default | Default solver type. |
Definition at line 26 of file linear_solver_params.h.
|
strong |
Strategies to select the relative tolerance of the linear solver (aka forcing term).
| Enumerator | |
|---|---|
| Constant | Constant relative tolerance. |
| EisenstatWalker1 | Eisenstat-Walker strategy no. 1.
|
| EisenstatWalker2 | Eisenstat-Walker strategy no. 2.
|
| EisenstatWalker3 | Custom Eisenstat-Walker strategy: eta = max(min(1/(2+k), sqrt(|r|)), eta_0), where k is the non-linear iteration number, |r| is the L2-norm of the nonlinear residual, and eta_0 is LinearSolverParams::relTol.
|
| Count | Number of linear tolerance strategy enum values. |
| Default | Default linear tolerance strategy. |
Definition at line 211 of file nonlinear_solver_params.h.
|
strong |
Line search methods for the non-linear solver.
| Enumerator | |
|---|---|
| None | No line search. May substantially degrade stability. |
| Simple | Simple line search. Accepts a step if the objective function does not increase by more than a specified relative tolerance. |
| Armijo | Line search with Armijo condition. |
| WolfeWeak | Line search with weak Wolfe conditions. |
| WolfeStrong | Line search with strong Wolfe conditions. |
| ResidualNorm | Line search with residual norm condition. Accepts a step if the residual norm decreases.
|
| ArmijoOrResidualNorm | Line search that accepts either the Armijo or the residual norm condition.
|
| Count | Number of line search type enum values. |
| Default | Default line search type. |
Definition at line 137 of file nonlinear_solver_params.h.
|
strong |
|
strong |
Strategy for ensuring positive semi-definite (PSD) Hessian matrices in material models.
The material Hessian (∂P/∂F, where P is the first Piola-Kirchhoff stress and F is the deformation gradient) should be PSD for stable simulation. This enum defines strategies to enforce this property, balancing computational cost against stability and convergence quality.
| Enumerator | |
|---|---|
| MaterialDefault | Use the material's default PSD strategy.
|
| None | No PSD enforcement. Negative eigenvalues may arise. Fastest strategy but may substantially degrade stability of most material models.
|
| Projection | Eigenvalue clamping: U * Max(Λ, ε) * U^T. Performs eigendecomposition ∂P/∂F = U * Λ * U^T and clamps negative eigenvalues to a small positive constant ε. Slower than most other methods, but typically ensures best convergence.
|
| Fast | Fast PSD enforcement by dropping problematic terms. Faster than MaterialPsdStrategy::Projection but may degrade non-linear solver convergence.
|
| AbsEigenProjection | Absolute eigenvalue projection: U * Max(|Λ|, ε) * U^T. Takes absolute value of eigenvalues instead of clamping. Similar cost to MaterialPsdStrategy::Projection but may improve stability, especially for highly deformed configurations.
|
| PerTermProjection | Per-term projection for composite Hessians. Projects each summand of the Hessian separately. For example, if H = H1 + H2, projects both H1 and H2 independently.
|
| Count | Number of unique enum values. |
Definition at line 52 of file material_types.h.
|
strong |
Mesh file format hint for Context::LoadShapeFromBytes and model-loading APIs that read from byte buffers.
Definition at line 320 of file model_data.h.
|
strong |
Convergence monitoring mode for the non-linear solver residual.
| Enumerator | |
|---|---|
| Global | Use global, unweighted residual norm for convergence checks within each simulation island. Convergence is determined by the global residual norm within each simulation island: |r| <= absTol or |r| <= relTol * |r0| |
| PerActorWeighted | Use per-actor weighted residual norms for convergence checks. Each actor uses a per-actor weighted L2 norm |r_a|_W = sqrt(Σᵢ wᵢ·rᵢ²), where weights normalize force/torque residuals by characteristic force/torque. All actors must satisfy their individual criteria: |r_a|_W <= absTol or |r_a|_W <= relTol * |r0_a|_W
|
| Count | Number of convergence monitoring mode enum values. |
| Default | Default convergence monitoring mode. |
Definition at line 280 of file nonlinear_solver_params.h.
|
strong |
Non-linear solver types.
| Enumerator | |
|---|---|
| Newton | Newton's method. |
| BFGS | Broyden-Fletcher-Goldfarb-Shanno (BFGS) method.
|
| SR1 | Symmetric Rank-One (SR1) method.
|
| Count | Number of non-linear solver type enum values. |
| Default | Default non-linear solver type. |
Definition at line 90 of file nonlinear_solver_params.h.
|
strong |
Type of constraint in an articulated pose controller.
Defines the functional purpose of a pose constraint, not its internal implementation. Pose controllers use these constraints to track target configurations for articulated actors.
Definition at line 116 of file mochi_enums.h.
|
strong |
Preconditioner types for the linear solver.
Definition at line 192 of file linear_solver_params.h.
|
strong |
Positive Semi-Definite (PSD) projection modes for the dresidual matrix.
Definition at line 69 of file nonlinear_solver_params.h.
|
strong |
Type of query data to compute for an actor or constraint.
Queries enable on-demand computation of simulation data. Some queries allow immediate retrieval of data; others must be registered beforehand to have the data computed and available for retrieval after the next step. Queries are reference counted, so multiple registrations are acceptable.
| Enumerator | |
|---|---|
| NodePositions | Positions of all mesh nodes. Available via Actor::GetNodePositionsLocal.
|
| ElementsDeformationGradient | Deformation gradients for elements in deformable actors. Available via Actor::GetElementsDeformationGradient.
|
| SurfaceNodePositions | Positions of surface mesh nodes. Available via Actor::GetSurfaceMeshNodePositionsLocal.
|
| SurfaceNodeNormals | Normals of surface mesh nodes. Available via Actor::GetSurfaceMeshNodeNormalsLocal.
|
| VisualNodePositions | Positions of visual mesh nodes. Available via Actor::GetVisualMeshNodePositionsLocal.
|
| VisualNodeNormals | Normals of visual mesh nodes. Available via Actor::GetVisualMeshNodeNormalsLocal.
|
| ContactPoints | Contact points between actors. Available via Actor::GetContactPointsWorld.
|
| ElasticEnergy | Elastic energy of a deformable actor. Available via Actor::GetElasticEnergy.
|
| NodeContactForces | Contact forces per node. Available via Actor::GetNodeContactForcesWorld.
|
| ConstraintForce | Force/torque applied by a constraint. Available via Constraint::GetForce.
|
| ArticulatedControllerForce | Generalized forces applied by an articulated pose controller. Available via Actor::GetArticulatedControllerForce.
|
| SdfDistances | Signed distance field values for contact samples. Available via Actor::GetSdfDistances.
|
| TotalContactForce | Total contact force and torque acting on an actor. Available via Actor::GetContactForceWorld and Actor::GetContactTorqueWorld.
|
| Count | Number of query type enum values. |
Definition at line 128 of file mochi_enums.h.
|
strong |
Selects how a RoutingElement contributes to a spatial tendon's routing.
Definition at line 210 of file articulated_body_params.h.
|
strong |
Material constitutive models for soft bodies.
Defines the constitutive response for deformable materials (strain energy and stress-strain relationship). Each material has different mechanical properties, computational cost, and stability characteristics.
| Enumerator | |
|---|---|
| NeoHookean | Neo-Hookean hyperelastic material. Non-linear hyperelastic material with log-barrier stabilization to handle extreme deformations and element inversions robustly. Recommended for most soft body simulations requiring large deformations. |
| StVenantKirchhoff | Saint Venant-Kirchhoff (StVK) hyperelastic material. Classical non-linear hyperelastic material. Simpler than neo-Hookean but may exhibit instabilities under large deformations, particularly under large compression.
|
| LinearElastic | Linear elastic material (Hookean). Simplest material model with linear stress-strain relationship. Computationally fast but only accurate for small deformations.
|
| ActiveNeoHookean | Composite material: passive isotropic elasticity + active anisotropic fiber actuation. Combines a passive isotropic hyperelastic component (Neo-Hookean) with an active anisotropic fiber contraction component (Aniso ARAP). Used to model materials with directional actuation like muscle tissue. |
| ActiveShapeTargetingArap | Active As-Rigid-As-Possible (ARAP) material with Shape Targeting. Active material model based on the concept of "shape targeting". Unlike passive models that only react to external loads, it introduces an internal actuation mechanism. The actuation is defined by the shape target tensor, S_t, which specifies the desired local shape of the object. The model then resists deformation from this target shape while allowing rigid rotation. This approach is effective for simulating biological phenomena like muscle contraction.
|
| Arap | As-Rigid-As-Possible (ARAP) material. ARAP's primary goal is to deform the object such that each local region undergoes a transformation that is as close to a rigid rotation as possible. Because it preserves local shape details well and produces intuitive, natural-looking results, ARAP is widely used in computer graphics for applications like interactive mesh editing and character posing. |
| Count | Number of unique material type enum values. |
Definition at line 148 of file material_types.h.
|
strong |
Verbosity levels for solvers and optimizers.
Controls the amount of logging output during solver execution.
| Enumerator | |
|---|---|
| Silent | No output. |
| Error | Only errors. |
| Warning | Errors and warnings. |
| Verbose | Detailed output including iteration info. |
| Count | Number of verbosity level enum values. |
Definition at line 35 of file verbosity_params.h.
Definition at line 364 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 50 of file basic_utils.h.
Definition at line 531 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 466 of file basic_utils.h.
|
inline |
Definition at line 743 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 60 of file basic_utils.h.
|
inline |
Definition at line 749 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 66 of file basic_utils.h.
|
inline |
Utility Functions.
Definition at line 1139 of file dynamic_array.h.
|
inline |
Definition at line 1145 of file dynamic_array.h.
| void superdex::AppendSum | ( | DynamicArray< T > & | out, |
| ContainerIn const & | in, | ||
| T | valueToAdd ) |
Definition at line 1152 of file dynamic_array.h.
|
inlinenodiscardconstexpr |
Definition at line 75 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 70 of file math_utils_inl.h.
Definition at line 541 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 443 of file basic_utils.h.
Definition at line 551 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 471 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 476 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 132 of file math_utils_inl.h.
|
inline |
Definition at line 290 of file simd_inl.h.
|
inline |
Definition at line 285 of file simd_inl.h.
Definition at line 126 of file simd_inl.h.
Definition at line 131 of file simd_inl.h.
|
inline |
Definition at line 115 of file simd_inl.h.
|
inline |
Definition at line 121 of file simd_inl.h.
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscardconstexpr |
Definition at line 241 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 391 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 287 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 259 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 171 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 727 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 734 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 754 of file matrix_utils_inl.h.
|
inlineconstexpr |
Definition at line 420 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 805 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 811 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 351 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 342 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 83 of file quaternion_utils_inl.h.
Definition at line 462 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 456 of file basic_utils.h.
|
nodiscard |
Initialize SuperDex Physics by creating a Context object.
You only need one Context for the entire process. It can be used to load shapes and to create any number of scenes. Call DestroyContext to clean everything up when you are done.
| [in] | numWorkerThreads | The number of async worker threads to initialize, or zero for single-threaded execution. Negative values (e.g. -1) let SuperDex Physics choose a default based on your CPU hardware. Positive values are clamped to the number of logical processors. |
|
inlinenodiscardconstexpr |
Definition at line 367 of file math_utils_inl.h.
Definition at line 832 of file simd_inl.h.
|
inline |
Definition at line 266 of file transform_rt_inl.h.
|
inline |
Destroy and deallocate an object that was created via New<T>.
| T | Type of object to destroy |
| A | Type of Allocator |
| allocator | The Allocator instance that was previously passed to New<T> |
| ptr | Address of the object to destroy |
Definition at line 154 of file allocator.h.
| void superdex::DestroyContext | ( | superdex::Context * | context | ) |
Shut down SuperDex Physics by destroying the Context object.
Any remaining state will be immediately destroyed, including all scenes, actors, and constraints.
|
inlinenodiscardconstexpr |
Definition at line 626 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 631 of file matrix_utils_inl.h.
|
inlineconstexpr |
Definition at line 639 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 669 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 664 of file matrix_utils_inl.h.
|
inlineconstexpr |
Definition at line 440 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 571 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 562 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 926 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 931 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 919 of file matrix_utils_inl.h.
|
inlineconstexpr |
Definition at line 183 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 332 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 163 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 342 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 353 of file math_utils_inl.h.
|
inlinenodiscard |
Definition at line 209 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 202 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 175 of file matrix_utils_inl.h.
|
inlineconstexpr |
Definition at line 84 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 58 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 77 of file matrix_utils_inl.h.
|
inline |
Definition at line 69 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 103 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 94 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 108 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 123 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 137 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 147 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 153 of file matrix_utils_inl.h.
| superdex::DynamicArray | ( | InputIt | , |
| InputIt | , | ||
| Allocator * | = GetDefaultAllocator() ) -> DynamicArray< typename std::iterator_traits< InputIt >::value_type > |
|
inline |
|
inline |
Definition at line 710 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 208 of file basic_utils.h.
|
inlinenodiscard |
Definition at line 40 of file quaternion_utils_inl.h.
|
inlinenodiscard |
Definition at line 36 of file quaternion_utils_inl.h.
Definition at line 561 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 485 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 585 of file matrix_utils_inl.h.
Definition at line 416 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 232 of file math_utils_inl.h.
Definition at line 411 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 386 of file basic_utils.h.
|
inlinenodiscard |
|
inlineconstexpr |
Definition at line 49 of file constants.h.
|
inlineconstexpr |
Definition at line 60 of file constants.h.
|
inline |
Definition at line 300 of file simd_inl.h.
|
inline |
Definition at line 305 of file simd_inl.h.
|
inline |
Definition at line 295 of file simd_inl.h.
|
inlinenodiscard |
Get an instance of the DefaultAllocator class.
Usable in any context.
Definition at line 196 of file allocator_inl.h.
Definition at line 310 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 24 of file transform_rt_utils.h.
|
inlinenodiscard |
Definition at line 32 of file transform_rt_utils.h.
|
inline |
Definition at line 397 of file simd_inl.h.
|
inline |
Definition at line 391 of file simd_inl.h.
|
inline |
Definition at line 385 of file simd_inl.h.
|
inline |
Definition at line 379 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 32 of file basic_utils_inl.h.
|
inlinenodiscard |
Definition at line 260 of file transform_rt_inl.h.
|
inlinenodiscard |
Definition at line 126 of file matrix_transform_rt_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 364 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 369 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 378 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 383 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 460 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 244 of file transform_rt_inl.h.
|
inlinenodiscard |
Definition at line 495 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 477 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 482 of file matrix_utils_inl.h.
|
inline |
Definition at line 490 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 467 of file matrix_utils_inl.h.
|
inlineconstexpr |
Definition at line 446 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 550 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 503 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 896 of file matrix_utils_inl.h.
|
inlineconstexpr |
Definition at line 77 of file constants.h.
|
nodiscard |
Return true if we can detect that a debugger is attached to this process.
This may not be supported on all platforms.
|
inlinenodiscard |
Definition at line 427 of file math_utils_inl.h.
|
inlinenodiscard |
Definition at line 436 of file math_utils_inl.h.
|
inlinenodiscard |
Definition at line 193 of file quaternion_utils_inl.h.
|
inline |
|
inlinenodiscard |
Definition at line 136 of file basic_utils.h.
|
inlinenodiscard |
Definition at line 240 of file transform_rt_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 248 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 254 of file basic_utils.h.
|
inlinenodiscard |
|
inlinenodiscardconstexpr |
Definition at line 321 of file basic_utils.h.
|
inline |
Definition at line 796 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 953 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 972 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 994 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 44 of file quaternion_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 263 of file basic_utils.h.
Definition at line 678 of file simd_inl.h.
|
inline |
Definition at line 189 of file simd_inl.h.
|
inline |
Definition at line 184 of file simd_inl.h.
|
inline |
Definition at line 194 of file simd_inl.h.
|
inline |
Definition at line 200 of file simd_inl.h.
|
inline |
|
inline |
Definition at line 207 of file simd_inl.h.
|
inline |
|
inline |
|
nodiscardconstexpr |
Creates a Color from a packed 32-bit RGBA value.
Unpacks a 32-bit unsigned integer into RGBA components where:
| rgba | Packed RGBA value as a 32-bit unsigned integer |
|
nodiscardconstexpr |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscardconstexpr |
Definition at line 202 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 310 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 268 of file math_utils_inl.h.
Definition at line 374 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 166 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 160 of file basic_utils.h.
|
inlineconstexpr |
Definition at line 54 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 195 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 215 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 319 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 277 of file math_utils_inl.h.
Definition at line 369 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 155 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 149 of file basic_utils.h.
|
inlineconstexpr |
Definition at line 36 of file math_utils_inl.h.
|
inlineconstexpr |
Definition at line 413 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 112 of file basic_utils.h.
|
inline |
Definition at line 806 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 117 of file basic_utils.h.
|
inline |
Definition at line 811 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 35 of file nd_array.h.
|
inlineconstexpr |
Definition at line 39 of file nd_array.h.
|
inlinenodiscard |
Definition at line 141 of file matrix_transform_rt_inl.h.
|
inline |
Definition at line 134 of file matrix_transform_rt_inl.h.
|
inlinenodiscard |
Definition at line 109 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 85 of file math_utils_inl.h.
|
inlinenodiscard |
Definition at line 31 of file quaternion_utils_inl.h.
|
inlinenodiscard |
Definition at line 27 of file quaternion_utils_inl.h.
|
inline |
|
inlinenodiscardconstexpr |
Definition at line 219 of file basic_utils.h.
|
inlinenodiscard |
Definition at line 232 of file transform_rt_inl.h.
|
inline |
Definition at line 227 of file transform_rt_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 226 of file basic_utils.h.
|
inline |
|
inlinenodiscardconstexpr |
Definition at line 234 of file basic_utils.h.
|
inline |
Definition at line 340 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 122 of file basic_utils.h.
|
inline |
Definition at line 816 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 127 of file basic_utils.h.
|
inline |
Definition at line 821 of file simd_inl.h.
|
inlinenodiscard |
Create a new object of type T using memory allocated by a polymorphic Allocator.
| T | Type of object to create |
| A | Type of Allocator |
| Args | Optional types forwarded to the constructor |
| allocator | Pointer to an Allocator instance |
| args | Optional arguments forwarded to the constructor for type T |
Definition at line 138 of file allocator.h.
|
inlinenodiscardconstexpr |
Definition at line 331 of file basic_utils.h.
|
inlinenodiscard |
Definition at line 123 of file math_utils_inl.h.
|
inlinenodiscard |
Definition at line 39 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 75 of file quaternion_utils_inl.h.
|
inline |
Definition at line 854 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 49 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 153 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 162 of file math_utils_inl.h.
|
inlinenodiscard |
Definition at line 79 of file quaternion_utils_inl.h.
|
inlinenodiscard |
Definition at line 859 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 866 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 873 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 250 of file transform_rt_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 118 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 30 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 72 of file quaternion_utils_inl.h.
|
inline |
Definition at line 849 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 44 of file matrix_utils_inl.h.
|
inline |
Definition at line 719 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 213 of file basic_utils.h.
|
inlineconstexpr |
Definition at line 227 of file nd_array.h.
|
inlineconstexpr |
Definition at line 118 of file mochi_config.h.
|
inlineconstexpr |
Definition at line 121 of file mochi_config.h.
|
inlineconstexpr |
Definition at line 132 of file mochi_config.h.
|
inlineconstexpr |
Definition at line 129 of file mochi_config.h.
|
inlinenodiscard |
Definition at line 95 of file simd_inl.h.
|
inline |
Definition at line 69 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 286 of file nd_array.h.
|
inlineconstexpr |
Definition at line 286 of file nd_array.h.
|
inlinenodiscard |
Definition at line 181 of file quaternion_utils_inl.h.
|
inlinenodiscard |
Definition at line 177 of file quaternion_utils_inl.h.
|
inline |
Definition at line 76 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 286 of file nd_array.h.
|
inline |
Definition at line 76 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 286 of file nd_array.h.
|
inlineconstexpr |
Definition at line 286 of file nd_array.h.
|
inlineconstexpr |
Definition at line 286 of file nd_array.h.
|
inline |
Definition at line 67 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 284 of file nd_array.h.
|
inlineconstexpr |
Definition at line 284 of file nd_array.h.
|
inline |
Definition at line 74 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 284 of file nd_array.h.
|
inline |
Definition at line 74 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 284 of file nd_array.h.
|
inlineconstexpr |
Definition at line 284 of file nd_array.h.
|
inlineconstexpr |
Definition at line 284 of file nd_array.h.
|
inline |
Definition at line 65 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 184 of file nd_array.h.
|
inlineconstexpr |
Definition at line 285 of file nd_array.h.
|
inlineconstexpr |
Definition at line 285 of file nd_array.h.
|
inline |
Definition at line 75 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 285 of file nd_array.h.
|
inline |
Definition at line 75 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 285 of file nd_array.h.
|
inlineconstexpr |
Definition at line 285 of file nd_array.h.
|
inlineconstexpr |
Definition at line 285 of file nd_array.h.
|
inline |
Definition at line 66 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 287 of file nd_array.h.
|
inlineconstexpr |
Definition at line 287 of file nd_array.h.
|
inlinenodiscard |
Definition at line 185 of file quaternion_utils_inl.h.
|
inline |
Definition at line 77 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 287 of file nd_array.h.
|
inline |
Definition at line 77 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 287 of file nd_array.h.
|
inlineconstexpr |
Definition at line 287 of file nd_array.h.
|
inlineconstexpr |
Definition at line 287 of file nd_array.h.
|
inline |
Definition at line 68 of file simd_inl.h.
|
inlineconstexpr |
Definition at line 191 of file nd_array.h.
|
inline |
Definition at line 71 of file simd_inl.h.
|
inline |
Definition at line 70 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 103 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 388 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 393 of file math_utils_inl.h.
Definition at line 878 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 222 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 229 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 239 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 327 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 271 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 308 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 282 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 250 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 259 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 295 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 321 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 293 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 184 of file math_utils_inl.h.
|
inline |
Definition at line 402 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 152 of file quaternion_utils_inl.h.
|
inlinenodiscard |
Definition at line 87 of file quaternion_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 369 of file basic_utils.h.
Definition at line 354 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 375 of file basic_utils.h.
Definition at line 359 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 296 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 176 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 274 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 284 of file basic_utils.h.
|
inlinenodiscard |
Definition at line 254 of file transform_rt_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 250 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 396 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 408 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 401 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 423 of file basic_utils.h.
|
inline |
Definition at line 252 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 325 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 320 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 315 of file simd_inl.h.
|
inline |
Definition at line 40 of file transform_rt_utils.h.
|
inline |
Definition at line 36 of file transform_rt_utils.h.
Definition at line 260 of file simd_inl.h.
Definition at line 270 of file simd_inl.h.
|
inline |
Definition at line 275 of file simd_inl.h.
|
inline |
Definition at line 280 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 434 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 304 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 26 of file basic_utils_inl.h.
|
inline |
Definition at line 151 of file simd_inl.h.
|
inline |
Definition at line 156 of file simd_inl.h.
|
inline |
Definition at line 137 of file simd_inl.h.
|
inline |
Definition at line 146 of file simd_inl.h.
Definition at line 483 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 448 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 68 of file basic_utils_inl.h.
|
inline |
Definition at line 502 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 875 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 885 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 48 of file quaternion_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 298 of file basic_utils.h.
Definition at line 348 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 309 of file basic_utils.h.
|
inlinenodiscardconstexpr |
Definition at line 79 of file basic_utils.h.
|
inlinenodiscard |
Definition at line 713 of file simd_composite_inl.h.
|
inline |
Definition at line 527 of file simd_arch_emulator_inl.h.
|
inline |
StaticCast from one Simd type to another of the same size.
|
inline |
Definition at line 213 of file simd_inl.h.
|
inline |
Definition at line 219 of file simd_inl.h.
|
inline |
Definition at line 225 of file simd_inl.h.
|
inline |
Definition at line 245 of file simd_inl.h.
|
inline |
|
inlinenodiscardconstexpr |
Definition at line 173 of file math_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 580 of file matrix_utils_inl.h.
Definition at line 521 of file simd_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 461 of file basic_utils.h.
Definition at line 688 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 167 of file quaternion_utils_inl.h.
|
inlinenodiscard |
Definition at line 106 of file matrix_transform_rt_inl.h.
|
inlinenodiscard |
Definition at line 97 of file matrix_transform_rt_inl.h.
|
inline |
Definition at line 179 of file simd_inl.h.
|
inlinenodiscard |
|
inline |
Definition at line 174 of file simd_inl.h.
|
inlinenodiscard |
Definition at line 101 of file matrix_transform_rt_inl.h.
|
inlinenodiscard |
Definition at line 163 of file quaternion_utils_inl.h.
|
inlinenodiscard |
Definition at line 171 of file quaternion_utils_inl.h.
|
inlinenodiscard |
Definition at line 159 of file quaternion_utils_inl.h.
|
inlinenodiscard |
Definition at line 115 of file matrix_transform_rt_inl.h.
|
inlinenodiscard |
Definition at line 223 of file transform_rt_inl.h.
|
inlinenodiscard |
Definition at line 110 of file matrix_transform_rt_inl.h.
|
inlinenodiscard |
Definition at line 214 of file transform_rt_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 834 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 860 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 865 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 677 of file matrix_utils_inl.h.
Definition at line 703 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 710 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 688 of file matrix_utils_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 378 of file math_utils_inl.h.
|
inlinenodiscard |
Definition at line 644 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 591 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 612 of file matrix_utils_inl.h.
|
inline |
Definition at line 826 of file simd_inl.h.
Definition at line 904 of file matrix_utils_inl.h.
|
inline |
Definition at line 700 of file simd_inl.h.
Definition at line 617 of file matrix_utils_inl.h.
|
inlinenodiscard |
Definition at line 28 of file transform_rt_utils.h.
|
inlinenodiscard |
Per-lane finiteness check on a SIMD-typed NdArray.
Returns a per-lane SIMD mask.
Definition at line 416 of file math_utils_inl.h.
|
inlinenodiscard |
Definition at line 189 of file quaternion_utils_inl.h.
Definition at line 755 of file simd_inl.h.
|
inline |
Definition at line 236 of file transform_rt_inl.h.
|
inlinenodiscard |
Definition at line 95 of file math_utils_inl.h.
|
inline |
Definition at line 733 of file simd_inl.h.
|
inline |
Definition at line 738 of file simd_inl.h.
Definition at line 844 of file simd_inl.h.
Definition at line 837 of file simd_inl.h.
|
inline |
Definition at line 705 of file simd_inl.h.
|
constexpr |
Sentinel value for LinearSolverParams::maxIter that lets Mochi automatically select the maximum number of linear solver iterations.
Definition at line 344 of file linear_solver_params.h.
|
inlineconstexpr |
Default anisotropic stiffness (α) [Pa].
Definition at line 36 of file material_types.h.
|
inlineconstexpr |
Default anisotropic reference length (dimensionless).
Definition at line 39 of file material_types.h.
|
inlineconstexpr |
Default ARAP stiffness (μ) [Pa].
Definition at line 33 of file material_types.h.
|
inlineconstexpr |
Default material density [kg/m³].
Definition at line 39 of file material_params.h.
|
inlineconstexpr |
Default gravity acceleration in world frame [m/s²].
Definition at line 43 of file mochi_scene.h.
|
inlineconstexpr |
Definition at line 202 of file basic_utils.h.
|
inlineconstexpr |
Definition at line 204 of file basic_utils.h.
|
inlineconstexpr |
Definition at line 203 of file basic_utils.h.
|
inline |
|
inlineconstexpr |
Default Poisson's ratio (dimensionless).
Definition at line 30 of file material_types.h.
Default tolerance for the L2 norm of the non-linear solver's raw linear-solve increment.
Avoids attempting to solve beyond the floating-point noise floor.
Definition at line 324 of file nonlinear_solver_params.h.
|
inlineconstexpr |
Default Young's modulus [Pa].
Definition at line 27 of file material_types.h.
Definition at line 29 of file constants.h.
|
staticconstexpr |
Definition at line 58 of file constants.h.
|
staticconstexpr |
Definition at line 75 of file constants.h.
|
staticconstexpr |
Default value for GridSdfParams::boundaryPaddingDist [m].
Definition at line 87 of file grid_sdf_params.h.
Definition at line 33 of file constants.h.
Definition at line 41 of file constants.h.
|
inlineconstexpr |
Default value for an invalid handle.
Definition at line 29 of file mochi_handle.h.
Definition at line 90 of file constants.h.
|
staticconstexpr |
Definition at line 101 of file nd_array.h.
|
inlineconstexpr |
Helper variable template for IsResizeNoInitSafe.
Definition at line 80 of file dynamic_array.h.
|
inlineconstexpr |
Spatial dimensionality of mesh data.
Definition at line 37 of file mesh_data.h.
Definition at line 34 of file constants.h.
|
constexpr |
Definition at line 26 of file constants.h.
|
inlineconstexpr |
Definition at line 27 of file constants.h.
Definition at line 28 of file constants.h.
|
inlineconstexpr |
Definition at line 37 of file constants.h.
|
inlineconstexpr |
Definition at line 38 of file constants.h.
|
inlineconstexpr |
Definition at line 39 of file constants.h.
|
inlineconstexpr |
Definition at line 40 of file constants.h.
|
inlineconstexpr |
Definition at line 36 of file constants.h.
Definition at line 43 of file constants.h.
|
constexpr |
Definition at line 106 of file constants.h.
|
constexpr |
|
inlineconstexpr |
Definition at line 30 of file constants.h.
|
inlineconstexpr |
Definition at line 32 of file constants.h.
|
inlineconstexpr |
Definition at line 31 of file constants.h.
|
inlineconstexpr |
Definition at line 35 of file constants.h.