| Flutter Impeller |

Classes | Public Member Functions | List of all members
impeller::scene::importer::UnskinnedVerticesBuilder Class Referencefinal

`#include <vertices_builder.h>`

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

## 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< VerticesBuilder > | MakeUnskinned ()
static std::unique_ptr< VerticesBuilder > | MakeSkinned ()
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 103 of file vertices_builder.h.

## Constructor & Destructor Documentation

## ◆ UnskinnedVerticesBuilder()

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

UnskinnedVerticesBuilder

## ◆ ~UnskinnedVerticesBuilder()

impeller::scene::importer::UnskinnedVerticesBuilder::~UnskinnedVerticesBuilder | ( |  | ) |
| override virtual default

## 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
| ) |  |
| override virtual

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
| override virtual

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/vertices_builder.h
- impeller/scene/importer/vertices_builder.cc

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