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, 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< 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 54 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,
RenderPass pass 
) const
overridevirtual

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
overridevirtual

Implements impeller::scene::Geometry.

Definition at line 136 of file geometry.cc.

136  {
138 }

References impeller::scene::kUnskinned.

◆ GetVertexBuffer()

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

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