PeriDyno 1.0.0
Loading...
Searching...
No Matches
MarchingCubesHelper.h
Go to the documentation of this file.
1
16#pragma once
17
18#include "Vector.h"
19#include "DataTypes.h"
20
22
25
26namespace dyno
27{
28 template<typename TDataType>
30 {
31 public:
32 typedef typename TDataType::Real Real;
33 typedef typename TDataType::Coord Coord;
34
36
37 static void reconstructSDF(
38 DArray3D<Real>& distances,
39 Coord origin,
40 Real h,
42
43 static void countVerticeNumber(
44 DArray<int>& num,
45 DArray3D<Real>& distances,
46 Real isoValue);
47
48 static void constructTriangles(
49 DArray<Coord>& vertices,
51 DArray<int>& vertNum,
52 DArray3D<Real>& distances,
53 Coord origin,
54 Real isoValue,
55 Real h);
56
58 DArray<int>& num,
60 TPlane3D<Real> plane);
61
63 DArray<Real>& field,
64 DArray<Coord>& vertices,
66 DArray<int>& vertNum,
68 TPlane3D<Real> plane);
69
70
72 DArray<uint>& num,
73 DArray<Coord>& vertices,
74 DArray<Real>& sdfs,
75 Real isoValue);
76
78 DArray<Coord>& triangleVertices,
80 DArray<uint>& num,
81 DArray<Coord>& cellVertices,
82 DArray<Real>& sdfs,
83 Real isoValue);
84
86 DArray<uint>& num,
87 DArray<Coord>& vertices,
88 TPlane3D<Real> plane);
89
91 DArray<Real>& vertSDFs,
92 DArray<Coord>& triangleVertices,
94 DArray<uint>& num,
95 DArray<Coord>& cellVertices,
96 DArray<Real>& sdfs,
97 TPlane3D<Real> plane);
98 };
99}
GPU supported signed distance field.
static void reconstructSDF(DArray3D< Real > &distances, Coord origin, Real h, DistanceField3D< TDataType > &sdf)
static void countVerticeNumberForOctree(DArray< uint > &num, DArray< Coord > &vertices, DArray< Real > &sdfs, Real isoValue)
static void countVerticeNumberForOctreeClipper(DArray< uint > &num, DArray< Coord > &vertices, TPlane3D< Real > plane)
static void constructTrianglesForOctree(DArray< Coord > &triangleVertices, DArray< TopologyModule::Triangle > &triangles, DArray< uint > &num, DArray< Coord > &cellVertices, DArray< Real > &sdfs, Real isoValue)
static void countVerticeNumber(DArray< int > &num, DArray3D< Real > &distances, Real isoValue)
static void constructTrianglesForOctreeClipper(DArray< Real > &vertSDFs, DArray< Coord > &triangleVertices, DArray< TopologyModule::Triangle > &triangles, DArray< uint > &num, DArray< Coord > &cellVertices, DArray< Real > &sdfs, TPlane3D< Real > plane)
static void constructTrianglesForClipper(DArray< Real > &field, DArray< Coord > &vertices, DArray< TopologyModule::Triangle > &triangles, DArray< int > &vertNum, DistanceField3D< TDataType > &sdf, TPlane3D< Real > plane)
static void countVerticeNumberForClipper(DArray< int > &num, DistanceField3D< TDataType > &sdf, TPlane3D< Real > plane)
static void constructTriangles(DArray< Coord > &vertices, DArray< TopologyModule::Triangle > &triangles, DArray< int > &vertNum, DArray3D< Real > &distances, Coord origin, Real isoValue, Real h)
2D geometric primitives in three-dimensional space
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
Array< T, DeviceType::GPU > DArray
Definition Array.inl:89
Array3D< T, DeviceType::GPU > DArray3D
Definition Array3D.inl:90