| 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, Command &command) 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 53 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,
|  | Command & | command
| ) |  | const
| override virtual

Implements impeller::scene::Geometry.

Definition at line 162 of file geometry.cc.

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

References impeller::Command::BindVertices(), impeller::HostBuffer::EmplaceUniform(), impeller::scene::SceneContext::GetContext(), and GetVertexBuffer().

## ◆ GetGeometryType()

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

Implements impeller::scene::Geometry.

Definition at line 135 of file geometry.cc.

135 {
136 return GeometryType::kUnskinned;
137 }

References impeller::scene::kUnskinned.

## ◆ GetVertexBuffer()

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

Implements impeller::scene::Geometry.

Definition at line 140 of file geometry.cc.

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

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 130 of file geometry.cc.

130 {
131 size_ = size;
132 }

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:308
impeller::Color::White
static constexpr Color White()
Definition: color.h:256
impeller::scene::CuboidGeometry::GetVertexBuffer
VertexBuffer GetVertexBuffer(Allocator &allocator) const override
Definition: geometry.cc:140