Flutter Impeller
impeller::scene::Mesh Class Referencefinal

#include <mesh.h>

Classes

struct  Primitive
 

Public Member Functions

 Mesh ()
 
 ~Mesh ()
 
 Mesh (Mesh &&mesh)
 
Meshoperator= (Mesh &&mesh)
 
void AddPrimitive (Primitive mesh_)
 
std::vector< Primitive > & GetPrimitives ()
 
bool Render (SceneEncoder &encoder, const Matrix &transform, const std::shared_ptr< Texture > &joints) const
 

Detailed Description

Definition at line 21 of file mesh.h.

Constructor & Destructor Documentation

◆ Mesh() [1/2]

impeller::scene::Mesh::Mesh ( )
default

◆ ~Mesh()

impeller::scene::Mesh::~Mesh ( )
default

◆ Mesh() [2/2]

impeller::scene::Mesh::Mesh ( Mesh &&  mesh)
default

Member Function Documentation

◆ AddPrimitive()

void impeller::scene::Mesh::AddPrimitive ( Primitive  mesh_)

Definition at line 21 of file mesh.cc.

21  {
22  if (mesh.geometry == nullptr) {
23  VALIDATION_LOG << "Mesh geometry cannot be null.";
24  }
25  if (mesh.material == nullptr) {
26  VALIDATION_LOG << "Mesh material cannot be null.";
27  }
28 
29  primitives_.push_back(std::move(mesh));
30 }

References impeller::scene::Mesh::Primitive::geometry, impeller::scene::Mesh::Primitive::material, and VALIDATION_LOG.

Referenced by impeller::scene::testing::TEST_P().

◆ GetPrimitives()

std::vector< Mesh::Primitive > & impeller::scene::Mesh::GetPrimitives ( )

Definition at line 32 of file mesh.cc.

32  {
33  return primitives_;
34 }

◆ operator=()

Mesh & impeller::scene::Mesh::operator= ( Mesh &&  mesh)
default

◆ Render()

bool impeller::scene::Mesh::Render ( SceneEncoder encoder,
const Matrix transform,
const std::shared_ptr< Texture > &  joints 
) const

Definition at line 36 of file mesh.cc.

38  {
39  for (const auto& mesh : primitives_) {
40  mesh.geometry->SetJointsTexture(joints);
41  SceneCommand command = {
42  .label = "Mesh Primitive",
43  .transform = transform,
44  .geometry = mesh.geometry.get(),
45  .material = mesh.material.get(),
46  };
47  encoder.Add(command);
48  }
49  return true;
50 }

References impeller::scene::SceneEncoder::Add(), and impeller::scene::SceneCommand::label.

Referenced by impeller::scene::Node::Render().


The documentation for this class was generated from the following files:
VALIDATION_LOG
#define VALIDATION_LOG
Definition: validation.h:73