DD::Image::ParticlesSprite Class Reference

Inherits DD::Image::Primitive.

Public Member Functions

const char * Class () const
 ParticlesSprite (Point::RenderMode render_mode, unsigned points=0, unsigned start=0)
 ParticlesSprite (const ParticlesSprite &)
Point::RenderMode render_mode () const
void render_mode (Point::RenderMode v)
ParticlesSpriteoperator= (const ParticlesSprite &b)
Primitiveduplicate () const
unsigned faces () const
bool tessellateSprite (unsigned int spriteIndex, Scene *scene, PrimitiveContext *ptx, PrimitiveContext *nptx, SpriteGenerator *spriteGenerator, MBSceneSpriteGenerator *mbSceneGenerator, ParticleSearchInfo &searchInfo) const
void tessellate (Scene *, PrimitiveContext *) const
void draw_wireframe (ViewerContext *, PrimitiveContext *, Primitive *prev_prim=nullptr) const
void draw_solid (ViewerContext *, PrimitiveContext *, Primitive *prev_prim=nullptr) const
void draw_primitive_num (ViewerContext *, PrimitiveContext *) const
PrimitiveType getPrimitiveType () const
 type identifier to avoid dynamic casts for any derived classes
Box3 get_bbox (const GeoInfo *info) const
- Public Member Functions inherited from DD::Image::Primitive
virtual void vertex_shader (int v, Scene *, PrimitiveContext *, VArray &out, const Vector3 *normal=nullptr) const
virtual void vertex_shader (int v, Scene *, PrimitiveContext *, VertexContext &, VArray &out, const Vector3 *normal=nullptr) const
 Primitive (unsigned vertices=0)
 Primitive (const Primitive &)
virtual ~Primitive ()
void getDataArray (int n, ViewerContext *ctx, PrimitiveContext *ptx, std::vector< Vector3 > &pntArray, std::vector< Vector3 > &normalArray, std::vector< Vector4 > &uvOrColArray, bool &validUV) const
const unsigned & vertex (unsigned v) const
unsigned & vertex (unsigned v)
unsigned vertices () const
void offset_point_indices (int offset)
unsigned vertex_offset () const
void build_index_array (unsigned *indices, unsigned primitive, unsigned vertex) const
unsigned add_vertex (unsigned point_index)
unsigned add_vertices (unsigned num)
virtual Vector3 average_center (const PointList *) const
 Returns the xyz center average of the primitive. More...
virtual Vector3 average_center_and_bounds (int f, const PointList *points, Vector3 &min, Vector3 &max) const
virtual Vector3 face_average_center (int n, const PointList *points) const
virtual unsigned face_vertices (int n) const
virtual void get_face_vertices (int n, unsigned *array) const
virtual Vector3 get_face_normal (int n, const PointList *points) const
virtual Vector3 get_geometric_normal (int v, const PointList *points) const
virtual int get_vertex_faces (int v, std::vector< int > &faces) const
virtual bool IntersectsRay (const Ray &ray, int n, const PointList *pointList, CollisionResult *result) const
virtual void validate (PrimitiveContext *)
virtual bool faceUsesVertex (unsigned int faceIdx, unsigned int vertIdx) const
Iopmaterial () const
IoprenderingShader (const GeoInfo *info) const
const Vector3normal () const
virtual Vector3 vertex_normal (unsigned v, const PointList *) const
virtual void draw_solid_face (int n, ViewerContext *, PrimitiveContext *) const
virtual void draw_primitive_normal (ViewerContext *, PrimitiveContext *) const
virtual void draw_vertex_num (ViewerContext *, PrimitiveContext *) const
virtual void draw_vertex_normals (ViewerContext *, PrimitiveContext *) const
virtual void draw_vertex_uvs (ViewerContext *, PrimitiveContext *) const
virtual void print_info () const
void * operator new (size_t size)
void operator delete (void *mem)
void * operator new[] (size_t size)
void operator delete[] (void *mem)

Static Public Member Functions

static void draw_quad (const Vector3 &p, const Vector4 *cf, const Vector3 *vel, const float *size, const float *spin, const float ar, const Matrix4 &modelview, const Matrix4 &viewModel)
 draw a single particle quad
static void draw_loop (const Vector3 &p, const Vector4 *cf, const Vector3 *vel, const float *size, const float *spin, const float ar, const Matrix4 &modelview, const Matrix4 &viewModel)
 draw a single particle lineloop
- Static Public Member Functions inherited from DD::Image::Primitive
static void draw_normal (const Vector3 &p, const Vector3 &n, ViewerContext *, PrimitiveContext *)

Protected Member Functions

void copy (const ParticlesSprite *)
- Protected Member Functions inherited from DD::Image::Primitive
void draw_wireframe_vertex (int v, ViewerContext *, PrimitiveContext *) const
void draw_solid_vertex (int v, ViewerContext *, PrimitiveContext *) const
void copy (const Primitive *)
bool PolyIntersectsRay (const Ray &ray, int n, const PointList *pointList, CollisionResult *result) const

Protected Attributes

Point::RenderMode render_mode_
- Protected Attributes inherited from DD::Image::Primitive
std::vector< unsigned, STL3DAllocator< unsigned > > vertex_
 Point indices.
unsigned vertex_offset_
 Vertex attribute starting index.
Vector3 normal_
 Normal determined from vertex positions.
 Material assignment.

Detailed Description

ParticlesSprite primitive.

Member Function Documentation

void ParticlesSprite::copy ( const ParticlesSprite b)

Destructive copy.

References DD::Image::Primitive::copy().

Primitive * ParticlesSprite::duplicate ( ) const

Copy this Particles into a new one, and return a pointer to it. Vertex data is duplicated, point indices are unchanged.

Implements DD::Image::Primitive.

bool ParticlesSprite::tessellateSprite ( unsigned int  spriteIndex,
Scene scene,
PrimitiveContext ptx,
PrimitiveContext nptx,
SpriteGenerator spriteGenerator,
MBSceneSpriteGenerator mbSceneGenerator,
ParticleSearchInfo &  searchInfo 
) const

Get the tessellation for an individual sprite, by index. This will return true if the sprite is visible, false if not.

nptxPrimitive context
spriteGeneratorPrimitive context with local transforms removed, to use for adding sprites into the scene

References DD::Image::Scene::add_render_primitive(), DD::Image::IopInfoOwner::channels(), DD::Image::rTriangle::edgesmask, DD::Image::SpriteGenerator::getHash(), DD::Image::SpriteGenerator::getSprite(), DD::Image::Vector4::set(), DD::Image::rTriangle::v, DD::Image::Iop::vertex_shader(), DD::Image::VertexContext::vP, and DD::Image::Matrix4::z_axis().

Referenced by tessellate().

void ParticlesSprite::tessellate ( Scene scene,
PrimitiveContext ptx 
) const

Push a single rParticles primitive into the rendering stream.

Implements DD::Image::Primitive.

References DD::Image::MBSceneSpriteGenerator::resetSearchInfo(), DD::Image::MatrixArray::set_object_matrix(), and tessellateSprite().

©2022 The Foundry Visionmongers, Ltd. All Rights Reserved.