Blender V5.0
blender::io::ply::FileBuffer Class Referenceabstract

#include <ply_file_buffer.hh>

Inherits blender::NonMovable.

Inherited by blender::io::ply::FileBufferAscii, and blender::io::ply::FileBufferBinary.

Public Member Functions

 FileBuffer (const char *filepath, size_t buffer_chunk_size=64 *1024)
virtual ~FileBuffer ()=default
void write_to_file ()
void close_file ()
virtual void write_vertex (float x, float y, float z)=0
virtual void write_UV (float u, float v)=0
virtual void write_data (float v)=0
virtual void write_vertex_normal (float nx, float ny, float nz)=0
virtual void write_vertex_color (uchar r, uchar g, uchar b, uchar a)=0
virtual void write_vertex_end ()=0
virtual void write_face (char count, Span< uint32_t > const &vertex_indices)=0
virtual void write_edge (int first, int second)=0
void write_header_element (StringRef name, int count)
void write_header_scalar_property (StringRef dataType, StringRef name)
void write_header_list_property (StringRef countType, StringRef dataType, StringRef name)
void write_string (StringRef s)
void write_newline ()

Protected Member Functions

void ensure_space (size_t at_least)
template<typename... T>
void write_fstring (fmt::format_string< T... > fmt, T &&...args)
void write_bytes (Span< char > bytes)

Detailed Description

File buffer writer. All writes are done into an internal chunked memory buffer (list of default 64 kilobyte blocks). Call write_to_file once in a while to write the memory buffer(s) into the given file.

Definition at line 28 of file ply_file_buffer.hh.

Constructor & Destructor Documentation

◆ FileBuffer()

blender::io::ply::FileBuffer::FileBuffer ( const char * filepath,
size_t buffer_chunk_size = 64 * 1024 )

Definition at line 20 of file ply_file_buffer.cc.

References BLI_fopen().

◆ ~FileBuffer()

virtual blender::io::ply::FileBuffer::~FileBuffer ( )
virtualdefault

Member Function Documentation

◆ close_file()

void blender::io::ply::FileBuffer::close_file ( )

Definition at line 38 of file ply_file_buffer.cc.

References CLOG_ERROR, and LOG.

◆ ensure_space()

void blender::io::ply::FileBuffer::ensure_space ( size_t at_least)
inlineprotected

Definition at line 74 of file ply_file_buffer.hh.

Referenced by write_bytes(), and write_fstring().

◆ write_bytes()

◆ write_data()

virtual void blender::io::ply::FileBuffer::write_data ( float v)
pure virtual

◆ write_edge()

virtual void blender::io::ply::FileBuffer::write_edge ( int first,
int second )
pure virtual

◆ write_face()

virtual void blender::io::ply::FileBuffer::write_face ( char count,
Span< uint32_t > const & vertex_indices )
pure virtual

◆ write_fstring()

◆ write_header_element()

void blender::io::ply::FileBuffer::write_header_element ( StringRef name,
int count )

Definition at line 52 of file ply_file_buffer.cc.

References count, name, and write_fstring().

Referenced by blender::io::ply::write_header().

◆ write_header_list_property()

void blender::io::ply::FileBuffer::write_header_list_property ( StringRef countType,
StringRef dataType,
StringRef name )

Definition at line 61 of file ply_file_buffer.cc.

References name, and write_fstring().

Referenced by blender::io::ply::write_header().

◆ write_header_scalar_property()

void blender::io::ply::FileBuffer::write_header_scalar_property ( StringRef dataType,
StringRef name )

Definition at line 56 of file ply_file_buffer.cc.

References name, and write_fstring().

Referenced by blender::io::ply::write_header().

◆ write_newline()

void blender::io::ply::FileBuffer::write_newline ( )

◆ write_string()

void blender::io::ply::FileBuffer::write_string ( StringRef s)

Definition at line 68 of file ply_file_buffer.cc.

References write_fstring().

Referenced by blender::io::ply::write_header().

◆ write_to_file()

void blender::io::ply::FileBuffer::write_to_file ( )

◆ write_UV()

virtual void blender::io::ply::FileBuffer::write_UV ( float u,
float v )
pure virtual

◆ write_vertex()

virtual void blender::io::ply::FileBuffer::write_vertex ( float x,
float y,
float z )
pure virtual

◆ write_vertex_color()

virtual void blender::io::ply::FileBuffer::write_vertex_color ( uchar r,
uchar g,
uchar b,
uchar a )
pure virtual

◆ write_vertex_end()

virtual void blender::io::ply::FileBuffer::write_vertex_end ( )
pure virtual

◆ write_vertex_normal()

virtual void blender::io::ply::FileBuffer::write_vertex_normal ( float nx,
float ny,
float nz )
pure virtual

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