PeriDyno 1.0.0
Loading...
Searching...
No Matches
FrameToPointSet.h
Go to the documentation of this file.
1#pragma once
2#include "Array/Array.h"
4
5namespace dyno
6{
7 template<typename TDataType> class Frame;
8 template<typename TDataType> class PointSet;
9
10template<typename TDataType>
12{
13public:
14 typedef typename TDataType::Real Real;
15 typedef typename TDataType::Coord Coord;
16 typedef typename TDataType::Rigid Rigid;
17 typedef typename TDataType::Matrix Matrix;
18
20 FrameToPointSet(std::shared_ptr<Frame<TDataType>> from, std::shared_ptr<PointSet<TDataType>> to);
21 ~FrameToPointSet() override;
22
23 void initialize(const Rigid& rigid, DArray<Coord>& points);
24
25 void applyTransform(const Rigid& rigid, DArray<Coord>& points);
26
27 bool apply() override;
28
29protected:
30 bool initializeImpl() override;
31
32private:
33 void match(std::shared_ptr<Frame<TDataType>> from, std::shared_ptr<PointSet<TDataType>> to);
34
35 std::shared_ptr<Frame<TDataType>> m_from = nullptr;
36 std::shared_ptr<PointSet<TDataType>> m_to = nullptr;
37
40
41 std::shared_ptr<Frame<TDataType>> m_initFrom;
42 std::shared_ptr<PointSet<TDataType>> m_initTo;
43};
44}
A frame represents a point equipped with the orientation.
Definition Frame.h:14
std::shared_ptr< Frame< TDataType > > m_from
TDataType::Rigid Rigid
void initialize(const Rigid &rigid, DArray< Coord > &points)
bool initializeImpl() override
void applyTransform(const Rigid &rigid, DArray< Coord > &points)
~FrameToPointSet() override
std::shared_ptr< PointSet< TDataType > > m_initTo
bool apply() override
DArray< Coord > m_refPoints
TDataType::Coord Coord
FrameToPointSet(std::shared_ptr< Frame< TDataType > > from, std::shared_ptr< PointSet< TDataType > > to)
std::shared_ptr< Frame< TDataType > > m_initFrom
void match(std::shared_ptr< Frame< TDataType > > from, std::shared_ptr< PointSet< TDataType > > to)
std::shared_ptr< PointSet< TDataType > > m_to
TDataType::Matrix Matrix
A PointSet stores the coordinates for a set of independent points.
Definition PointSet.h:8
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
Array< T, DeviceType::GPU > DArray
Definition Array.inl:89