PeriDyno
1.0.0
Loading...
Searching...
No Matches
D:
Peridyno
peridyno
src
Core
Backend
Vulkan
Catalyzer
VkSort.h
Go to the documentation of this file.
1
#pragma once
2
#include "
VkDeviceArray.h
"
3
#include "
VkProgram.h
"
4
5
//SortType
6
#define UP 0
//1,2,3,4,5
7
#define DOWN 1
//5,4,3,2,1
8
namespace
dyno
{
12
13
struct
Parameters
{
14
enum
eAlgorithmVariant
: uint32_t {
15
eLocalBms
= 0,
16
eLocalDisperse
= 1,
17
eBigFlip
= 2,
18
eBigDisperse
= 3,
19
addZero
= 4,
20
subtractZero
= 5,
21
};
22
uint32_t
h
;
23
uint32_t
SortType
;
24
uint32_t
srcSize
;
25
uint32_t
dstSize
;
26
eAlgorithmVariant
algorithm
;
27
};
28
29
template
<
typename
T>
30
class
VkSort
{
31
public
:
32
VkSort
();
33
~VkSort
();
34
35
// suport intĄ˘ float and uint32_t types --- SortType = UP /DOWN
36
void
sort
(std::vector<T> &data, uint32_t SortType);
37
void
sort
(
VkDeviceArray<T>
& data, uint32_t SortType);
38
39
40
// only suport keys[int] and values[int] types --- SortType = UP /DOWN
41
void
sort_by_key
(std::vector<T>& keys, std::vector<T>& values, uint32_t SortType);
42
void
sort_by_key
(
VkDeviceArray<T>
& keys,
VkDeviceArray<T>
& values, uint32_t SortType);
43
44
private
:
45
std::shared_ptr<VkProgram>
mSortKernel
;
46
std::shared_ptr<VkProgram>
mSortByKeyKernel
;
47
};
48
}
49
#include "
VkSort.inl
"
VkDeviceArray.h
VkProgram.h
VkSort.inl
dyno::VkDeviceArray
Definition
VkDeviceArray.h:9
dyno::VkSort::VkSort
VkSort()
Definition
VkSort.inl:246
dyno::VkSort::mSortByKeyKernel
std::shared_ptr< VkProgram > mSortByKeyKernel
Definition
VkSort.h:46
dyno::VkSort::sort
void sort(std::vector< T > &data, uint32_t SortType)
Definition
VkSort.inl:16
dyno::VkSort::sort_by_key
void sort_by_key(std::vector< T > &keys, std::vector< T > &values, uint32_t SortType)
Definition
VkSort.inl:120
dyno::VkSort::~VkSort
~VkSort()
Definition
VkSort.inl:265
dyno::VkSort::mSortKernel
std::shared_ptr< VkProgram > mSortKernel
Definition
VkSort.h:45
dyno
This is an implementation of AdditiveCCD based on peridyno.
Definition
Array.h:25
dyno::Parameters
implement functions for reorganizing ranges into sorted order
Definition
VkSort.h:13
dyno::Parameters::dstSize
uint32_t dstSize
Definition
VkSort.h:25
dyno::Parameters::algorithm
eAlgorithmVariant algorithm
Definition
VkSort.h:26
dyno::Parameters::srcSize
uint32_t srcSize
Definition
VkSort.h:24
dyno::Parameters::eAlgorithmVariant
eAlgorithmVariant
Definition
VkSort.h:14
dyno::Parameters::eLocalBms
@ eLocalBms
Definition
VkSort.h:15
dyno::Parameters::eBigFlip
@ eBigFlip
Definition
VkSort.h:17
dyno::Parameters::addZero
@ addZero
Definition
VkSort.h:19
dyno::Parameters::eBigDisperse
@ eBigDisperse
Definition
VkSort.h:18
dyno::Parameters::subtractZero
@ subtractZero
Definition
VkSort.h:20
dyno::Parameters::eLocalDisperse
@ eLocalDisperse
Definition
VkSort.h:16
dyno::Parameters::SortType
uint32_t SortType
Definition
VkSort.h:23
dyno::Parameters::h
uint32_t h
Definition
VkSort.h:22
Generated by
1.13.2