|
void | ForEach (size_t size,...) |
|
template<typename VarType> |
void | multiply_transposedSM_by_vector (DArrayMap< VarType > &matrix_a, DArray< VarType > &a, DArray< VarType > &Aa) |
|
template<typename VarType> |
void | multiply_SM_by_vector (DArrayMap< VarType > &matrix_a, DArray< VarType > &a, DArray< VarType > &Aa) |
|
template<uint N> |
void | parallel_allocate_for_list (void *lists, void *elements, size_t ele_size, DArray< uint > &index) |
|
template<uint N> |
void | parallel_init_for_list (void *lists, void *elements, size_t ele_size, DArray< uint > &index) |
|
template<uint N> |
void | parallel_allocate_for_map (void *maps, void *elements, size_t ele_size, DArray< uint > &index) |
|
template<uint N> |
void | parallel_init_for_map (void *maps, void *elements, size_t ele_size, DArray< uint > &index) |
|
int | SizeOfNextLevel (int size, int localSize) |
|
int | ScanSizeOfNextLevel (int size, int localSize) |
|
int | ComputeAddZeroSize (int OriginalSize) |
|
static uint | iDivUp (uint a, uint b) |
|
static dim3 | vkDispatchSize (uint totalSize, uint blockSize) |
|
static dim3 | vkDispatchSize2D (uint size_x, uint size_y, uint blockSize) |
|
static dim3 | vkDispatchSize3D (uint size_x, uint size_y, uint size_z, uint blockSize) |
|
template<typename T> |
VkDeviceArray< T > * | bufferPtr () |
|
template<typename T> |
VkDeviceArray2D< T > * | buffer2DPtr () |
|
template<typename T> |
VkDeviceArray3D< T > * | buffer3DPtr () |
|
template<typename T> |
VkUniform< T > * | uniformPtr () |
|
template<typename T> |
VkConstant< T > * | constantPtr () |
|
VKAPI_ATTR VkBool32 VKAPI_CALL | debugUtilsMessengerCallback (VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageType, const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, void *pUserData) |
|
template<typename T> |
bool | vkTransfer (VkHostArray< T > &dst, const VkDeviceArray< T > &src) |
|
template<typename T> |
bool | vkTransfer (VkDeviceArray< T > &dst, const VkHostArray< T > &src) |
|
template<typename T> |
bool | vkTransfer (std::vector< T > &dst, const VkDeviceArray< T > &src) |
|
template<typename T> |
bool | vkTransfer (VkDeviceArray< T > &dst, const std::vector< T > &src) |
|
template<typename T> |
bool | vkTransfer (VkDeviceArray< T > &dst, const VkDeviceArray< T > &src) |
|
template<typename T> |
bool | vkTransfer (VkDeviceArray< T > &dst, uint64_t dstOffset, const VkDeviceArray< T > &src, uint64_t srcOffset, uint64_t copySize) |
|
template<typename T> |
bool | vkTransfer (VkHostArray< T > &dst, const VkDeviceArray2D< T > &src) |
|
template<typename T> |
bool | vkTransfer (std::vector< T > &dst, const VkDeviceArray2D< T > &src) |
|
template<typename T> |
bool | vkTransfer (VkDeviceArray2D< T > &dst, const std::vector< T > &src) |
|
template<typename T> |
bool | vkTransfer (VkDeviceArray2D< T > &dst, const VkDeviceArray2D< T > &src) |
|
template<typename T> |
bool | vkTransfer (VkDeviceArray3D< T > &dst, const std::vector< T > &src) |
|
template<typename T> |
bool | vkTransfer (VkDeviceArray3D< T > &dst, const VkDeviceArray3D< T > &src) |
|
template<typename T> |
bool | vkTransfer (VkHostArray< T > &dst, const VkDeviceArray3D< T > &src) |
|
template<typename T> |
bool | vkTransfer (std::vector< T > &dst, const VkDeviceArray3D< T > &src) |
|
template<typename T> |
DYN_FUNC T | getPoint2SegmentDistance (const Vector< T, 3 > &p, const Vector< T, 3 > &v0, const Vector< T, 3 > &v1) |
|
template<typename T> |
DYN_FUNC bool | inTri (const Vector< T, 3 > &p, const Vector< T, 3 > &v0, const Vector< T, 3 > &v1, const Vector< T, 3 > &v2) |
|
template<typename T> |
DYN_FUNC T | STP (const Vector< T, 3 > &u, const Vector< T, 3 > &v, const Vector< T, 3 > &w) |
|
template<typename T> |
DYN_FUNC void | fswap (T &a, T &b) |
|
template<typename T> |
DYN_FUNC T | SignedDistanceVF (const Vector< T, 3 > &x, const Vector< T, 3 > &y0, const Vector< T, 3 > &y1, const Vector< T, 3 > &y2, Vector< T, 3 > *n, T *w) |
|
template<typename T> |
DYN_FUNC T | SignedDistanceEE (const Vector< T, 3 > &x0, const Vector< T, 3 > &x1, const Vector< T, 3 > &y0, const Vector< T, 3 > &y1, Vector< T, 3 > *n, Real *w) |
|
template<typename T> |
DYN_FUNC T | triProduct (Vector< T, 3 > &a, Vector< T, 3 > &b, Vector< T, 3 > &c) |
|
template<typename T> |
DYN_FUNC Vector< T, 3 > | xvpos (Vector< T, 3 > x, Vector< T, 3 > v, T t) |
|
template<typename T> |
DYN_FUNC int | sgn (T x) |
|
template<typename T> |
DYN_FUNC int | SolveQuadratic (T a, T b, T c, T x[2]) |
|
template<typename T> |
DYN_FUNC T | NewtonsMethod (T a, T b, T c, T d, T x0, int init_dir) |
|
template<typename T> |
DYN_FUNC int | SolveCubic (T a, T b, T c, T d, T x[3]) |
|
template<typename T> |
DYN_FUNC bool | CollisionTest (const Vector< T, 3 > &x0, const Vector< T, 3 > &x1, const Vector< T, 3 > &x2, const Vector< T, 3 > &x3, const Vector< T, 3 > &v0, const Vector< T, 3 > &v1, const Vector< T, 3 > &v2, const Vector< T, 3 > &v3, T &time, const int isVF) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | acos (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | asin (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | atan (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | asinh (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | acosh (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | atanh (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | cos (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | cosh (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | exp (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | log (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | log10 (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | pow (const Complex< Real > &, const Real &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | pow (const Complex< Real > &, const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | pow (const Real &, const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | sin (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | sinh (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | sqrt (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | tan (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | tanh (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Real | arg (const Complex< Real > &) |
|
template<typename Real> |
DYN_FUNC Complex< Real > | polar (const Real &__rho, const Real &__theta=Real(0)) |
|
template<typename S, typename T> |
DYN_FUNC const Complex< T > | operator+ (S scale, const Complex< T > &complex) |
|
template<typename S, typename T> |
DYN_FUNC const Complex< T > | operator- (S scale, const Complex< T > &complex) |
|
template<typename S, typename T> |
DYN_FUNC const Complex< T > | operator* (S scale, const Complex< T > &complex) |
|
template<typename S, typename T> |
DYN_FUNC const Complex< T > | operator/ (S scale, const Complex< T > &complex) |
|
template<typename T, DeviceType deviceType> |
DYN_FUNC T | lerp (Array< T, deviceType > &array1d, float x, LerpMode mode=LerpMode::REPEAT) |
|
template<typename T, DeviceType deviceType> |
DYN_FUNC T | bilinear (Array2D< T, deviceType > &array2d, float x, float y, LerpMode mode=LerpMode::REPEAT) |
|
template<typename T, DeviceType deviceType> |
DYN_FUNC T | trilinear (Array3D< T, deviceType > &array3d, float x, float y, float z, LerpMode mode=LerpMode::REPEAT) |
|
template<typename T> |
DYN_FUNC int | isless (T const &a, T const &b, T const EPS=EPSILON) |
|
template<typename T, typename D, typename std::enable_if<!std::is_same< T, D >::value, int >::type = 0> |
DYN_FUNC int | isless (T const &a, D const &b, T const EPS=EPSILON) |
|
template<typename T> |
DYN_FUNC int | isleq (T const &a, T const &b, T const EPS=EPSILON) |
|
template<typename T, typename D, typename std::enable_if<!std::is_same< T, D >::value, int >::type = 0> |
DYN_FUNC int | isleq (T const &a, D const &b, T const EPS=EPSILON) |
|
template<typename T> |
DYN_FUNC int | isgreat (T const &a, T const &b, T const EPS=EPSILON) |
|
template<typename T, typename D, typename std::enable_if<!std::is_same< T, D >::value, int >::type = 0> |
DYN_FUNC int | isgreat (T const &a, D const &b, T const EPS=EPSILON) |
|
template<typename T> |
DYN_FUNC int | isgeq (T const &a, T const &b, T const EPS=EPSILON) |
|
template<typename T, typename D, typename std::enable_if<!std::is_same< T, D >::value, int >::type = 0> |
DYN_FUNC int | isgeq (T const &a, D const &b, T const EPS=EPSILON) |
|
template<typename T> |
DYN_FUNC int | iseq (T const &a, T const &b, T const EPS=EPSILON) |
|
template<typename T, typename D, typename std::enable_if<!std::is_same< T, D >::value, int >::type = 0> |
DYN_FUNC int | iseq (T const &a, D const &b, T const EPS=EPSILON) |
|
template<typename T> |
DYN_FUNC int | sign (T const &a, T const EPS=EPSILON) |
|
template<typename T> |
DYN_FUNC T | clamp (const T &v, const T &lo, const T &hi) |
|
template<typename T> |
DYN_FUNC Vector< T, 2 > | clamp (const Vector< T, 2 > &v, const Vector< T, 2 > &lo, const Vector< T, 2 > &hi) |
|
template<typename T> |
DYN_FUNC Vector< T, 3 > | clamp (const Vector< T, 3 > &v, const Vector< T, 3 > &lo, const Vector< T, 3 > &hi) |
|
template<typename T> |
DYN_FUNC Vector< T, 4 > | clamp (const Vector< T, 4 > &v, const Vector< T, 4 > &lo, const Vector< T, 4 > &hi) |
|
template<typename T> |
DYN_FUNC T | abs (const T &v) |
|
template<typename T> |
DYN_FUNC Vector< T, 2 > | abs (const Vector< T, 2 > &v) |
|
template<typename T> |
DYN_FUNC Vector< T, 3 > | abs (const Vector< T, 3 > &v) |
|
template<typename T> |
DYN_FUNC Vector< T, 4 > | abs (const Vector< T, 4 > &v) |
|
template<typename T> |
DYN_FUNC T | minimum (const T &v0, const T &v1) |
|
template<typename T> |
DYN_FUNC Vector< T, 2 > | minimum (const Vector< T, 2 > &v0, const Vector< T, 2 > &v1) |
|
template<typename T> |
DYN_FUNC Vector< T, 3 > | minimum (const Vector< T, 3 > &v0, const Vector< T, 3 > &v1) |
|
template<typename T> |
DYN_FUNC Vector< T, 4 > | minimum (const Vector< T, 4 > &v0, const Vector< T, 4 > &v1) |
|
template<typename T> |
DYN_FUNC T | maximum (const T &v0, const T &v1) |
|
template<typename T> |
DYN_FUNC Vector< T, 2 > | maximum (const Vector< T, 2 > &v0, const Vector< T, 2 > &v1) |
|
template<typename T> |
DYN_FUNC Vector< T, 3 > | maximum (const Vector< T, 3 > &v0, const Vector< T, 3 > &v1) |
|
template<typename T> |
DYN_FUNC Vector< T, 4 > | maximum (const Vector< T, 4 > &v0, const Vector< T, 4 > &v1) |
|
template<typename T> |
DYN_FUNC T | dot (Vector< T, 2 > const &U, Vector< T, 2 > const &V) |
|
template<typename T> |
DYN_FUNC T | dot (Vector< T, 3 > const &U, Vector< T, 3 > const &V) |
|
template<typename T> |
DYN_FUNC Vector< T, 3 > | cross (Vector< T, 3 > const &U, Vector< T, 3 > const &V) |
|
template<typename T> |
DYN_FUNC T | dotcross (Vector< T, 3 > const &U, Vector< T, 3 > const &V, Vector< T, 3 > const &W) |
|
template<typename T> |
DYN_FUNC Vector< T, 2 > | perp (Vector< T, 2 > const &v) |
|
template<typename T> |
DYN_FUNC T | dotperp (Vector< T, 2 > const &v0, Vector< T, 2 > const &v1) |
|
DYN_FUNC unsigned int | lowbit (unsigned int x) |
|
DYN_FUNC unsigned int | countbit (unsigned int x) |
|
DYN_FUNC unsigned int | __builtin_clz (unsigned int x) |
|
DYN_FUNC unsigned int | MSB (unsigned int x) |
|
DYN_FUNC unsigned int | lownum (unsigned int x) |
|
DYN_FUNC int | checkbit (unsigned int const &x, unsigned int const &y) |
|
template<typename S, typename T> |
DYN_FUNC const SquareMatrix< T, 2 > | operator* (S scale, const SquareMatrix< T, 2 > &mat) |
|
template<typename S, typename T> |
DYN_FUNC const SquareMatrix< T, 3 > | operator* (S scale, const SquareMatrix< T, 3 > &mat) |
|
template<typename S, typename T> |
DYN_FUNC const SquareMatrix< T, 4 > | operator* (S scale, const SquareMatrix< T, 4 > &mat) |
|
template<typename Real, int Dim> |
DYN_FUNC void | polarDecomposition (const SquareMatrix< Real, Dim > &A, SquareMatrix< Real, Dim > &R, SquareMatrix< Real, Dim > &U, SquareMatrix< Real, Dim > &D) |
|
template<typename Real, int Dim> |
DYN_FUNC void | polarDecomposition (const SquareMatrix< Real, Dim > &M, SquareMatrix< Real, Dim > &R, Real tolerance) |
|
template<typename Real> |
DYN_FUNC void | jacobiRotate (SquareMatrix< Real, 3 > &A, SquareMatrix< Real, 3 > &R, int p, int q) |
|
template<typename Real> |
DYN_FUNC void | EigenDecomposition (const SquareMatrix< Real, 3 > &A, SquareMatrix< Real, 3 > &eigenVecs, Vector< Real, 3 > &eigenVals) |
|
template<typename Real> |
DYN_FUNC void | QRDecomposition (SquareMatrix< Real, 3 > &A, SquareMatrix< Real, 3 > &R, int p, int q) |
|
template<typename Real> |
DYN_FUNC void | polarDecomposition (const SquareMatrix< Real, 3 > &A, SquareMatrix< Real, 3 > &R, SquareMatrix< Real, 3 > &U, SquareMatrix< Real, 3 > &D) |
|
template<typename Real> |
DYN_FUNC void | polarDecomposition (const SquareMatrix< Real, 3 > &M, SquareMatrix< Real, 3 > &R, Real tolerance) |
|
template<typename S, typename T> |
DYN_FUNC Quat< T > | operator* (S scale, const Quat< T > &quad) |
|
template<typename RandomAccessIterator, typename Distance, typename T, typename Compare, typename ValueType> |
DYN_FUNC void | promote_heap_impl (RandomAccessIterator first, Distance topPosition, Distance position, T value, Compare compare) |
| promote_heap_implementation
|
|
template<typename RandomAccessIterator, typename Distance, typename T, typename Compare> |
DYN_FUNC void | promote_heap (RandomAccessIterator first, Distance topPosition, Distance position, const T &value, Compare compare) |
|
template<typename RandomAccessIterator, typename Distance, typename T, typename Compare> |
DYN_FUNC void | promote_heap (RandomAccessIterator first, Distance topPosition, Distance position, T &&value, Compare compare) |
|
template<typename RandomAccessIterator, typename Distance, typename T, typename Compare, typename ValueType> |
DYN_FUNC void | adjust_heap_impl (RandomAccessIterator first, Distance topPosition, Distance heapSize, Distance position, T value, Compare compare) |
| adjust heap implementation
|
|
template<typename RandomAccessIterator, typename Distance, typename T, typename Compare> |
DYN_FUNC void | adjust_heap (RandomAccessIterator first, Distance topPosition, Distance heapSize, Distance position, const T &value, Compare compare) |
|
template<typename RandomAccessIterator, typename Distance, typename T, typename Compare> |
DYN_FUNC void | adjust_heap (RandomAccessIterator first, Distance topPosition, Distance heapSize, Distance position, T &&value, Compare compare) |
|
template<typename RandomAccessIterator, typename Compare> |
DYN_FUNC void | push_heap (RandomAccessIterator first, RandomAccessIterator last, Compare compare) |
|
template<typename RandomAccessIterator, typename Compare> |
DYN_FUNC void | pop_heap (RandomAccessIterator first, RandomAccessIterator last, Compare compare) |
|
template<typename RandomAccessIterator, typename Compare> |
DYN_FUNC void | make_heap (RandomAccessIterator first, RandomAccessIterator last, Compare compare) |
|
template<typename RandomAccessIterator, typename Compare> |
DYN_FUNC void | sort_heap (RandomAccessIterator first, RandomAccessIterator last, Compare compare) |
|
template<typename RandomAccessIterator, typename Distance, typename Compare> |
DYN_FUNC void | remove_heap (RandomAccessIterator first, Distance heapSize, Distance position, Compare compare) |
|
template<typename RandomAccessIterator, typename Distance, typename Compare> |
DYN_FUNC void | change_heap (RandomAccessIterator first, Distance heapSize, Distance position, Compare compare) |
|
template<typename RandomAccessIterator, typename Compare> |
DYN_FUNC RandomAccessIterator | is_heap_until (RandomAccessIterator first, RandomAccessIterator last, Compare compare) |
| is_heap_until
|
|
template<typename RandomAccessIterator> |
DYN_FUNC bool | is_heap (RandomAccessIterator first, RandomAccessIterator last) |
|
template<typename T, typename Container, typename Compare> |
DYN_FUNC bool | operator== (const priority_queue< T, Container, Compare > &a, const priority_queue< T, Container, Compare > &b) |
|
template<typename T, typename Container, typename Compare> |
DYN_FUNC bool | operator< (const priority_queue< T, Container, Compare > &a, const priority_queue< T, Container, Compare > &b) |
|
template<typename T, typename Container, typename Compare> |
DYN_FUNC bool | operator!= (const priority_queue< T, Container, Compare > &a, const priority_queue< T, Container, Compare > &b) |
|
template<typename T, typename Container, typename Compare> |
DYN_FUNC bool | operator> (const priority_queue< T, Container, Compare > &a, const priority_queue< T, Container, Compare > &b) |
|
template<typename T, typename Container, typename Compare> |
DYN_FUNC bool | operator<= (const priority_queue< T, Container, Compare > &a, const priority_queue< T, Container, Compare > &b) |
|
template<typename T, typename Container, typename Compare> |
DYN_FUNC bool | operator>= (const priority_queue< T, Container, Compare > &a, const priority_queue< T, Container, Compare > &b) |
|
template<typename InputIterator, typename OutputIterator> |
static DYN_FUNC OutputIterator | move_or_copy (InputIterator first, InputIterator last, OutputIterator result) |
|
template<typename Iterator> |
static DYN_FUNC Iterator | move_or_copy_backward (Iterator first, Iterator last, Iterator resultEnd) |
|
template<typename InputIterator1, typename InputIterator2> |
DYN_FUNC bool | lexicographical_compare (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2) |
|
template<typename T> |
bool | operator== (const RandomAccessContainer< T > &a, const RandomAccessContainer< T > &b) |
|
template<typename T> |
bool | operator!= (const RandomAccessContainer< T > &a, const RandomAccessContainer< T > &b) |
|
template<typename T> |
bool | operator< (const RandomAccessContainer< T > &a, const RandomAccessContainer< T > &b) |
|
template<typename T> |
bool | operator> (const RandomAccessContainer< T > &a, const RandomAccessContainer< T > &b) |
|
template<typename T> |
bool | operator<= (const RandomAccessContainer< T > &a, const RandomAccessContainer< T > &b) |
|
template<typename T> |
bool | operator>= (const RandomAccessContainer< T > &a, const RandomAccessContainer< T > &b) |
|
template<typename T> |
DYN_FUNC int | leftBound (T target, T *startLoc, uint maxSize) |
| Find the left bound of a target with a binary search algorithm.
|
|
template<typename T> |
DYN_FUNC int | rightBound (T target, T *startLoc, uint maxSize) |
| Find the right bound of a target with a binary search algorithm.
|
|
template<typename T> |
DYN_FUNC constexpr T && | forward (typename dyno::remove_reference< T >::type &x) noexcept |
|
template<typename T> |
DYN_FUNC constexpr T && | forward (typename dyno::remove_reference< T >::type &&x) noexcept |
|
template<typename S, typename T> |
DYN_FUNC const Vector< T, 2 > | operator* (S scale, const Vector< T, 2 > &vec) |
|
template<typename S, typename T> |
DYN_FUNC const Vector< T, 3 > | operator* (S scale, const Vector< T, 3 > &vec) |
|
template<typename S, typename T> |
DYN_FUNC const Vector< T, 4 > | operator* (S scale, const Vector< T, 4 > &vec) |
|
template<class T> |
DYN_FUNC VectorND< T, 2 > | makeFixedVector (const T &v0, const T &v1) |
|
template<class T> |
DYN_FUNC VectorND< T, 3 > | makeFixedVector (const T &v0, const T &v1, const T &v2) |
|
template<class T> |
DYN_FUNC VectorND< T, 4 > | makeFixedVector (const T &v0, const T &v1, const T &v2, const T &v3) |
|
template<class T> |
DYN_FUNC VectorND< T, 5 > | makeFixedVector (const T &v0, const T &v1, const T &v2, const T &v3, const T &v4) |
|
template<class T> |
DYN_FUNC VectorND< T, 6 > | makeFixedVector (const T &v0, const T &v1, const T &v2, const T &v3, const T &v4, const T &v5) |
|
template<class T> |
DYN_FUNC VectorND< T, 7 > | makeFixedVector (const T &v0, const T &v1, const T &v2, const T &v3, const T &v4, const T &v5, const T &v6) |
|
template<class T> |
DYN_FUNC VectorND< T, 8 > | makeFixedVector (const T &v0, const T &v1, const T &v2, const T &v3, const T &v4, const T &v5, const T &v6, const T &v7) |
|
template<class T> |
DYN_FUNC VectorND< T, 9 > | makeFixedVector (const T &v0, const T &v1, const T &v2, const T &v3, const T &v4, const T &v5, const T &v6, const T &v7, const T &v8) |
|
template<class T> |
DYN_FUNC VectorND< T, 10 > | makeFixedVector (const T &v0, const T &v1, const T &v2, const T &v3, const T &v4, const T &v5, const T &v6, const T &v7, const T &v8, const T &v9) |
|
| DEFINE_CLASS (VirtualParticleGenerator) |
|
| IMPLEMENT_TCLASS (Steer, TDataType) |
|
| DEFINE_CLASS (Steer) |
|
| DEFINE_CLASS (OceanBase) |
|
| DEFINE_CLASS (Vessel) |
|
| IMPLEMENT_TCLASS (PoissonDiskSampling, TDataType) |
|
| DEFINE_CLASS (VolumeBoundary) |
|
| DEFINE_CLASS (CircularEmitter) |
|
| DEFINE_CLASS (ParticleEmitter) |
|
| DEFINE_CLASS (PoissonEmitter) |
|
| DEFINE_CLASS (SquareEmitter) |
|
| DEFINE_CLASS (GhostParticles) |
|
| DEFINE_CLASS (MakeParticleSystem) |
|
| DEFINE_CLASS (ParticleApproximation) |
|
| DEFINE_CLASS (PositionBasedFluidModel) |
|
| DEFINE_CLASS (ProjectionBasedFluidModel) |
|
| IMPLEMENT_TCLASS (SurfaceEnergyForce, TDataType) |
|
| DEFINE_CLASS (ParticleFluid) |
|
| DEFINE_CLASS (ParticleSystem) |
|
| DEFINE_CLASS (Cloth) |
|
| DEFINE_CLASS (ElasticBody) |
|
| DEFINE_CLASS (ElastoplasticBody) |
|
| DEFINE_CLASS (ProjectivePeridynamics) |
|
| DEFINE_CLASS (Peridynamics) |
|
template<typename Coord, typename Bond> |
void | constructRestShape (DArrayList< Bond > &shape, DArrayList< int > &nbr, DArray< Coord > &pos) |
|
template<typename Coord, typename Bond> |
void | constructRestShapeWithSelf (DArrayList< Bond > &shape, DArrayList< int > &nbr, DArray< Coord > &pos) |
|
| DEFINE_CLASS (TetrahedralSystem) |
|
| DEFINE_CLASS (ThreadSystem) |
|
| DEFINE_CLASS (TriangularSystem) |
|
| DEFINE_CLASS (ConfigurableBody) |
|
| DEFINE_CLASS (Gear) |
|
| IMPLEMENT_TCLASS (AnimationDriver, TDataType) |
|
| DEFINE_CLASS (AnimationDriver) |
|
| IMPLEMENT_TCLASS (CarDriver, TDataType) |
|
| DEFINE_CLASS (CarDriver) |
|
| DEFINE_CLASS (ContactsUnion) |
|
| IMPLEMENT_TCLASS (InstanceTransform, TDataType) |
|
| DEFINE_CLASS (InstanceTransform) |
|
void | ApplyTransform (DArrayList< Transform3f > &instanceTransform, const DArray< Vec3f > &translate, const DArray< Mat3f > &rotation, const DArray< Pair< uint, uint > > &binding, const DArray< int > &bindingtag) |
|
void | updateVelocity (DArray< Attribute > attribute, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Vec3f > impulse, float linearDamping, float angularDamping, float dt) |
|
void | updateGesture (DArray< Attribute > attribute, DArray< Vec3f > pos, DArray< Quat1f > rotQuat, DArray< Mat3f > rotMat, DArray< Mat3f > inertia, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Mat3f > inertia_init, float dt) |
|
void | updatePositionAndRotation (DArray< Vec3f > pos, DArray< Quat1f > rotQuat, DArray< Mat3f > rotMat, DArray< Mat3f > inertia, DArray< Mat3f > inertia_init, DArray< Vec3f > impulse_constrain) |
|
void | calculateContactPoints (DArray< TContactPair< float > > contacts, DArray< int > contactCnt) |
|
void | calculateJacobianMatrix (DArray< Vec3f > J, DArray< Vec3f > B, DArray< Vec3f > pos, DArray< Mat3f > inertia, DArray< float > mass, DArray< Mat3f > rotMat, DArray< TConstraintPair< float > > constraints) |
|
void | calculateJacobianMatrixForNJS (DArray< Vec3f > J, DArray< Vec3f > B, DArray< Vec3f > pos, DArray< Mat3f > inertia, DArray< float > mass, DArray< Mat3f > rotMat, DArray< TConstraintPair< float > > constraints) |
|
void | calculateEtaVectorForPJS (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< TConstraintPair< float > > constraints) |
|
void | calculateEtaVectorForPJSBaumgarte (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Vec3f > pos, DArray< Quat1f > rotation_q, DArray< TConstraintPair< float > > constraints, DArray< float > errors, float slop, float beta, uint substepping, float dt) |
|
void | calculateEtaVectorWithERP (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Vec3f > pos, DArray< Quat1f > rotation_q, DArray< TConstraintPair< float > > constraints, DArray< float > ERP, float slop, float dt) |
|
void | calculateEtaVectorForPJSoft (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< Vec3f > pos, DArray< Quat1f > rotation_q, DArray< TConstraintPair< float > > constraints, float slop, float zeta, float hertz, float substepping, float dt) |
|
void | calculateEtaVectorForNJS (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > pos, DArray< Quat1f > rotation_q, DArray< TConstraintPair< float > > constraints, float slop, float beta) |
|
void | setUpContactsInLocalFrame (DArray< TContactPair< float > > contactsInLocalFrame, DArray< TContactPair< float > > contactsInGlobalFrame, DArray< Vec3f > pos, DArray< Mat3f > rotMat) |
|
void | setUpContactAndFrictionConstraints (DArray< TConstraintPair< float > > constraints, DArray< TContactPair< float > > contactsInLocalFrame, DArray< Vec3f > pos, DArray< Mat3f > rotMat, bool hasFriction) |
|
void | setUpContactConstraints (DArray< TConstraintPair< float > > constraints, DArray< TContactPair< float > > contactsInLocalFrame, DArray< Vec3f > pos, DArray< Mat3f > rotMat) |
|
void | setUpBallAndSocketJointConstraints (DArray< TConstraintPair< float > > constraints, DArray< BallAndSocketJoint< float > > joints, DArray< Vec3f > pos, DArray< Mat3f > rotMat, int begin_index) |
|
void | setUpSliderJointConstraints (DArray< TConstraintPair< float > > constraints, DArray< SliderJoint< float > > joints, DArray< Vec3f > pos, DArray< Mat3f > rotMat, DArray< Quat1f > rotQuat, int begin_index) |
|
void | setUpHingeJointConstraints (DArray< TConstraintPair< float > > constraints, DArray< HingeJoint< float > > joints, DArray< Vec3f > pos, DArray< Mat3f > rotMat, DArray< Quat1f > rotation_q, int begin_index) |
|
void | setUpFixedJointConstraints (DArray< TConstraintPair< float > > &constraints, DArray< FixedJoint< float > > &joints, DArray< Mat3f > &rotMat, DArray< Quat1f > &rotQuat, int begin_index) |
|
void | setUpPointJointConstraints (DArray< TConstraintPair< float > > constraints, DArray< PointJoint< float > > joints, DArray< Vec3f > pos, int begin_index) |
|
void | calculateK (DArray< TConstraintPair< float > > constraints, DArray< Vec3f > J, DArray< Vec3f > B, DArray< Vec3f > pos, DArray< Mat3f > inertia, DArray< float > mass, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3) |
|
void | calculateKWithCFM (DArray< TConstraintPair< float > > constraints, DArray< Vec3f > J, DArray< Vec3f > B, DArray< Vec3f > pos, DArray< Mat3f > inertia, DArray< float > mass, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3, DArray< float > CFM) |
|
void | JacobiIteration (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3, DArray< float > mass, DArray< float > fricCoeffs, float mu, float g, float dt) |
|
void | JacobiIterationForCFM (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3, DArray< float > mass, DArray< float > CFM, float mu, float g, float dt) |
|
void | JacobiIterationStrict (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > d, DArray< float > mass, float mu, float g, float dt) |
|
void | JacobiIterationForSoft (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3, DArray< float > mass, DArray< float > mu, float g, float dt, float zeta, float hertz) |
|
void | JacobiIterationForNJS (DArray< float > lambda, DArray< Vec3f > impulse, DArray< Vec3f > J, DArray< Vec3f > B, DArray< float > eta, DArray< TConstraintPair< float > > constraints, DArray< int > nbq, DArray< float > K_1, DArray< Mat2f > K_2, DArray< Mat3f > K_3) |
|
void | setUpGravity (DArray< Vec3f > impulse_ext, float g, float dt) |
|
Real | checkOutError (DArray< Vec3f > J, DArray< Vec3f > mImpulse, DArray< TConstraintPair< float > > constraints, DArray< float > eta) |
|
void | calculateDiagnals (DArray< float > d, DArray< Vec3f > J, DArray< Vec3f > B) |
|
void | preConditionJ (DArray< Vec3f > J, DArray< float > d, DArray< float > eta) |
|
bool | saveVectorToFile (const std::vector< float > &vec, const std::string &filename) |
|
void | calculateEtaVectorForRelaxation (DArray< float > eta, DArray< Vec3f > J, DArray< Vec3f > velocity, DArray< Vec3f > angular_velocity, DArray< TConstraintPair< float > > constraints) |
|
double | checkOutErrors (DArray< float > errors) |
|
void | calculateMatrixA (DArray< Vec3f > &J, DArray< Vec3f > &B, DArray< float > &A, DArray< TConstraintPair< float > > &constraints, float k) |
|
bool | saveMatrixToFile (DArray< float > &Matrix, int n, const std::string &filename) |
|
bool | saveVectorToFile (DArray< float > &vec, const std::string &filename) |
|
void | vectorSub (DArray< float > &ans, DArray< float > &subtranhend, DArray< float > &minuend, DArray< TConstraintPair< float > > &constraints) |
|
void | vectorAdd (DArray< float > &ans, DArray< float > &v1, DArray< float > &v2, DArray< TConstraintPair< float > > &constraints) |
|
void | vectorMultiplyScale (DArray< float > &ans, DArray< float > &initialVec, float scale, DArray< TConstraintPair< float > > &constraints) |
|
void | vectorClampSupport (DArray< float > v, DArray< TConstraintPair< float > > constraints) |
|
void | vectorClampFriction (DArray< float > v, DArray< TConstraintPair< float > > constraints, int contact_size, float mu) |
|
void | matrixMultiplyVec (DArray< Vec3f > &J, DArray< Vec3f > &B, DArray< float > &lambda, DArray< float > &ans, DArray< TConstraintPair< float > > &constraints, int bodyNum) |
|
float | vectorNorm (DArray< float > &a, DArray< float > &b) |
|
void | vectorMultiplyVector (DArray< float > &v1, DArray< float > &v2, DArray< float > &ans, DArray< TConstraintPair< float > > &constraints) |
|
void | calculateImpulseByLambda (DArray< float > lambda, DArray< TConstraintPair< float > > constraints, DArray< Vec3f > impulse, DArray< Vec3f > B) |
|
void | preconditionedResidual (DArray< float > &residual, DArray< float > &ans, DArray< float > &k_1, DArray< Mat2f > &k_2, DArray< Mat3f > &k_3, DArray< TConstraintPair< float > > &constraints) |
|
void | buildCFMAndERP (DArray< Vec3f > J, DArray< Vec3f > B, DArray< TConstraintPair< float > > constraints, DArray< float > CFM, DArray< float > ERP, float hertz, float zeta, float dt) |
|
void | calculateLinearSystemLHS (DArray< Vec3f > &J, DArray< Vec3f > &B, DArray< Vec3f > &impulse, DArray< float > &lambda, DArray< float > &ans, DArray< float > &CFM, DArray< TConstraintPair< float > > &constraints) |
|
| DEFINE_CLASS (MultibodySystem) |
|
| DEFINE_CLASS (RigidBody) |
|
static void | set_v (TetInfo &obj, const std::vector< Vec3f > &values) |
|
static std::vector< Vec3f > | get_v (const TetInfo &obj) |
|
| DEFINE_CLASS (Jeep) |
|
| DEFINE_CLASS (Tank) |
|
| DEFINE_CLASS (TrackedTank) |
|
| DEFINE_CLASS (UAV) |
|
| DEFINE_CLASS (UUV) |
|
template<typename Real> |
DYN_FUNC Real | calculateIntersectionArea (const TPoint3D< Real > &pt, const TTriangle3D< Real > &triangle, const Real &R) |
| Calculate the intersection area between a sphere and a triangle by using the domain decompsotion algorithm. For more details, please refer to Section 4.1 of [Chang et al. 2020]: "Semi-analytical Solid Boundary Conditions for Free Surface Flows".
|
|
| DEFINE_CLASS (SemiAnalyticalIncompressibleFluidModel) |
|
| DEFINE_CLASS (SemiAnalyticalPositionBasedFluidModel) |
|
| DEFINE_CLASS (SemiAnalyticalSFINode) |
|
void | SetupAttributesForSFI (DArray< Attribute > &att) |
|
| DEFINE_CLASS (SemiAnalyticalSurfaceTensionModel) |
|
| DEFINE_CLASS (TriangularMeshBoundary) |
|
| DEFINE_CLASS (MarchingCubes) |
|
| DEFINE_CLASS (AdaptiveVolumeToTriangleSet) |
|
static float | point_segment_distance (const Vec3f &x0, const Vec3f &x1, const Vec3f &x2) |
|
static float | point_triangle_distance (const Vec3f &x0, const Vec3f &x1, const Vec3f &x2, const Vec3f &x3) |
|
static void | FSM_CheckNeighbour (const CArray< Vec3ui > &tri, const CArray< Vec3f > &vert, CArray3f &phi, CArray3i &closest_tri, const Vec3f &gx, int i0, int j0, int k0, int i1, int j1, int k1) |
|
static void | sweep (const CArray< Vec3ui > &tri, const CArray< Vec3f > &x, CArray3f &phi, CArray3i &closest_tri, const Vec3f &origin, float dx, int di, int dj, int dk) |
|
static int | orientation (double x1, double y1, double x2, double y2, double &twice_signed_area) |
|
static bool | point_in_triangle_2d (double x0, double y0, double x1, double y1, double x2, double y2, double x3, double y3, double &a, double &b, double &c) |
|
| DEFINE_CLASS (FastSweepingMethod) |
|
| DECLARE_ENUM (BoolType, Intersect=0, Union=1, Minus=2) |
|
| DEFINE_CLASS (VolumeToGridCell) |
|
| DEFINE_CLASS (VolumeToTriangleSet) |
|
| DEFINE_CLASS (SparseMarchingCubes) |
|
| DEFINE_CLASS (SparseVolumeClipper) |
|
| DEFINE_CLASS (Volume) |
|
| DEFINE_CLASS (VolumeBoolean) |
|
| DEFINE_CLASS (VolumeClipper) |
|
| DEFINE_CLASS (VolumeGenerator) |
|
| DEFINE_CLASS (VolumeLoader) |
|
| DEFINE_CLASS (VolumeOctree) |
|
| DEFINE_CLASS (VolumeOctreeBoolean) |
|
| DEFINE_CLASS (VolumeOctreeGenerator) |
|
static DYN_FUNC OcKey | CalculateMortonCode (OcIndex x, OcIndex y, OcIndex z) |
|
static DYN_FUNC void | RecoverFromMortonCode (OcKey key, OcIndex &x, OcIndex &y, OcIndex &z) |
|
| IMPLEMENT_TCLASS (AddRealAndReal, TDataType) |
|
| IMPLEMENT_TCLASS (FloatingNumber, TDataType) |
|
| IMPLEMENT_TCLASS (Vector3Source, TDataType) |
|
| IMPLEMENT_CLASS (PrintInt) |
|
| IMPLEMENT_CLASS (PrintUnsigned) |
|
| IMPLEMENT_CLASS (PrintFloat) |
|
| IMPLEMENT_CLASS (PrintVector) |
|
| IMPLEMENT_TCLASS (DivideRealAndReal, TDataType) |
|
| IMPLEMENT_TCLASS (MultiplyRealAndReal, TDataType) |
|
| IMPLEMENT_TCLASS (SubtractRealAndReal, TDataType) |
|
std::string | earse_spacing (const std::string &str) |
|
bool | parse_enum_string (const std::string &enum_str, EnumMap &enumKeyValueList) |
|
std::string | FormatConnectionInfo (FBase *fin, FBase *fout, bool connecting, bool succeeded) |
|
std::string | FormatConnectionInfo (Node *node, NodePort *port, bool connecting, bool succeeded) |
|
| DEFINE_CLASS (ParametricModel) |
|
void | disconnect (Node *node, NodePort *port) |
|
bool | Register (ClassInfo *ci) |
|
void | BFS (Node *node, NodeList &list, std::map< ObjectId, bool > &visited) |
|
void | BFSWithAutoSync (Node *node, NodeList &list, std::map< ObjectId, bool > &visited) |
|
| DEFINE_CLASS (EdgePickerNode) |
|
| DEFINE_CLASS (PointPickerNode) |
|
| DEFINE_CLASS (QuadPickerNode) |
|
| DEFINE_CLASS (TrianglePickerNode) |
|
| DEFINE_CLASS (EigenValueWriter) |
|
| DEFINE_CLASS (GeometryLoader) |
|
bool | loadTextureMeshFromObj (std::shared_ptr< TextureMesh > texMesh, const FilePath &fullname) |
|
| DEFINE_CLASS (ParticleWriter) |
|
| DEFINE_CLASS (PointsLoader) |
|
| DEFINE_CLASS (StaticMeshLoader) |
|
| DEFINE_CLASS (TetraMeshWriter) |
|
bool | cmp (OriginalFaceId a, OriginalFaceId b) |
|
| DEFINE_CLASS (TetraMeshWriterFracture) |
|
| DEFINE_CLASS (TriangleMeshWriter) |
|
| DEFINE_CLASS (BasicShape) |
|
| DEFINE_CLASS (CapsuleModel) |
|
| IMPLEMENT_TCLASS (CapsuleModel, TDataType) |
|
| DEFINE_CLASS (ConeModel) |
|
| IMPLEMENT_TCLASS (ConeModel, TDataType) |
|
bool | operator< (const Index2D &lhs, const Index2D &rhs) |
|
| DEFINE_CLASS (CubeModel) |
|
| IMPLEMENT_TCLASS (CubeModel, TDataType) |
|
| DEFINE_CLASS (CylinderModel) |
|
| IMPLEMENT_TCLASS (CylinderModel, TDataType) |
|
bool | operator< (const Index2DPlane &lhs, const Index2DPlane &rhs) |
|
| DEFINE_CLASS (PlaneModel) |
|
| IMPLEMENT_TCLASS (PlaneModel, TDataType) |
|
| DEFINE_CLASS (SphereModel) |
|
| IMPLEMENT_TCLASS (SphereModel, TDataType) |
|
| DEFINE_CLASS (CollisionDetector) |
|
| IMPLEMENT_TCLASS (ConvertToTextureMesh, TDataType) |
|
| IMPLEMENT_TCLASS (CopyModel, TDataType) |
|
| IMPLEMENT_TCLASS (CopyToPoint, TDataType) |
|
Vec3f | crossProduct (const Vec3f &a, const Vec3f &b) |
|
float | triangleArea (const Vec3f &a, const Vec3f &b, const Vec3f &c) |
|
Vec3f | projectPointToTriangle (const Vec3f &A, const Vec3f &B, const Vec3f &C, const Vec3f &P) |
|
bool | isPointInTriangle (const Vec3f &pt, const Vec3f &a, const Vec3f &b, const Vec3f &c) |
|
bool | isEar (const std::vector< Vec3f > &vertices, const TopologyModule::Triangle &triangle, Vec3f n) |
|
std::vector< TopologyModule::Triangle > | earClipping (const std::vector< Vec3f > &vertices) |
|
| DEFINE_CLASS (EarClipper) |
|
| IMPLEMENT_TCLASS (EarClipper, TDataType) |
|
| IMPLEMENT_TCLASS (EditableMesh, TDataType) |
|
| IMPLEMENT_TCLASS (ExtractShape, TDataType) |
|
| IMPLEMENT_TCLASS (ExtrudeModel, TDataType) |
|
| IMPLEMENT_TCLASS (Merge, TDataType) |
|
| IMPLEMENT_TCLASS (PointClip, TDataType) |
|
| IMPLEMENT_TCLASS (PolyExtrude, TDataType) |
|
| IMPLEMENT_TCLASS (PolygonSetToTriangleSetNode, TDataType) |
|
| DEFINE_CLASS (SweepModel) |
|
| IMPLEMENT_TCLASS (SweepModel, TDataType) |
|
| IMPLEMENT_TCLASS (TextureMeshMerge, TDataType) |
|
| IMPLEMENT_TCLASS (TransformModel, TDataType) |
|
| DEFINE_CLASS (TurningModel) |
|
| IMPLEMENT_TCLASS (TurningModel, TDataType) |
|
void | getBoundingBoxByName (tinygltf::Model &model, const tinygltf::Primitive &primitive, const std::string &attributeName, TAlignedBox3D< Real > &bound, Transform3f &transform) |
|
void | getVec3fByAttributeName (tinygltf::Model &model, const tinygltf::Primitive &primitive, const std::string &attributeName, std::vector< Vec3f > &vertices) |
|
void | getVec4ByAttributeName (tinygltf::Model &model, const tinygltf::Primitive &primitive, const std::string &attributeName, std::vector< Vec4f > &vec4Data) |
|
void | getRealByIndex (tinygltf::Model &model, int index, std::vector< Real > &result) |
|
void | getVec3fByIndex (tinygltf::Model &model, int index, std::vector< Vec3f > &result) |
|
void | getQuatByIndex (tinygltf::Model &model, int index, std::vector< Quat< float > > &result) |
|
void | getTriangles (tinygltf::Model &model, const tinygltf::Primitive &primitive, std::vector< TopologyModule::Triangle > &triangles, int pointOffest) |
|
std::string | getTexUri (const std::vector< tinygltf::Texture > &textures, const std::vector< tinygltf::Image > &images, int index) |
|
void | getVertexBindJoint (tinygltf::Model &model, const tinygltf::Primitive &primitive, const std::string &attributeName, std::vector< Vec4f > &vec4Data, const std::vector< int > &skinJoints) |
|
void | getNodesAndHierarchy (tinygltf::Model &model, std::map< scene, std::vector< int > > Scene_JointsNodesId, std::vector< joint > &all_Nodes, std::map< joint, std::vector< int > > &id_Dir) |
|
void | traverseNode (tinygltf::Model &model, joint id, std::vector< joint > &joint_nodes, std::map< joint, std::vector< int > > &dir, std::vector< joint > currentDir) |
|
void | getJointsTransformData (const std::vector< int > &all_Joints, std::vector< std::vector< int > > &joint_child, std::map< int, Quat< float > > &joint_rotation, std::map< int, Vec3f > &joint_scale, std::map< int, Vec3f > &joint_translation, std::map< int, Mat4f > &joint_matrix, tinygltf::Model model) |
|
void | importAnimation (tinygltf::Model model, std::map< joint, Vec3i > &joint_output, std::map< joint, Vec3f > &joint_input, std::map< joint, std::vector< Vec3f > > &joint_T_f_anim, std::map< joint, std::vector< Real > > &joint_T_Time, std::map< joint, std::vector< Vec3f > > &joint_S_f_anim, std::map< joint, std::vector< Real > > &joint_S_Time, std::map< joint, std::vector< Quat< float > > > &joint_R_f_anim, std::map< joint, std::vector< Real > > &joint_R_Time) |
|
void | buildInverseBindMatrices (const std::vector< joint > &all_Joints, std::map< joint, Mat4f > &joint_matrix, int &maxJointId, tinygltf::Model &model, std::map< joint, Quat< float > > &joint_rotation, std::map< joint, Vec3f > &joint_translation, std::map< joint, Vec3f > &joint_scale, std::map< joint, Mat4f > &joint_inverseBindMatrix, std::map< joint, std::vector< int > > jointId_joint_Dir) |
|
void | updateJoint_Mesh_Camera_Dir (tinygltf::Model &model, int &jointNum, int &meshNum, std::map< joint, std::vector< int > > &jointId_joint_Dir, std::vector< joint > &all_Joints, std::vector< int > &all_Nodes, std::map< joint, std::vector< int > > nodeId_Dir, std::map< int, std::vector< int > > &meshId_Dir, std::vector< int > &all_Meshs, int &maxJointId) |
|
std::vector< int > | getJointDirByJointIndex (int Index, std::map< joint, std::vector< int > > jointId_joint_Dir) |
|
void | getMeshMatrix (tinygltf::Model &model, const std::vector< int > &all_MeshNodeIDs, int &maxMeshId, CArray< Mat4f > &mesh_Matrix) |
|
template<typename Vec3f, typename Vec4f, typename Mat4f, typename Vec2u> |
void | skinAnimation (DArray< Vec3f > &intialPosition, DArray< Vec3f > &worldPosition, DArray< Mat4f > &joint_inverseBindMatrix, DArray< Mat4f > &WorldMatrix, DArray< Vec4f > &bind_joints_0, DArray< Vec4f > &bind_joints_1, DArray< Vec4f > &weights_0, DArray< Vec4f > &weights_1, Mat4f transform, bool isNormal, Vec2u range) |
|
void | loadGLTFTextureMesh (std::shared_ptr< TextureMesh > texMesh, const std::string &filepath) |
|
void | loadGLTFMaterial (tinygltf::Model &model, std::shared_ptr< TextureMesh > texMesh, FilePath filename) |
|
void | loadGLTFShape (tinygltf::Model &model, std::shared_ptr< TextureMesh > texMesh, const std::string &filepath, DArray< Vec3f > *initialPosition=nullptr, DArray< Vec3f > *initialNormal=nullptr, DArray< Mat4f > *d_mesh_Matrix=nullptr, DArray< int > *d_shape_meshId=nullptr, std::shared_ptr< SkinInfo > skinData=nullptr) |
|
template<typename Triangle> |
void | updateVertexIdShape (DArray< Triangle > &triangle, DArray< uint > &ID_shapeId, int &shapeId, int size) |
|
template<typename Mat4f, typename Vec3f> |
void | shapeTransform (DArray< Vec3f > &intialPosition, DArray< Vec3f > &worldPosition, DArray< Vec3f > &intialNormal, DArray< Vec3f > &Normal, DArray< Mat4f > &WorldMatrix, DArray< uint > &vertexId_shape, DArray< int > &shapeId_MeshId) |
|
template<typename Vec3f> |
void | setupPoints (DArray< Vec3f > &newPos, DArray< Vec3f > &pos, DArray< int > &radix) |
|
template<typename uint> |
void | Shape_PointCounter (DArray< int > &counter, DArray< uint > &point_ShapeIds, uint &target) |
|
template<typename Vec3f, typename uint> |
void | shapeToCenter (DArray< Vec3f > &iniPos, DArray< Vec3f > &finalPos, DArray< uint > &shapeId, DArray< Vec3f > &t) |
|
| IMPLEMENT_TCLASS (GltfLoader, TDataType) |
|
| IMPLEMENT_TCLASS (Group, TDataType) |
|
| IMPLEMENT_TCLASS (JointDeform, TDataType) |
|
bool | loadTexture (const char *path, dyno::CArray2D< dyno::Vec4f > &img) |
|
| IMPLEMENT_TCLASS (NormalVisualization, TDataType) |
|
| DEFINE_CLASS (PointFromCurve) |
|
| IMPLEMENT_TCLASS (PointFromCurve, TDataType) |
|
| IMPLEMENT_TCLASS (PointsBehindMesh, TDataType) |
|
| DEFINE_CLASS (PoissonPlane) |
|
| IMPLEMENT_TCLASS (PoissonPlane, TDataType) |
|
| DEFINE_CLASS (Sampler) |
|
| DEFINE_CLASS (ShapeSampler) |
|
| IMPLEMENT_TCLASS (ShapeSampler, TDataType) |
|
void | loopSubdivide (std::vector< Vec3f > &vertices, std::vector< TopologyModule::Triangle > &triangles) |
|
| DEFINE_CLASS (Subdivide) |
|
| IMPLEMENT_TCLASS (Subdivide, TDataType) |
|
| IMPLEMENT_TCLASS (VectorVisualNode, TDataType) |
|
| DEFINE_CLASS (GLCommonPointVisualNode) |
|
| DEFINE_CLASS (GLInstanceVisualNode) |
|
| DEFINE_CLASS (GLPointVisualNode) |
|
| DEFINE_CLASS (GLSurfaceVisualNode) |
|
| DEFINE_CLASS (GLWireframeVisualNode) |
|
GLenum | glCheckError_ (const char *file, int line) |
|
std::array< glm::vec4, 8 > | getFrustumCorners (const glm::mat4 &proj) |
|
glm::mat4 | getLightViewMatrix (glm::vec3 lightDir) |
|
glm::mat4 | getLightProjMatrix (glm::mat4 lightView, Vec3f lowerBound, Vec3f upperBound, glm::mat4 cameraView, glm::mat4 cameraProj) |
|
static void | RecieveLogMessage (const Log::Message &m) |
|
static void | glfw_error_callback (int error, const char *description) |
|
QString | FormatFieldWidgetName (std::string name) |
|
QString | FormatBlockPortName (std::string name) |
|
QString | FormatBlockCaptionName (std::string name) |
|
QString | FormatDescription (std::string name) |
|
| IMPLEMENT_CLASS (States) |
|
int | CalculteInterval (int val) |
|
static PDockWidget * | findByName (const QMainWindow *mainWindow, const QString &name) |
|
static PIODockWidget * | findByName (const QMainWindow *mainWindow, const QString &name) |
|
PButtonType | mappingMouseButton (QMouseEvent *event) |
|
PModifierBits | mappingModifierBits (Qt::KeyboardModifiers mods) |
|
template<typename T> |
T | castMaximum (float v) |
|
template<typename T> |
T | castMinimum (float v) |
|
template<typename Real> |
DYN_FUNC float | fsign (Real v) |
|
template<typename Real> |
DYN_FUNC void | swapContactPair (TManifold< Real > &m) |
|
template<typename Real> |
DYN_FUNC bool | trackFaceAxis (int &axis, Real &sMax, Vector< Real, 3 > &axisNormal, int n, Real s, const Vector< Real, 3 > &normal) |
|
template<typename Real> |
DYN_FUNC bool | trackEdgeAxis (int &axis, Real &sMax, Vector< Real, 3 > &axisNormal, int n, Real s, const Vector< Real, 3 > &normal) |
|
template<typename Real> |
DYN_FUNC void | computeReferenceEdgesAndBasis (unsigned char *out, SquareMatrix< Real, 3 > *basis, Vector< Real, 3 > *e, const Vector< Real, 3 > &eR, const Transform< Real, 3 > &rtx, Vector< Real, 3 > n, int axis) |
|
template<typename Real> |
DYN_FUNC void | computeIncidentFace (ClipVertex *out, const Transform< Real, 3 > &itx, const Vector< Real, 3 > &e, Vector< Real, 3 > n) |
|
template<typename Real> |
DYN_FUNC int | orthographic (ClipVertex *out, Real sign, Real e, int axis, int clipEdge, ClipVertex *in, int inCount) |
|
template<typename Real> |
DYN_FUNC int | clip (ClipVertex *outVerts, float *outDepths, const Vector< Real, 3 > &rPos, const Vector< Real, 3 > &e, unsigned char *clipEdges, const SquareMatrix< Real, 3 > &basis, ClipVertex *incident) |
|
template<typename Real> |
DYN_FUNC void | edgesContact (Vector< Real, 3 > &CA, Vector< Real, 3 > &CB, const Vector< Real, 3 > &PA, const Vector< Real, 3 > &QA, const Vector< Real, 3 > &PB, const Vector< Real, 3 > &QB) |
|
template<typename Real> |
DYN_FUNC void | checkSignedDistance (Real lowerBoundaryA, Real upperBoundaryA, Real lowerBoundaryB, Real upperBoundaryB, Real &intersectionDistance, Real &boundaryA, Real &boundaryB) |
|
template<typename Real> |
DYN_FUNC bool | checkPointInBoundary (const Vec3f &p, const Vec3f &N, const Real &b, const Real &r) |
|
template<typename Real> |
DYN_FUNC void | updateSDF (Real &boundaryA, Real &boundaryB, Real &depth, Vec3f &normal, Real currentBoundaryA, Real currentBoundaryB, Real currentDepth, Vec3f currentN) |
|
template<typename Real, typename ShapeA, typename ShapeB> |
DYN_FUNC void | checkSignedDistanceAxis (Real &intersectionDistance, Real &BoundaryA, Real &BoundaryB, const Vec3f axisNormal, ShapeA &shapeA, ShapeB &shapeB, const Real radiusA, const Real radiusB) |
|
template<typename Real, typename ShapeA, typename ShapeB> |
DYN_FUNC void | checkAxisPoint (TSeparationData< Real > &sat, ShapeA &shapeA, ShapeB &shapeB, const Real radiusA, const Real radiusB, Vec3f pA, Vec3f pB, const Real rA=0.f, const Real rB=0.f) |
|
template<typename Real, typename ShapeA, typename ShapeB> |
DYN_FUNC void | checkAxisEdge (TSeparationData< Real > &sat, ShapeA &shapeA, ShapeB &shapeB, const Real radiusA, const Real radiusB, Segment3D edgeA, Segment3D edgeB) |
|
template<typename Real, typename ShapeA, typename ShapeB> |
DYN_FUNC void | checkAxisTri (TSeparationData< Real > &sat, ShapeA &shapeA, ShapeB &shapeB, const Real radiusA, const Real radiusB, Triangle3D tri, SeparationType type) |
|
template<typename Real, typename ShapeA, typename ShapeB> |
DYN_FUNC void | checkAxisRect (TSeparationData< Real > &sat, ShapeA &shapeA, ShapeB &shapeB, const Real radiusA, const Real radiusB, Rectangle3D rect, SeparationType type) |
|
template<typename Real> |
DYN_FUNC void | projectOnAxis (Real &lowerBoundary, Real &upperBoundary, const Vec3f axisNormal, Sphere3D sphere, const Real radius) |
|
template<typename Real> |
DYN_FUNC void | setupContactOnSphere (TManifold< Real > &m, TSeparationData< Real > &sat, const TSphere3D< Real > &sphereB, const Real radiusA, const Real radiusB) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithTri (Vector< Real, 3 > *q, const TTriangle3D< Real > &triA, const TSphere3D< Real > &sphereB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithRect (Vector< Real, 3 > *q, const TRectangle3D< Real > &rectA, const TSphere3D< Real > &sphereB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real> |
DYN_FUNC void | projectOnAxis (Real &lowerBoundary, Real &upperBoundary, const Vec3f axisNormal, Segment3D seg, const Real radius) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithTri (Vector< Real, 3 > *q, const TTriangle3D< Real > &triA, const TSegment3D< Real > &segB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithRect (Vector< Real, 3 > *q, const TRectangle3D< Real > &rectA, const TSegment3D< Real > &segB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real> |
DYN_FUNC void | setupContactOnSeg (TManifold< Real > &m, TSeparationData< Real > &sat, const TSegment3D< Real > &segB, const Real radiusA, const Real radiusB) |
|
template<typename Real> |
DYN_FUNC void | projectOnAxis (Real &lowerBoundary, Real &upperBoundary, const Vec3f axisNormal, Triangle3D tri, const Real radius) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithTri (Vector< Real, 3 > *q, const TTriangle3D< Real > &triA, const TTriangle3D< Real > &triB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithRect (Vector< Real, 3 > *q, const TRectangle3D< Real > &rectA, const TTriangle3D< Real > &triB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real, typename Shape> |
DYN_FUNC void | setupContactOnTri (TManifold< Real > &m, TSeparationData< Real > &sat, const Shape &shapeA, const TTriangle3D< Real > &triB, const Real radiusA, const Real radiusB) |
|
template<typename Real> |
DYN_FUNC void | projectOnAxis (Real &lowerBoundary, Real &upperBoundary, const Vec3f axisNormal, Tet3D tet, const Real radius) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithTri (Vector< Real, 3 > *q, const TTriangle3D< Real > &triA, const TTet3D< Real > &tetB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithRect (Vector< Real, 3 > *q, const TRectangle3D< Real > &rectA, const TTet3D< Real > &tetB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real, typename Shape> |
DYN_FUNC void | setupContactOnTet (TManifold< Real > &m, TSeparationData< Real > &sat, const Shape &shapeA, const TTet3D< Real > &tetB, const Real radiusA, const Real radiusB) |
|
template<typename Real> |
DYN_FUNC void | projectOnAxis (Real &lowerBoundary, Real &upperBoundary, const Vec3f axisNormal, OrientedBox3D box, const Real radius) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithTri (Vector< Real, 3 > *q, const TTriangle3D< Real > &triA, const TOrientedBox3D< Real > &boxB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real> |
DYN_FUNC int | ClippingWithRect (Vector< Real, 3 > *q, const TRectangle3D< Real > &rectA, const TOrientedBox3D< Real > &boxB, const Vector< Real, 3 > &transA, const Vector< Real, 3 > &transB) |
|
template<typename Real, typename Shape> |
DYN_FUNC void | setupContactOnBox (TManifold< Real > &m, TSeparationData< Real > &sat, const Shape &shapeA, const TOrientedBox3D< Real > &boxB, const Real radiusA, const Real radiusB) |
|
template<typename Real> |
DYN_FUNC void | computeSupportEdge (Vector< Real, 3 > &aOut, Vector< Real, 3 > &bOut, const SquareMatrix< Real, 3 > &rot, const Vector< Real, 3 > &trans, const Vector< Real, 3 > &e, Vector< Real, 3 > n) |
|
template<typename Real> |
DYN_FUNC bool | checkOverlapAxis (Real &lowerBoundary1, Real &upperBoundary1, Real &lowerBoundary2, Real &upperBoundary2, Real &intersectionDistance, Real &boundary1, Real &boundary2, const Vector< Real, 3 > axisNormal, OrientedBox3D box, Capsule3D cap) |
|
template<typename Real> |
DYN_FUNC bool | checkOverlapTetTri (Real lowerBoundary1, Real upperBoundary1, Real lowerBoundary2, Real upperBoundary2, Real &intersectionDistance, Real &boundary1, Real &boundary2) |
|
template<typename Real> |
DYN_FUNC bool | checkOverlapAxis (Real &lowerBoundary1, Real &upperBoundary1, Real &lowerBoundary2, Real &upperBoundary2, Real &intersectionDistance, Real &boundary1, Real &boundary2, const Vector< Real, 3 > axisNormal, Tet3D tet, Capsule3D cap) |
|
template<typename Real> |
DYN_FUNC void | setupContactCaps (Real boundary1, Real boundary2, const Vector< Real, 3 > axisNormal, TCapsule3D< Real > cap, TOrientedBox3D< Real > box, Real depth, TManifold< Real > &m) |
|
template<typename Real> |
DYN_FUNC void | setupContactTets (Real boundary1, Real boundary2, const Vector< Real, 3 > axisNormal, Tet3D tet, Capsule3D cap, Real sMax, TManifold< Real > &m) |
|
template<typename Real> |
DYN_FUNC void | setupContactTetTri (Real boundary1, Real boundary2, const Vector< Real, 3 > axisNormal, Tet3D tet, Triangle3D triangle, Real sMax, TManifold< Real > &m) |
|
template<typename Real> |
DYN_FUNC bool | checkOverlap (Real lowerBoundary1, Real upperBoundary1, Real lowerBoundary2, Real upperBoundary2, Real &intersectionDistance, Real &boundary1, Real &boundary2) |
|
template<typename Real> |
DYN_FUNC bool | checkOverlapAxis (Real &lowerBoundary1, Real &upperBoundary1, Real &lowerBoundary2, Real &upperBoundary2, Real &intersectionDistance, Real &boundary1, Real &boundary2, const Vector< Real, 3 > axisNormal, Tet3D tet1, Tet3D tet2) |
|
template<typename Real> |
DYN_FUNC bool | checkOverlapAxis (Real &lowerBoundary1, Real &upperBoundary1, Real &lowerBoundary2, Real &upperBoundary2, Real &intersectionDistance, Real &boundary1, Real &boundary2, const Vector< Real, 3 > axisNormal, Tet3D tet, Triangle3D tri) |
|
template<typename Real> |
DYN_FUNC bool | checkOverlapAxis (Real &lowerBoundary1, Real &upperBoundary1, Real &lowerBoundary2, Real &upperBoundary2, Real &intersectionDistance, Real &boundary1, Real &boundary2, const Vector< Real, 3 > axisNormal, Tet3D tet, OrientedBox3D box) |
|
template<typename Real> |
DYN_FUNC void | setupContactTets (Real boundary1, Real boundary2, const Vector< Real, 3 > axisNormal, Tet3D tet1, Tet3D tet2, Real sMax, TManifold< Real > &m) |
|
template<typename Real> |
DYN_FUNC void | setupContactTets (Real boundary1, Real boundary2, const Vector< Real, 3 > axisNormal, Tet3D tet, TOrientedBox3D< Real > box, Real sMax, TManifold< Real > &m) |
|
template<typename Real, typename Coord, DeviceType deviceType, typename IndexType> |
DYN_FUNC bool | calculateSignedDistance2TriangleSet (ProjectedPoint3D< Real > &p3d, Coord point, Array< Coord, deviceType > &vertices, Array< TopologyModule::Triangle, deviceType > &indices, List< IndexType > &list, Real dHat=0) |
| Calculate the signed distance from a point to a triangular mesh.
|
|
template<typename Real, typename Coord, DeviceType deviceType, typename IndexType> |
DYN_FUNC bool | calculateSignedDistance2TriangleSetFromNormal (ProjectedPoint3D< Real > &p3d, Coord point, Array< Coord, deviceType > &vertices, Array< TopologyModule::Edge, deviceType > &edges, Array< TopologyModule::Triangle, deviceType > &triangles, Array< TopologyModule::Tri2Edg, deviceType > &t2e, Array< Coord, deviceType > &edgeNormal, Array< Coord, deviceType > &vertexNormal, List< IndexType > &list, Real dHat=0) |
|
template<typename Real, typename Coord, DeviceType deviceType, typename IndexType> |
DYN_FUNC bool | calculateDistance2TriangleSet (ProjectedPoint3D< Real > &p3d, Coord point, Array< Coord, deviceType > &vertices, Array< TopologyModule::Triangle, deviceType > &indices, List< IndexType > &list, Real dHat=0) |
| Calculate the distance from a point to a triangular mesh.
|
|
template<typename Coord, DeviceType deviceType, typename IndexType> |
DYN_FUNC void | SO_ComputeObjectAndNormal (Coord &pobject, Coord &pnormal, Array< Coord, deviceType > &surf_points, Array< TopologyModule::Edge, deviceType > &edge, Array< TopologyModule::Triangle, deviceType > &surf_triangles, Array< TopologyModule::Tri2Edg, deviceType > &t2e, Array< Coord, deviceType > &edgeN, Array< Coord, deviceType > &vertexN, Coord ppos, IndexType surf_id) |
|
| IMPLEMENT_TCLASS (DiscreteElementsToTriangleSet, TDataType) |
|
| DEFINE_CLASS (ExtractEdgeSetFromPolygonSet) |
|
| DEFINE_CLASS (ExtractTriangleSetFromPolygonSet) |
|
| DEFINE_CLASS (ExtractQaudSetFromPolygonSet) |
|
| DEFINE_CLASS (MergeSimplexSet) |
|
| DEFINE_CLASS (MergeTriangleSet) |
|
| DEFINE_CLASS (PointSetToTriangleSet) |
|
| DEFINE_CLASS (SplitSimplexSet) |
|
| DEFINE_CLASS (CalculateMaximum) |
|
| DEFINE_CLASS (CalculateMinimum) |
|
| DEFINE_CLASS (AnimationCurve) |
|
| DEFINE_CLASS (Frame) |
|
| DEFINE_CLASS (GridSet) |
|
DYN_FUNC OcKey | CalculateMortonCode (Level l, OcIndex x, OcIndex y, OcIndex z) |
|
DYN_FUNC void | RecoverFromMortonCode (OcKey key, Level &l, OcIndex &x, OcIndex &y, OcIndex &z) |
|
| DEFINE_CLASS (StructuredPointSet) |
|
| DEFINE_CLASS (UniformGrid3D) |
|
| DEFINE_CLASS (UnstructuredPointSet) |
|
| IMPLEMENT_CLASS (DiscreteElementsToTriangleSet) |
|
This is an implementation of AdditiveCCD based on peridyno.
This class implements the lienar BVH based on "Maximizing Parallelism in the Construction of BVHs, Octrees, and k-d Trees" by Tero Karras, High Performance Graphics, 2012.
Initial commit.
This is an implementation of drag interaction calculated by vertex, with topo of triangularMesh.
This is an implementation of drag interaction calculated by triangles.
This is an implementation of Adapted SIMPLE Algorithm for SPH Fluids based on peridyno.
This is a implementation of a std::vector liked Random Access Container, however, dynamic allocating is not provided. User have to reserve a buffer strickly offer buffer_size. If needed, user may use copy construct or use a pair of iterator and a buffer_size (default = iterator slice size) to reserve by an exist container or rescourse. However, the second rountine is quite dangerous, because neight the implementation nor complier will check whether the memory is correctly construct, i.e. with proper alignment and struct when none-trivial type (i.e. ADT) is used. All memory visiting behavior and insertion manipulation is asserting protected to aviod protential illegal memory access.
This is an implementation of TightCCD based on peridyno.
Copyright 2021 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2021 Lixin Ren
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2022 Zixuan Lu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Additive CCD calc maximum TOI such that d(x) > s * (d(x) - xi) + xi to satisfy separation in collision handling board phrase, where d(x) is current primitive distance and xi is the thickness. s is a rescalar.
For details, refer to "Li M, Kaufman D M, Jiang C.
Codimensional incremental potential contact[J]. arXiv preprint arXiv:2012.04457, 2020." chapter 5.
Copyright 2021 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
For details, refer to "TightCCD: Efficient and Robust Continuous Collision Detection using Tight Error Bounds" by Wang et al., Pacific Graphics 2015
Be aware TightCCD can remove all the false negatives but not all the false positives refer to "A Large Scale Benchmark and an Inclusion-Based Algorithm for Continuous Collision Detection", TOG 2020, for a comparison for advantages and disadvantages of all CCD methods
Copyright 2024 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023 Zixuan Lu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023 Zixuan Lu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
- assign() make assignment
- begin() get begin iterator
- end() get end (non-used) iterator
- empty() check empty
- size() get number of previous elements
- capacity() get maximium capacity
- resize() resize number of exist elements
- reserve() which is required and should be called only once, (unless to recommit)
- data() get pointer of memory
- operator[] random access rountine, logically should not use assertion for range-out check, but used in thie version
- at() random access rountine (implement exactly the same as operator[] in this version)
- front() get front element reference, which is placed in begin()
- back() get back reference, which is placed in end()-1
- push_back() push back element
- pop_back() pop back tail's element
- find() find the first element with value, using == or predicate function, value_type is required to be comparable
- insert() set of insertion rountine
- erase() set of erase rountine
- clear() clear container, the associated memory will be deconstructed (i.e. ~value_type() is called explicitly), reserved buffer will not be influenced.
Copyright 2022-2024 Shusen Liu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2021~2024 Shusen Liu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2022 hanxingyixue
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2022 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2024 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2022 Lixin Ren
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023 Shusen Liu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2022 Shusen Liu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023~2024 Hao He, Shusen Liu.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2021 Yue Chang
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2024 Shusen Liu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2021 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2021 Shusen Liu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
For details, refer to "Shusen Liu, Xiaowei He, Wencheng Wang, Enhua Wu.
Adapted SIMPLE Algorithm for Incompressible SPH Fluids With a Broad Range Viscosity[J],
IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS,2022:28(9).
Copyright 2021 Zixuan Lu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
This algorithm simply take mouse coordinate on screen, while transforming it into intersection plane in world space. The selected point (surface vertex) will shift to fix through directed manipulation on attribute, position and velocity of particles, and the attribute will be restored when mouse-press released.
Copyright 2024 Yuzhong Guo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2024 Liang Ruikai
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2021 Nurshat Menglik
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
- Author
- : Yue Chang (yuech.nosp@m.ang@.nosp@m.pku.e.nosp@m.du.c.nosp@m.n)
- Date
- : 2021-08-06 @description: Declaration of SemiAnalyticalIncompressibilityModule class, implemendation of semi-analytical perojection-based fluids introduced in the paper <Semi-analytical Solid Boundary Conditions for Free Surface Flows>
- Version
- : 1.1
- Author
- : Yue Chang (yuech.nosp@m.ang@.nosp@m.pku.e.nosp@m.du.c.nosp@m.n)
- Date
- : 2021-08-06 @description: Implemendation of SemiAnalyticalIncompressibleFluidModel class, a container for semi-analytical projection-based fluids introduced in the paper <Semi-analytical Solid Boundary Conditions for Free Surface Flows>
- Version
- : 1.1
- Author
- : Yue Chang (yuech.nosp@m.ang@.nosp@m.pku.e.nosp@m.du.c.nosp@m.n)
- Date
- : 2021-08-06 @description: Declaration of SemiAnalyticalIncompressibleFluidModel class, a container for semi-analytical projection-based fluids introduced in the paper <Semi-analytical Solid Boundary Conditions for Free Surface Flows>
- Version
- : 1.1 SemiAnalyticalIncompressibleFluidModel a NumericalModel for semi-analytical projection-based fluids The solver is projection-based fluids with semi-analytical boundaries reference: "Semi-analytical Solid Boundary Conditions for Free Surface Flows"
Could be used by being created and initialized at SemiAnalyticalSFINode Fields required to be initialized include: m_particle_position m_particle_velocity m_particle_force_density m_particle_attribute m_particle_mass m_triangle_vertex_mass m_triangle_index m_triangle_vertex m_triangle_vertex_old m_smoothing_length
Copyright 2022 Nurshat Menglik
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
- Author
- : Xiaowei He
- Date
- : 2023/5/14 @description: renamed to SemiAnalyticalParticleShifting
- Author
- : Yue Chang (yuech.nosp@m.ang@.nosp@m.pku.e.nosp@m.du.c.nosp@m.n)
- Date
- : 2021-08-04 @description: Declaration of SemiAnalyticalPBD class, which implements the position-based part of semi-analytical boundary conditions introduced in the paper <Semi-analytical Solid Boundary Conditions for Free Surface Flows>
- Version
- : 1.1
- Author
- : Yue Chang (yuech.nosp@m.ang@.nosp@m.pku.e.nosp@m.du.c.nosp@m.n)
- Date
- : 2021-08-06 @description: implemendation of PositionBasedFluidModelMesh class, a container for semi-analytical PBD fluids introduced in the paper <Semi-analytical Solid Boundary Conditions for Free Surface Flows>
- Version
- : 1.1
- Author
- : Yue Chang (yuech.nosp@m.ang@.nosp@m.pku.e.nosp@m.du.c.nosp@m.n)
- Date
- : 2021-08-06 @description: Declaration of PositionBasedFluidModelMesh class, a container for semi-analytical PBD fluids introduced in the paper <Semi-analytical Solid Boundary Conditions for Free Surface Flows>
- Version
- : 1.1 PositionBasedFluidModelMesh a NumericalModel for semi-analytical PBD fluids The solver is PBD fluids with semi-analytical boundaries reference: "Semi-analytical Solid Boundary Conditions for Free Surface Flows"
Could be used by being created and initialized at SemiAnalyticalSFINode Fields required to be initialized include: m_position m_velocity m_forceDensity m_vn TriPoint TriPointOld Tri m_smoothingLength
Copyright 2022 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2021 hanxingyixue
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2021 Xiawoei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2021 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
- Author
- clouddon
- Date
- 2021-02-25
Support multi-threading
- Author
- star
- Date
- 2023-08-18
Copyright 2021-2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2022 Xiawoei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2024 Yuzhong Guo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Revision history:
2024-02-03: replace TriangleSet with PolygonSet as the major state;
Copyright 2022 Yuzhong Guo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2022 Shusen Liu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Revision history:
2024-02-03: replace TriangleSet with PolygonSet as the major state;
Copyright 2023 Yuzhong Guo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2022 Xiaowei He & Shusen Liu
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2023 Jian SHI
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2021 Xiaowei HE
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2022 Jian SHI
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2021 Jian SHI
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2023 Xiaowei HE
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023-2023 Jian SHI
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2021 Xiaowei He (xiaow.nosp@m.ei@i.nosp@m.scas..nosp@m.ac.c.nosp@m.n)
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2021 Xukun Luo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: OpenGL-based Visualization Widget Module: POpenGLWidget.h
Copyright 2021 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt-based widget to visualize a bool type value Module: QBoolFieldWidget.h
Copyright 2022-2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt-based widget to visualize Color Module: QVector3iFieldWidget.h
Copyright 2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt Property Item Module: QRampWidget.h
Copyright 2023 Yuzhong Guo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt-based widget to visualize an enum value Module: QEnumFieldWidget.h
Copyright 2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Parent class for all field widgets Module: QFieldWidget.h
Copyright 2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt Property widgets to support string or file path Module: QFilePathWidget.h
Copyright 2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt-based widget to visualize an integer or unsigned integer Module: QIntegerFieldWidget.h
Copyright 2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt-based widget to visualize a float or double type value Module: QRealFieldWidget.h
Copyright 2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt Property Item Module: PPropertyItem.h
Copyright 2022 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt-based widget to visualize Vec3f or Vec3d Module: QVector3FieldWidget.h
Copyright 2023 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt-based widget to visualize Vec3i or Vec3u Module: QVector3iFieldWidget.h
Copyright 2022 Xiaowei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt-based widget to visualize Vec3f or Vec3d Module: QVector3FieldWidget.h
Copyright 2023 Yuzhong Guo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Program: Qt-based widget to Config Vehicle bindings Module: QVehicleInfoWidget.h
Copyright 2023 Yuzhong Guo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2024 Xiawoei He
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023 Xukun Luo
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2017-2022 Yuantian Cai
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.