# TK_Material

## Functions

| `TK_Material`
| `~TK_Material`
`TK_Status` | `Read`
`TK_Status` | `Write`
`TK_Status` | `Clone`
void | `Reset`
`TK_Status` | `PushUserData`
`TK_Status` | `GetBlock`

## Detailed Description

class `TK_Material` : public BBaseOpcodeHandler

  Handles the TKE_Material opcode.

  To ensure that user data will be gracefully handled (skipped-over) by non-custom handlers (meaning, an application that is using the default toolkit and doesn’t understand the custom user data), custom user data must be written out by exporting the following elements in order:

      1.  the TKE_Material opcode
      2.  the number of bytes of data that will follow
      3.  the contents of the material

  The default implementation simply skips over these opcodes without any further processing.

  Public Functions

  inline `TK_Material`()

    constructor

  `~TK_Material`()
  virtual TK_Status `Read`(BStreamFileToolkit &tk)

    Reads data from the toolkit buffer, decodes/decompresses it, and maps it to the opcode handlers data members. User-defined classes which need to write out custom data should utilize one of the available GetData() methods.

    Parameters: | tk – A reference to the BStreamFileToolkit object.
    Returns: | The result of the function call.

  virtual TK_Status `Write`(BStreamFileToolkit &tk)

    Encodes/compresses data and writes data to the toolkit buffer. User-defined classes which need to write out custom data should utilize one of the available PutData() methods, and first write out the opcode associated with the group of binary data followed by the data itself.

    Parameters: | tk – A reference to the BStreamFileToolkit object.
    Returns: | The result of the function call.

  virtual TK_Status `Clone`(BStreamFileToolkit &tk, BBaseOpcodeHandler **handler) const

    Copies the opcode handler

    Parameters: | tk – A reference to the BStreamFileToolkit object. handler – A pointer to the opcode handler object. Passed by reference.
    Returns: | The result of the function call.

  virtual void `Reset`()

    Resets the current opcode handler. This is called by the toolkit when it is done processing an opcode. This method reinitializes any opcode handler variables and frees up temporary data.

  TK_Status `PushUserData`(char const *buffer, int buffer_size, bool tally_total_size = true)
  TK_Status `GetBlock`(char const **ptr, int *buffer_size)

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Visualize 3DF in your own language, or choose a sample question below to start a conversation:

What is HOOPS Visualize 3DF?
What are the latest release notes for HOOPS Visualize 3DF?
How do I start evaluating HOOPS Visualize 3DF?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...