| Flutter Impeller |

Public Member Functions | List of all members
impeller::scene::CuboidGeometry Class Referencefinal

`#include <geometry.h>`

Inheritance diagram for impeller::scene::CuboidGeometry:

## Public Member Functions
| CuboidGeometry ()
| ~CuboidGeometry () override
void | SetSize (Vector3 size)
GeometryType | GetGeometryType () const override
VertexBuffer | GetVertexBuffer (Allocator &allocator) const override
void | BindToCommand (const SceneContext &scene_context, HostBuffer &buffer, const Matrix &transform, RenderPass &pass) const override
Public Member Functions inherited from impeller::scene::Geometry
virtual | ~Geometry ()
virtual void | SetJointsTexture (const std::shared_ptr< Texture > &texture)

## Additional Inherited Members
Static Public Member Functions inherited from impeller::scene::Geometry
static std::shared_ptr< CuboidGeometry > | MakeCuboid (Vector3 size)
static std::shared_ptr< Geometry > | MakeVertexBuffer (VertexBuffer vertex_buffer, bool is_skinned)
static std::shared_ptr< Geometry > | MakeFromFlatbuffer (const fb::MeshPrimitive &mesh, Allocator &allocator)

## Detailed Description

Definition at line 54 of file geometry.h.

## Constructor & Destructor Documentation

## ◆ CuboidGeometry()

impeller::scene::CuboidGeometry::CuboidGeometry | ( |  | ) |
| default

CuboidGeometry

## ◆ ~CuboidGeometry()

impeller::scene::CuboidGeometry::~CuboidGeometry | ( |  | ) |
| override default

## Member Function Documentation

## ◆ BindToCommand()

void impeller::scene::CuboidGeometry::BindToCommand | ( | const SceneContext & | scene_context,
|  | HostBuffer & | buffer,
|  | const Matrix & | transform,
|  | RenderPass & | pass
| ) |  | const
| override virtual

Implements impeller::scene::Geometry.

Definition at line 163 of file geometry.cc.

166 {
167 pass.SetVertexBuffer(
168 GetVertexBuffer(*scene_context.GetContext()->GetResourceAllocator()));
169
170 UnskinnedVertexShader::FrameInfo info;
171 info.mvp = transform;
172 UnskinnedVertexShader::BindFrameInfo(pass, buffer.EmplaceUniform(info));
173 }

References impeller::HostBuffer::EmplaceUniform(), impeller::scene::SceneContext::GetContext(), GetVertexBuffer(), and impeller::RenderPass::SetVertexBuffer().

## ◆ GetGeometryType()

GeometryType impeller::scene::CuboidGeometry::GetGeometryType | ( |  | ) | const
| override virtual

Implements impeller::scene::Geometry.

Definition at line 136 of file geometry.cc.

136 {
137 return GeometryType::kUnskinned;
138 }

References impeller::scene::kUnskinned.

## ◆ GetVertexBuffer()

VertexBuffer impeller::scene::CuboidGeometry::GetVertexBuffer | ( | Allocator & | allocator | ) | const
| override virtual

Implements impeller::scene::Geometry.

Definition at line 141 of file geometry.cc.

141 {
142 VertexBufferBuilder<UnskinnedVertexShader::PerVertexData, uint16_t> builder;
143 // Layout: position, normal, tangent, uv
144 builder.AddVertices({
145 // Front.
146 {Vector3(0, 0, 0), Vector3(0, 0, -1), Vector3(1, 0, 0), Point(0, 0),
147 Color::White()},
148 {Vector3(1, 0, 0), Vector3(0, 0, -1), Vector3(1, 0, 0), Point(1, 0),
149 Color::White()},
150 {Vector3(1, 1, 0), Vector3(0, 0, -1), Vector3(1, 0, 0), Point(1, 1),
151 Color::White()},
152 {Vector3(1, 1, 0), Vector3(0, 0, -1), Vector3(1, 0, 0), Point(1, 1),
153 Color::White()},
154 {Vector3(0, 1, 0), Vector3(0, 0, -1), Vector3(1, 0, 0), Point(0, 1),
155 Color::White()},
156 {Vector3(0, 0, 0), Vector3(0, 0, -1), Vector3(1, 0, 0), Point(0, 0),
157 Color::White()},
158 });
159 return builder.CreateVertexBuffer(allocator);
160 }

References impeller::VertexBufferBuilder< VertexType_, IndexType_ >::AddVertices(), impeller::VertexBufferBuilder< VertexType_, IndexType_ >::CreateVertexBuffer(), and impeller::Color::White().

Referenced by BindToCommand().

## ◆ SetSize()

void impeller::scene::CuboidGeometry::SetSize | ( | Vector3 | size | ) |

Definition at line 131 of file geometry.cc.

131 {
132 size_ = size;
133 }

The documentation for this class was generated from the following files:

- impeller/scene/geometry.h
- impeller/scene/geometry.cc

impeller::scene::GeometryType::kUnskinned
@ kUnskinned
impeller::Point
TPoint< Scalar > Point
Definition: point.h:316
impeller::Color::White
static constexpr Color White()
Definition: color.h:256
impeller::scene::CuboidGeometry::GetVertexBuffer
VertexBuffer GetVertexBuffer(Allocator &allocator) const override
Definition: geometry.cc:141