# HPoint

## Fields

float | `x`
float | `y`
float | `z`

## Functions

| `HPoint`
| `HPoint`
| `HPoint`
| `HPoint`
void | `Set`
void | `Set`
void | `Set`
void | `Set`
void | `Set`
void | `Add`
HPoint const | `operator-`
HPoint const | `operator+`
HPoint const | `operator*`
HPoint const | `operator/`
HPoint const & | `operator+=`
HPoint const & | `operator-=`
HPoint const & | `operator*=`
HPoint const & | `operator/=`
bool | `operator==`
bool | `operator!=`
HPoint & | `operator=`
bool | `Equal`
bool | `Equal`

## Detailed Description

class HPoint

  The HPoint class is the data type of a three-dimensional point.

  The HPoint class encapsulates the x, y, and z coordinates of a 3-dimensional point. HPoint simplifies the passing of 3-dimensional point data to all of the MVO and derived classes. It is widely used by public and internal functions as well as by native HOOPS routines.

  Subclassed by HPointKey

  Public Functions

  inline HPoint()

    The default constructor.

  inline HPoint(float X, float Y, float Z = 0.0f)

    This constructor accepts floats for the x, y and z coordinates.

  inline HPoint(HPoint const *p)

    This constructor accepts a pointer to an HPoint object.

  inline HPoint(HPoint const &p)

    This constructor accepts an HPoint reference.

  inline void Set(float X, float Y, float Z = 0.0f)

    This method packs an HPoint object with coordinate values.

  inline void Set(HPoint *p)

    This method packs an HPoint object with coordinate values from a given HPoint.

  inline void Set(HPoint const *p)

    This method packs an HPoint object with coordinate values from a given HPoint.

  inline void Set(HPoint &p)

    This method packs an HPoint object with coordinate values from a given HPoint that is passed by reference.

  inline void Set(const HPoint &p)

    This method packs an HPoint object with coordinate values from a given HPoint that is passed by reference.

  inline void Add(float X, float Y, float Z = 0.0)

    This method increases/decreases the coordinate values of an existing HPoint object.

    Parameters

      - X – The amount in which you want to increment or decrement the x coordinate.

      - Y – The amount in which you want to increment or decrement the y coordinate.

      - Z – The amount in which you want to increment or decrement the z coordinate.

  inline HPoint const operator-(const HPoint &p2) const
  inline HPoint const operator+(const HPoint &p2) const
  inline HPoint const operator*(float const rhs) const
  inline HPoint const operator/(float const rhs) const
  inline HPoint const &operator+=(HPoint const &rhs)
  inline HPoint const &operator-=(HPoint const &rhs)
  inline HPoint const &operator*=(float const rhs)
  inline HPoint const &operator/=(float const rhs)
  inline bool operator==(HPoint const &rhs) const
  inline bool operator!=(HPoint const &rhs) const
  HPoint &operator=(const HPoint&) = default
  inline bool Equal(HPoint const *p, float epsi = (1e-5f)) const

    This method checks if the xyz components of the point are equal.

  inline bool Equal(HPoint const &p, float epsi = (1e-5f)) const

    This method checks if the xyz components of the point are equal.

  Public Members

  float x

    The x-coordinate of a 3-dimensional point.

  float y

    The y-coordinate of a 3-dimensional point.

  float z

    The z-coordinate of a 3-dimensional point.