# TK_Reference

## Functions

| `TK_Reference`
| `~TK_Reference`
`TK_Status` | `Read`
`TK_Status` | `Write`
`TK_Status` | `Clone`
`TK_Status` | `ReadAscii`
`TK_Status` | `WriteAscii`
void | `Reset`
void | `SetIndex`
long | `GetIndex`
void | `SetCondition`
void | `SetCondition`
char const * | `GetCondition`
char * | `GetCondition`
void | `SetFollow`
bool | `GetFollow`

## Detailed Description

class TK_Reference : public BBaseOpcodeHandler

  Handles the TKE_Reference opcodes.

  TK_Reference provides support for writing/reading the TKE_Reference opcode object to/from an HSF file.

  The HOOPS/3dGS scene-graph nodes are called ‘segments’ which store, geometry, attributes, and subsegments. The scene-graph provides support for referencing an individual geometry item, or all geometry items, from another segment as if they were within the current segment, without the attributes or additional subsegments that would be brought along with an ‘include’.

  Public Functions

  TK_Reference()

    constructor

  ~TK_Reference()
  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.

  TK_Status ReadAscii(BStreamFileToolkit &tk)

    Deprecated.

  TK_Status WriteAscii(BStreamFileToolkit &tk)

    Deprecated.

  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.

  inline void SetIndex(int index)

    Sets the id of the referenced item

  inline long GetIndex()

    Returns the id of the referenced item

  void SetCondition(char const *condition)

    Set the condition string. Makes sure the buffer is big enough to hold the condition, and copies it in

  void SetCondition(int length)

    Set the condition string. Makes sure the buffer is big enough to hold a string of ‘length’ characters

  inline char const *GetCondition() const

    Get the condition string. Returns a pointer to the current condition

  inline char *GetCondition()

    Get the condition string buffer. Returns a pointer to the current condition buffer which may then be modified directly

  inline void SetFollow(bool f)

    Sets the flag indicating whether the referenced item should be processed itself

  inline bool GetFollow()

    Returns the flag indicating whether the referenced item should be processed itself