PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
|
▼ source | |
▼ pbat | |
► common | |
ArgSort.h | Non-intrusive sorting |
BinaryRadixTree.h | Radix Tree implementation |
BruteSet.h | Fixed-size brute-force set implementation usable in both host and device code, suitable for small sets |
Common.h | This file includes all the common headers |
Concepts.h | Concepts for common types |
ConstexprFor.h | Compile-time for loops |
CountingSort.h | Counting sort |
Eigen.h | Eigen adaptors for ranges |
Hash.h | Hash functions for std::pair, std::tuple, and pbat::IndexVector |
Heap.h | Fixed-size heap implementation usable in both host and device code |
Indexing.h | |
Modulo.h | Modulo function |
NAryTreeTraversal.h | Generic n-ary tree traversals |
Overloaded.h | Helper class to allow multiple inheritance of operator() for lambdas |
Permute.h | Permutation of values in-place |
Queue.h | Fixed-size queue implementation usable in both host and device code |
Stack.h | Fixed-size stack implementation usable in both host and device code |
► fem | |
Concepts.h | |
DeformationGradient.h | Functions to compute deformation gradient and its derivatives |
Fem.h | This file includes all the FEM related headers |
Gradient.h | FEM gradient operator |
Hexahedron.h | Hexahedron finite element |
HyperElasticPotential.h | Hyper elastic potential energy |
Jacobian.h | Functions to compute jacobians, their determinants, domain quadrature weights and mapping domain to reference space |
Laplacian.h | |
Line.h | Line finite element |
LoadVector.h | Functions to compute load vectors for FEM elements |
Mass.h | FEM mass matrix operator |
Mesh.h | Finite element mesh API and implementation |
MeshQuadrature.h | Utility functions computing common mesh quadrature quantities |
QuadratureRules.h | |
Quadrilateral.h | Quadrilateral finite element |
ShapeFunctions.h | FEM shape functions and gradients |
Tetrahedron.h | Tetrahedron finite element |
Triangle.h | Triangle finite element |
► geometry | |
► model | |
Armadillo.h | |
Cube.h | |
Enums.h | |
Model.h | |
► sdf | |
BinaryNode.h | This file defines binary nodes for a SDF compositions |
Composite.h | This file defines an SDF composition |
Forest.h | |
Primitive.h | This file defines primitive SDF shapes |
Sdf.h | This file includes all the signed distance function (SDF) related headers |
Transform.h | This file defines transforms useful for moving SDFs around |
TypeDefs.h | This file defines common type definitions used in the SDF module |
UnaryNode.h | This file defines unary nodes for SDF compositions |
AabbKdTreeHierarchy.h | BVH over axis-aligned bounding boxes using a k-D tree |
AabbRadixTreeHierarchy.h | |
AxisAlignedBoundingBox.h | Axis-aligned bounding box class |
BoundingVolumeHierarchy.h | Bounding volume hierarchy (BVH) implementation for spatial partitioning of primitives |
ClosestPointQueries.h | This file contains functions to answer closest point queries |
DistanceQueries.h | This file contains functions to answer distance queries |
EdgeEdgeCcd.h | Edge-edge continuous collision detection (CCD) implementation |
Geometry.h | This file includes all the geometry related headers |
HashGrid.h | This file contains the definition of the HashGrid class, which is used for spatial partitioning of 3D points in a grid structure |
HierarchicalHashGrid.h | |
IntersectionQueries.h | This file contains functions to answer intersection queries |
KdTree.h | This file contains the KdTree class |
MeshBoundary.h | This file contains functions to compute the boundary of a mesh |
Morton.h | This file contains functions to compute Morton codes |
OverlapQueries.h | This file contains functions to answer overlap queries |
PointTriangleCcd.h | Point-triangle continuous collision detection (CCD) implementation |
SpatialSearch.h | Generic efficient spatial search query implementations |
TetrahedralAabbHierarchy.h | This file contains the TetrahedralAabbHierarchy class |
TriangleAabbHierarchy.h | This file contains the TriangleAabbHierarchy classes for 2D and 3D |
► gpu | |
► common | |
Buffer.h | This file contains the Buffer class for 1- or 2-dimensional GPU buffers of numeric types |
Common.h | This file includes the public API of common utilities for GPU code |
► contact | |
Contact.h | This file includes the public API for GPU contact detection algorithms |
VertexTriangleMixedCcdDcd.h | This file contains the VertexTriangleMixedCcdDcd class for vertex-triangle mixed continuous collision detection (CCD) and discrete collision detection (DCD) on the GPU |
► geometry | |
Aabb.h | Axis-aligned bounding box (AABB) buffer on the GPU |
Bvh.h | Linear BVH GPU implementation |
Geometry.h | Public API for PBAT'S geometry algorithms on the GPU |
SweepAndPrune.h | Sweep and Prune GPU implementation |
► impl | |
► common | |
Buffer.cuh | |
Common.h | |
Cuda.cuh | |
Eigen.cuh | |
SynchronizedList.cuh | |
Var.cuh | |
► contact | |
Contact.h | |
VertexTriangleMixedCcdDcd.cuh | |
► geometry | |
Aabb.cuh | |
Bvh.cuh | |
Geometry.h | |
Morton.cuh | |
SweepAndPrune.cuh | |
► math | |
Blas.cuh | BLAS API wrapper over cuBLAS |
LinearSolver.cuh | Linear solver abstractions over cuSolver |
Math.h | GPU implementations of math functions |
Matrix.cuh | Matrix and vector cuBLAS abstractions |
► vbd | |
AndersonIntegrator.cuh | Anderson acceleration VBD integrator |
ChebyshevIntegrator.cuh | Chebyshev semi-iterated method accelerated VBD integrator |
Integrator.cuh | VBD integrator implementation |
Kernels.cuh | VBD kernels |
TrustRegionIntegrator.cuh | Trust-Region accelerated VBD integrator |
Vbd.h | Vertex Block Descent (VBD) integrator API |
► xpbd | |
Integrator.cuh | |
Xpbd.h | |
Impl.h | Catch-all private implementation header |
► profiling | |
Profiling.h | Profiling utilities for host-side GPU code |
► vbd | |
Integrator.h | VBD integrator public API |
Vbd.h | This file includes PBAT'S Vertex Block Descent [2] public GPU API |
► xpbd | |
Integrator.h | This file contains the public API of the GPU XPBD integrator |
Xpbd.h | This file includes PBAT'S (eXtended) Position Based Dynamics [1] public GPU API |
Aliases.h | Type aliases for GPU code |
DisableWarnings.h | Disables irrelevant warnings in GPU sources |
Gpu.h | This file includes all the public GPU related headers |
► graph | |
Adjacency.h | Adjacency matrix utilities |
BreadthFirstSearch.h | |
Color.h | Graph coloring algorithms |
ConnectedComponents.h | |
DepthFirstSearch.h | |
DisjointSetUnionFind.h | |
Enums.h | Enums for graph algorithms API |
Graph.h | Includes all the headers of the graph module |
Mesh.h | Mesh graph utilities |
Partition.h | Graph partitioning API |
► io | |
Archive.h | (De)serializer |
Concepts.h | Header file for the IO module's concepts |
Io.h | Header file for the IO module |
► math | |
► linalg | |
► mini | |
Api.h | |
Assign.h | |
BinaryOperations.h | |
Cast.h | |
Concepts.h | |
Determinant.h | |
Eigen.h | |
Flatten.h | |
Geometry.h | |
Inverse.h | |
Matrix.h | |
Mini.h | This file includes all the mini linear algebra headers |
Norm.h | |
Product.h | |
Reductions.h | |
Repeat.h | |
Scale.h | |
Stack.h | |
SubMatrix.h | |
Transpose.h | |
UnaryOperations.h | |
Cholmod.h | |
FilterEigenvalues.h | |
LinAlg.h | This file includes all the Linear Algebra related headers |
SelectionMatrix.h | |
SparsityPattern.h | |
► optimization | |
BranchAndBound.h | |
LineSearch.h | Header file for line search algorithms |
Newton.h | Header file for Newton's method for optimization |
Optimization.h | Header file for optimization algorithms |
► polynomial | |
Basis.h | Basis polynomials in \( d=1,2,3 \) dimensions and orders \( p=1,2,3,4 \) |
Concepts.h | Concepts for polynomial basis |
Polynomial.h | This file includes all the necessary headers for the Polynomial module |
Roots.h | Root-finders for polynomial of arbitrary degree |
Concepts.h | This file contains the concepts used in the math module |
GaussQuadrature.h | Gauss-Legendre quadrature schemes over the unit box in dimensions 1, 2, 3 |
IntegerArithmeticChecks.h | This file provides functions to check for integer arithmetic overflow |
LinearOperator.h | Linear operator concept and composite type |
Math.h | This file includes all the Math related headers |
MomentFitting.h | Moment fitting for polynomial quadrature rules |
Rational.h | Fixed size rational number representation using std::int64_t as numerator and denominator |
SymmetricQuadratureRules.h | Symmetric quadrature rules for reference simplices in dimensions \( d=1,2,3 \) |
► physics | |
Enums.h | |
HyperElasticity.h | |
Physics.h | This file includes all the physics related headers |
SaintVenantKirchhoffEnergy.h | Saint-Venant Kirchhoff hyperelastic energy |
StableNeoHookeanEnergy.h | Stable Neo-Hookean [12] hyperelastic energy |
► profiling | |
Profiling.h | Profiling utilities for the Physics-Based Animation Toolkit (PBAT) |
► sim | |
► algorithm | |
► newton | |
Config.h | Header file for the Newton integrator's configuration |
HessianProduct.h | Header file for Hessian product algorithms |
Integrator.h | Header file for the Newton integrator |
Newton.h | Catch-all header for Newton simulation algorithms |
Preconditioner.h | |
► pd | |
PD.h | Catch-all header for Projective Dynamics simulation algorithms |
ValanisLandelQuasiNewton.h | Header for Valanis-Landel Quasi-Newton stiffness |
Algorithm.h | Header file for PBAT simulation algorithms |
► contact | |
Constraints.h | |
Contact.h | Catch-all header for contact detection algorithms APIs |
Environment.h | Static environment geometry for contact simulation |
MeshVertexTetrahedronDcd.h | |
MultibodyMeshMixedCcdDcd.h | This file contains a multibody (tetrahedral) mesh mixed discrete and continuous collision detection system |
MultibodyTetrahedralMeshSystem.h | |
► dynamics | |
Dynamics.h | Dynamics module catch-all header |
FemElastoDynamics.h | Header file for the Finite Element Elasto-Dynamics module |
► integration | |
Bdf.h | BDF (Backward Differentiation Formula) time integration scheme |
Integration.h | Time integration schemes for ODEs |
► vbd | |
► multigrid | |
Hierarchy.h | |
HyperReduction.h | |
Integrator.h | |
Kernels.h | |
Level.h | |
Multigrid.h | |
Smoother.h | |
AndersonIntegrator.h | Anderson accelerated VBD integrator |
BroydenIntegrator.h | Broyden VBD integrator |
ChebyshevIntegrator.h | |
Data.h | |
Enums.h | |
Integrator.h | |
Kernels.h | |
Mesh.h | |
NesterovIntegrator.h | |
Vbd.h | This file includes PBAT'S Vertex Block Descent (VBD) [2] API |
► xpbd | |
Data.h | |
Enums.h | |
Integrator.h | |
Kernels.h | |
Xpbd.h | This file includes PBAT'S (eXtended) Position-Based Dynamics [1] implementation |
Sim.h | This file includes all of PBAT'S simulation algorithm implementations |
► warning | |
FloatConversion.h | |
OldStyleCast.h | |
Pop.h | |
Push.h | |
SignCompare.h | |
SignConversion.h | |
Aliases.h | |
DoctestLoadDLL.h | No-op function to force load PhysicsBasedAnimationToolkit DLL |
HostDevice.h | |
Pbat.h | This file includes all the headers of the library |