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

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

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

137 {
138 return GeometryType::kUnskinned;
139 }

References impeller::scene::kUnskinned.

## ◆ GetVertexBuffer()

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

Implements impeller::scene::Geometry.

Definition at line 142 of file geometry.cc.

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

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

132 {
133 size_ = size;
134 }

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