|
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 |