Flutter Impeller
impeller::scene::importer::UnskinnedVerticesBuilder Class Referencefinal

#include <vertices_builder.h>

Inheritance diagram for impeller::scene::importer::UnskinnedVerticesBuilder:
impeller::scene::importer::VerticesBuilder

Classes

struct  Vertex
 

Public Member Functions

 UnskinnedVerticesBuilder ()
 
virtual ~UnskinnedVerticesBuilder () override
 
void WriteFBVertices (fb::MeshPrimitiveT &primitive) const override
 
void SetAttributeFromBuffer (AttributeType attribute, ComponentType component_type, const void *buffer_start, size_t attribute_stride_bytes, size_t attribute_count) override
 
- Public Member Functions inherited from impeller::scene::importer::VerticesBuilder
 VerticesBuilder ()
 
virtual ~VerticesBuilder ()
 

Additional Inherited Members

- Public Types inherited from impeller::scene::importer::VerticesBuilder
enum  ComponentType {
  ComponentType::kSignedByte = 5120,
  ComponentType::kUnsignedByte,
  ComponentType::kSignedShort,
  ComponentType::kUnsignedShort,
  ComponentType::kSignedInt,
  ComponentType::kUnsignedInt,
  ComponentType::kFloat
}
 
enum  AttributeType {
  AttributeType::kPosition,
  AttributeType::kNormal,
  AttributeType::kTangent,
  AttributeType::kTextureCoords,
  AttributeType::kColor,
  AttributeType::kJoints,
  AttributeType::kWeights
}
 
using ComponentConverter = std::function< Scalar(const void *source, size_t byte_offset, bool normalized)>
 
using AttributeWriter = std::function< void(Scalar *destination, const void *source, const ComponentProperties &component_props, const AttributeProperties &attribute_props)>
 
- Static Public Member Functions inherited from impeller::scene::importer::VerticesBuilder
static std::unique_ptr< VerticesBuilderMakeUnskinned ()
 
static std::unique_ptr< VerticesBuilderMakeSkinned ()
 
- Static Protected Member Functions inherited from impeller::scene::importer::VerticesBuilder
static void WriteAttribute (void *destination, size_t destination_stride_bytes, AttributeType attribute, ComponentType component_type, const void *source, size_t attribute_stride_bytes, size_t attribute_count)
 

Detailed Description

UnskinnedVerticesBuilder

Definition at line 104 of file vertices_builder.h.

Constructor & Destructor Documentation

◆ UnskinnedVerticesBuilder()

impeller::scene::importer::UnskinnedVerticesBuilder::UnskinnedVerticesBuilder ( )
default

◆ ~UnskinnedVerticesBuilder()

impeller::scene::importer::UnskinnedVerticesBuilder::~UnskinnedVerticesBuilder ( )
overridevirtualdefault

Member Function Documentation

◆ SetAttributeFromBuffer()

void impeller::scene::importer::UnskinnedVerticesBuilder::SetAttributeFromBuffer ( AttributeType  attribute,
ComponentType  component_type,
const void *  buffer_start,
size_t  attribute_stride_bytes,
size_t  attribute_count 
)
overridevirtual

Implements impeller::scene::importer::VerticesBuilder.

Definition at line 180 of file vertices_builder.cc.

185  {
186  if (attribute_count > vertices_.size()) {
187  vertices_.resize(attribute_count, Vertex());
188  }
189  WriteAttribute(vertices_.data(), // destination
190  sizeof(Vertex), // destination_stride_bytes
191  attribute, // attribute
192  component_type, // component_type
193  buffer_start, // source
194  attribute_stride_bytes, // attribute_stride_bytes
195  attribute_count); // attribute_count
196 }

References impeller::scene::importer::VerticesBuilder::WriteAttribute().

◆ WriteFBVertices()

void impeller::scene::importer::UnskinnedVerticesBuilder::WriteFBVertices ( fb::MeshPrimitiveT &  primitive) const
overridevirtual

Implements impeller::scene::importer::VerticesBuilder.

Definition at line 168 of file vertices_builder.cc.

169  {
170  auto vertex_buffer = fb::UnskinnedVertexBufferT();
171  vertex_buffer.vertices.resize(0);
172  for (auto& v : vertices_) {
173  vertex_buffer.vertices.push_back(fb::Vertex(
174  ToFBVec3(v.position), ToFBVec3(v.normal), ToFBVec4(v.tangent),
175  ToFBVec2(v.texture_coords), ToFBColor(v.color)));
176  }
177  primitive.vertices.Set(std::move(vertex_buffer));
178 }

References impeller::scene::importer::ToFBColor(), impeller::scene::importer::ToFBVec2(), impeller::scene::importer::ToFBVec3(), and impeller::scene::importer::ToFBVec4().


The documentation for this class was generated from the following files:
impeller::scene::importer::ToFBVec2
fb::Vec2 ToFBVec2(const Vector2 v)
Definition: conversions.cc:70
impeller::scene::importer::ToFBVec3
fb::Vec3 ToFBVec3(const Vector3 v)
Definition: conversions.cc:74
impeller::scene::importer::ToFBColor
fb::Color ToFBColor(const Color c)
Definition: conversions.cc:82
impeller::scene::importer::VerticesBuilder::WriteAttribute
static void WriteAttribute(void *destination, size_t destination_stride_bytes, AttributeType attribute, ComponentType component_type, const void *source, size_t attribute_stride_bytes, size_t attribute_count)
Definition: vertices_builder.cc:140
impeller::scene::importer::ToFBVec4
fb::Vec4 ToFBVec4(const Vector4 v)
Definition: conversions.cc:78