Flutter Impeller
impeller::scene::CuboidGeometry Class Referencefinal

#include <geometry.h>

Inheritance diagram for impeller::scene::CuboidGeometry:
impeller::scene::Geometry

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< CuboidGeometryMakeCuboid (Vector3 size)
 
static std::shared_ptr< GeometryMakeVertexBuffer (VertexBuffer vertex_buffer, bool is_skinned)
 
static std::shared_ptr< GeometryMakeFromFlatbuffer (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()

impeller::scene::CuboidGeometry::~CuboidGeometry ( )
overridedefault

Member Function Documentation

◆ BindToCommand()

void impeller::scene::CuboidGeometry::BindToCommand ( const SceneContext scene_context,
HostBuffer buffer,
const Matrix transform,
Command command 
) const
overridevirtual

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
overridevirtual

Implements impeller::scene::Geometry.

Definition at line 137 of file geometry.cc.

137  {
139 }

References impeller::scene::kUnskinned.

◆ GetVertexBuffer()

VertexBuffer impeller::scene::CuboidGeometry::GetVertexBuffer ( Allocator allocator) const
overridevirtual

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::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