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