PeriDyno 0.9.2
Loading...
Searching...
No Matches
Vechicle.h
Go to the documentation of this file.
1#pragma once
3#include "RigidBodySystem.h"
4
6#include "Topology/TriangleSet.h"
7
8#include "STL/Pair.h"
9
10namespace dyno
11{
12 template<typename TDataType>
13 class Vechicle : virtual public RigidBodySystem<TDataType>
14 {
16 public:
17 typedef typename TDataType::Real Real;
18 typedef typename TDataType::Coord Coord;
19 typedef typename TDataType::Matrix Matrix;
20 typedef typename Pair<uint, uint> BindingPair;
21
22 Vechicle();
23 ~Vechicle() override;
24
25 void bind(std::shared_ptr<PdActor> actor, Pair<uint, uint> shapeId);
26
27 public:
28 DEF_INSTANCE_IN(TextureMesh, TextureMesh, "Texture mesh of the vechicle");
29
30 DEF_INSTANCE_IN(TriangleSet<TDataType>, TriangleSet, "TriangleSet of the boundary");
31
32 public:
33 DEF_ARRAYLIST_STATE(Transform3f, InstanceTransform, DeviceType::GPU, "Instance transforms");
34
35 protected:
36 void resetStates() override;
37
38 void updateStates() override;
39
41
42 private:
43 std::vector<Pair<uint, uint>> mBindingPair;
44
45 std::vector<std::shared_ptr<PdActor>> mActors;
46
48
51 };
52
53 template<typename TDataType>
54 class Jeep : virtual public ParametricModel<TDataType>, virtual public Vechicle<TDataType>
55 {
57 public:
58 typedef typename TDataType::Real Real;
59 typedef typename TDataType::Coord Coord;
60
61 Jeep();
62 ~Jeep() override;
63
64 protected:
65 void resetStates() override;
66 };
67}
#define DECLARE_TCLASS(name, T1)
Definition Object.h:87
TDataType::Coord Coord
Definition Vechicle.h:59
TDataType::Real Real
Definition Vechicle.h:58
void resetStates() override
Definition Vechicle.cpp:306
~Jeep() override
Definition Vechicle.cpp:300
Implementation of a rigid body system containing a variety of rigid bodies with different shapes.
DEF_INSTANCE_IN(TriangleSet< TDataType >, TriangleSet, "TriangleSet of the boundary")
std::vector< Pair< uint, uint > > mBindingPair
Definition Vechicle.h:43
void updateStates() override
Definition Vechicle.cpp:166
DArray< int > mBindingTagDevice
Definition Vechicle.h:50
DArray< BindingPair > mBindingPairDevice
Definition Vechicle.h:49
TDataType::Coord Coord
Definition Vechicle.h:18
void bind(std::shared_ptr< PdActor > actor, Pair< uint, uint > shapeId)
Definition Vechicle.cpp:187
DEF_ARRAYLIST_STATE(Transform3f, InstanceTransform, DeviceType::GPU, "Instance transforms")
TDataType::Matrix Matrix
Definition Vechicle.h:19
TDataType::Real Real
Definition Vechicle.h:17
void updateInstanceTransform()
Definition Vechicle.cpp:174
DEF_INSTANCE_IN(TextureMesh, TextureMesh, "Texture mesh of the vechicle")
DArray< Matrix > mInitialRot
Definition Vechicle.h:47
~Vechicle() override
Definition Vechicle.cpp:98
std::vector< std::shared_ptr< PdActor > > mActors
Definition Vechicle.h:45
void resetStates() override
Definition Vechicle.cpp:104
Pair< uint, uint > BindingPair
Definition Vechicle.h:20
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:24