# IRdEdgeNeighborsStream Interface Reference

Inherits IDispatch.

List of all members.

## Public Member Functions
HRESULT | GetNumTripleIndices ([out, retval] RtDWORD *dwNumTripleIndices)
HRESULT | SetNumTripleIndices ([in] RtDWORD dwNumTripleIndices)
## Properties
RtUlong * | i ([in] RtDWORD dwIndex)`[get]`
RtUlong | i ([in] RtDWORD dwIndex)`[set]`
RtUlong * | j ([in] RtDWORD dwIndex)`[get]`
RtUlong | j ([in] RtDWORD dwIndex)`[set]`
RtUlong * | k ([in] RtDWORD dwIndex)`[get]`
RtUlong | k ([in] RtDWORD dwIndex)`[set]`

## Detailed Description

IRdEdgeNeighborsStream is a temporary stream, that holds topology information for mesh.

- For each triangle edge it stores 3*triangle+edge of neighbor triangle.
- For non-2manifold meshes, neighbor with biggest face angle is used.

Remarks:
  In graphics 2manifold means that each edge has exactly 2 faces.

This is a temporary stream, that should be used stored inside system scratch-pad instead of mesh streams. If you want to add stream to mesh, it can be stored in Triangle stream group.

Stream is identified by STREAMID_TRIANGLES_EDGENEIGHS id.

## Member Function Documentation

HRESULT IRdEdgeNeighborsStream::GetNumTripleIndices | ( | [out, retval] RtDWORD * | dwNumTripleIndices | ) |

Get number of triple indices.

- Each triple index represents a triangle (3 vertices).

Returns:
  dwNumTripleIndices [out,retval] Number of triple indices found.

  standard HRESULT processing can be applied to returned value.

HRESULT IRdEdgeNeighborsStream::SetNumTripleIndices | ( | [in] RtDWORD | dwNumTripleIndices | ) |

Set number of triple indices.

Parameters:

  | dwNumTripleIndices | [in] Set number of triple indices.

Returns:
  standard HRESULT processing can be applied to returned value

## Property Documentation

RtUlong * IRdEdgeNeighborsStream::i([in] RtDWORD dwIndex)`[get]`

Get neighbor of dwIndex-th triangle-edge sharing edge 1-2.

Parameters:

  | dwIndex | [in] Triangle index.

Returns:
  pVal [out,retval] Neighboring triangle index.

  standard HRESULT processing can be applied to returned value.

RtUlong IRdEdgeNeighborsStream::i([in] RtDWORD dwIndex)`[set]`

Set neighbor of dwIndex-th triangle-edge sharing edge 1-2.

Parameters:

  | dwIndex | [in] Triangle index.
  | newVal | [in] Neighboring triangle-edge index.

Returns:
  standard HRESULT processing can be applied to returned value

RtUlong * IRdEdgeNeighborsStream::j([in] RtDWORD dwIndex)`[get]`

Get neighbor of dwIndex-th triangleedge sharing edge 2-3.

Parameters:

  | dwIndex | [in] Triangle index.

Returns:
  pVal [out, retval] Neighboring triangle-edge index.

  standard HRESULT processing can be applied to returned value

RtUlong IRdEdgeNeighborsStream::j([in] RtDWORD dwIndex)`[set]`

Set neighbor of dwIndex-th triangleedge sharing edge 2-3.

Parameters:

  | dwIndex | [in] Triangle index.
  | newVal | [in] Neighboring triangle-edge index.

Returns:
  standard HRESULT processing can be applied to returned value.

RtUlong* IRdEdgeNeighborsStream::k([in] RtDWORD dwIndex)`[get]`

Get neighbor of dwIndex-th triangle-edge sharing edge 3-1.

Parameters:

  | dwIndex | [in] Triangle index.
  | pVal | [out, retval] Neighboring triangle-edge index.

Returns:
  standard HRESULT processing can be applied to returned value.

RtUlong IRdEdgeNeighborsStream::k([in] RtDWORD dwIndex)`[set]`

Set neighbor of dwIndex-th triangle-edge sharing edge 3-1.

Parameters:

  | dwIndex | [in] Triangle index.
  | newVal | [in] Neighboring triangle-edge index.

Returns:
  standard HRESULT processing can be applied to returned value.