Go to the documentation of this file.
7 #ifndef INCLUDE_JET_PARTICLE_SYSTEM_DATA2_H_
8 #define INCLUDE_JET_PARTICLE_SYSTEM_DATA2_H_
19 namespace flatbuffers {
21 class FlatBufferBuilder;
22 template<
typename T>
struct Offset;
29 struct ParticleSystemData2;
76 void resize(
size_t newNumberOfParticles);
214 void serialize(std::vector<uint8_t>* buffer)
const override;
227 flatbuffers::FlatBufferBuilder* builder,
228 flatbuffers::Offset<fbs::ParticleSystemData2>* fbsParticleSystemData)
232 const fbs::ParticleSystemData2* fbsParticleSystemData);
235 double _radius = 1e-3;
237 size_t _numberOfParticles = 0;
242 std::vector<ScalarData> _scalarDataList;
243 std::vector<VectorData> _vectorDataList;
246 std::vector<std::vector<size_t>> _neighborLists;
254 #endif // INCLUDE_JET_PARTICLE_SYSTEM_DATA2_H_
1-D array class.
Definition: array1.h:31
ParticleSystemData2(size_t numberOfParticles)
Constructs particle system data with given number of particles.
ArrayAccessor1< Vector2D > velocities()
Returns the velocity array (mutable).
void resize(size_t newNumberOfParticles)
Resizes the number of particles of the container.
ParticleSystemData2(const ParticleSystemData2 &other)
Copy constructor.
virtual void setRadius(double newRadius)
Sets the radius of the particles.
virtual ~ParticleSystemData2()
Destructor.
ConstArrayAccessor1< Vector2D > positions() const
Returns the position array (immutable).
1-D read-only array accessor class.
Definition: array_accessor1.h:184
virtual void setMass(double newMass)
Sets the mass of the particles.
Vector2< double > Vector2D
Double-type 2D vector.
Definition: vector2.h:340
std::shared_ptr< PointNeighborSearcher2 > PointNeighborSearcher2Ptr
Shared pointer for the PointNeighborSearcher2 type.
Definition: point_neighbor_searcher2.h:82
ArrayAccessor1< double > scalarDataAt(size_t idx)
Returns custom scalar data layer at given index (mutable).
ConstArrayAccessor1< Vector2D > forces() const
Returns the force array (immutable).
void addParticle(const Vector2D &newPosition, const Vector2D &newVelocity=Vector2D(), const Vector2D &newForce=Vector2D())
Adds a particle to the data structure.
ConstArrayAccessor1< Vector2D > vectorDataAt(size_t idx) const
Returns custom vector data layer at given index (immutable).
void buildNeighborLists(double maxSearchRadius)
Builds neighbor lists with given search radius.
ParticleSystemData2 & operator=(const ParticleSystemData2 &other)
Copies from other particle system data.
double mass() const
Returns the mass of the particles.
Array1< double > ScalarData
Scalar data chunk.
Definition: particle_system_data2.h:48
double radius() const
Returns the radius of the particles.
Definition: advection_solver2.h:18
const std::vector< std::vector< size_t > > & neighborLists() const
Returns neighbor lists.
const PointNeighborSearcher2Ptr & neighborSearcher() const
Returns neighbor searcher.
size_t numberOfParticles() const
Returns the number of particles.
ConstArrayAccessor1< double > scalarDataAt(size_t idx) const
Returns custom scalar data layer at given index (immutable).
2-D vector class.
Definition: vector2.h:24
void buildNeighborSearcher(double maxSearchRadius)
Builds neighbor searcher with given search radius.
ArrayAccessor1< Vector2D > positions()
Returns the position array (mutable).
void addParticles(const ConstArrayAccessor1< Vector2D > &newPositions, const ConstArrayAccessor1< Vector2D > &newVelocities=ConstArrayAccessor1< Vector2D >(), const ConstArrayAccessor1< Vector2D > &newForces=ConstArrayAccessor1< Vector2D >())
Adds particles to the data structure.
ConstArrayAccessor1< Vector2D > velocities() const
Returns the velocity array (immutable).
ArrayAccessor1< Vector2D > forces()
Returns the force array (mutable).
void setNeighborSearcher(const PointNeighborSearcher2Ptr &newNeighborSearcher)
Sets neighbor searcher.
void deserializeParticleSystemData(const fbs::ParticleSystemData2 *fbsParticleSystemData)
size_t addVectorData(const Vector2D &initialVal=Vector2D())
Adds a vector data layer and returns its index.
Abstract base class for any serializable class.
Definition: serialization.h:17
std::shared_ptr< ParticleSystemData2 > ParticleSystemData2Ptr
Shared pointer type of ParticleSystemData2.
Definition: particle_system_data2.h:250
void deserialize(const std::vector< uint8_t > &buffer) override
Deserializes this particle system data from the buffer.
void set(const ParticleSystemData2 &other)
Copies from other particle system data.
ParticleSystemData2()
Default constructor.
ArrayAccessor1< Vector2D > vectorDataAt(size_t idx)
Returns custom vector data layer at given index (mutable).
void serialize(std::vector< uint8_t > *buffer) const override
Serializes this particle system data to the buffer.
size_t addScalarData(double initialVal=0.0)
Adds a scalar data layer and returns its index.
1-D array accessor class.
Definition: array_accessor1.h:27
void serializeParticleSystemData(flatbuffers::FlatBufferBuilder *builder, flatbuffers::Offset< fbs::ParticleSystemData2 > *fbsParticleSystemData) const
Array1< Vector2D > VectorData
Vector data chunk.
Definition: particle_system_data2.h:51
2-D particle system data.
Definition: particle_system_data2.h:45