Adobe.com
Contents Suites Classes Class Index Member Index

AIMeshPatchIteratorSuite Struct Reference
[API Suite List]

This suite provides functions that allow you to traverse and manipulate the patches in a mesh through a reference-counted iterator object. More...

#include <AIMesh.h>

List of all members.

Public Attributes

AIAPI ai::int32(* AddRef )(AIMeshPatchIterator patch)
 Increments the reference count of a patch iterator object.
AIAPI ai::int32(* Release )(AIMeshPatchIterator patch)
 Decrements the reference count of a patch iterator object, and frees the associated memory when the count reaches 0.
AIAPI AIErr(* Copy )(AIMeshPatchIterator patch, AIMeshPatchIterator from)
 Copies the contents of a patch iterator into another, existing iterator object.
AIAPI AIErr(* Clone )(AIMeshPatchIterator patch, AIMeshPatchIterator *clone)
 Duplicates a patch iterator, creating a new iterator object.
AIAPI AIBoolean(* IsEqual )(AIMeshPatchIterator patch1, AIMeshPatchIterator patch2)
 Reports whether two patch iterator objects reference the same patch.
AIAPI AIBoolean(* AtEnd )(AIMeshPatchIterator patch)
 Reports whether a patch iterator has reached the last patch.
AIAPI void(* Next )(AIMeshPatchIterator patch)
 Advances a patch iterator, so that it contains the next patch in the mesh.
AIAPI void(* Prev )(AIMeshPatchIterator patch)
 Backs up a patch iterator, so that it contains the previous patch in the mesh.
AIAPI void(* NextI )(AIMeshPatchIterator patch)
 Advances a patch iterator, so that it contains the next patch in the mesh, increasing along the I axis.
AIAPI void(* PrevI )(AIMeshPatchIterator patch)
 Backs up a patch iterator, so that it contains the previous patch in the mesh, decreasing along the I axis.
AIAPI void(* NextJ )(AIMeshPatchIterator patch)
 Advances a patch iterator, so that it contains the next patch in the mesh, increasing along the J axis.
AIAPI void(* PrevJ )(AIMeshPatchIterator patch)
 Backs up a patch iterator, so that it contains the previous patch in the mesh, decreasing along the J axis.
AIAPI ai::int32(* CountNodes )(AIMeshPatchIterator patch)
 Retrieves the number of nodes in a patch.
AIAPI AIErr(* GetNodeN )(AIMeshPatchIterator patch, ai::int32 n, AIMeshVertexIterator *vertex)
 Creates a vertex iterator for a node of a patch, identified by index position.
AIAPI AIErr(* GetNodeIJ )(AIMeshPatchIterator patch, ai::int32 i, ai::int32 j, AIMeshVertexIterator *vertex)
 Creates a vertex iterator for a node of a patch, identified by an (I,J) offset relative to the bottom left node of the patch.
AIAPI AIErr(* GetSegmentN )(AIMeshPatchIterator patch, ai::int32 n, ai::int32 direction, AIMeshSegmentIterator *segment)
 Creates a segment iterator for one of the two segments adjacent to a patch and connected to a node specified by position index.
AIAPI AIErr(* GetSegmentIJ )(AIMeshPatchIterator patch, ai::int32 i, ai::int32 j, ai::int32 direction, AIMeshSegmentIterator *segment)
 Creates a segment iterator for one of the two segments adjacent to a patch and connected to a node specified by an (I,J) offset relative to the bottom left node of the patch.
AIAPI ai::int32(* CountVerticies )(AIMeshPatchIterator patch)
 Reports the number of vertices around a patch, including nodes.
AIAPI AIErr(* GetVertexM )(AIMeshPatchIterator patch, ai::int32 m, AIMeshVertexIterator *vertex)
 Creates a vertex iterator for a vertex identified by index position in a patch.
AIAPI AIErr(* GetSegmentM )(AIMeshPatchIterator patch, ai::int32 m, ai::int32 direction, AIMeshSegmentIterator *segment)
 Creates a segment iterator for one of the two segments adjacent to a patch and connected to a vertex specified by position index.
AIAPI AIErr(* FindVertex )(AIMeshPatchIterator patch, AIMeshVertexIterator vertex, ai::int32 *m)
 Reports the ordinal position of a vertex around a patch.
AIAPI void(* GetIJ )(AIMeshPatchIterator patch, ai::int32 *i, ai::int32 *j)
 Retrives the (i,j) coordinate of a patch within the mesh.

Detailed Description

This suite provides functions that allow you to traverse and manipulate the patches in a mesh through a reference-counted iterator object.

See Mesh Iterators.


Member Data Documentation

Increments the reference count of a patch iterator object.

The initial reference count is 1, so you do not typically need to call this function. (Note that this function returns a numeric value, not an error code.)

Parameters:
patch The iterator object.
Returns:
The current reference count.

Reports whether a patch iterator has reached the last patch.

When this function returns true, the iterator no longer contains a valid patch, and can no longer be used with the iteration functions. Check this before calling Next(), Prev(), or related functions if there is a chance of walking off the end of the mesh. (Note that this function returns a boolean value, not an error code.)

Parameters:
patch The iterator object.
Returns:
True when the iterator is past the last patch.

Duplicates a patch iterator, creating a new iterator object.

Parameters:
patch The source iterator object.
clone [out] A buffer in which to return the new iterator object.

Copies the contents of a patch iterator into another, existing iterator object.

Parameters:
patch The destination iterator object.
from The source iterator object.

Retrieves the number of nodes in a patch.

(Note that this function returns a numeric value, not an error code.)

Parameters:
patch The iterator object.
Returns:
The number of nodes (currently always 4).

Reports the number of vertices around a patch, including nodes.

Use with GetVertexM() and GetSegmentM() to iterate through vertices and segments. (Note that this function returns a numeric value, not an error code.)

Parameters:
patch The patch iterator object.
Returns:
The number of vertices.

Reports the ordinal position of a vertex around a patch.

Parameters:
patch The patch iterator object.
vertex The vertex iterator object.
m [out] A buffer in which to return the vertex position.

Retrives the (i,j) coordinate of a patch within the mesh.

Parameters:
patch The patch iterator object.
i [out] A buffer in which to return the I-axis coordinate.
j [out] A buffer in which to return the J-axis coordinate.

Creates a vertex iterator for a node of a patch, identified by an (I,J) offset relative to the bottom left node of the patch.

Parameters:
patch The patch iterator object.
i The I-axis offset of the node.
J The J-axis offset of the node.
vertex [out] A buffer in which to return the new vertex iterator.

Creates a vertex iterator for a node of a patch, identified by index position.

Nodes are numbered from 0 to 3, counter-clockwise from the bottom left of the patch.

Parameters:
patch The patch iterator object.
n The 0-based index of the node.
vertex [out] A buffer in which to return the new vertex iterator.

Creates a segment iterator for one of the two segments adjacent to a patch and connected to a node specified by an (I,J) offset relative to the bottom left node of the patch.

Parameters:
patch The patch iterator object.
i The I-axis offset of the node.
J The J-axis offset of the node.
direction Whether to make a clockwise or counter-clockwise turn at patch corners, an AIMeshPatchDirection value. (This indicates which segment to get.)
segment [out] A buffer in which to return the new segment iterator.

Creates a segment iterator for one of the two segments adjacent to a patch and connected to a vertex specified by position index.

Parameters:
patch The patch iterator object.
m The 0-based index of the vertex. Use CountVerticies() to find the number of vertices in the patch.
direction Whether to make a clockwise or counter-clockwise turn at patch corners, an AIMeshPatchDirection value. (This indicates which segment to get.)
segment [out] A buffer in which to return the new segment iterator.

Creates a segment iterator for one of the two segments adjacent to a patch and connected to a node specified by position index.

The nodes are numbered from 0 to 3 counter-clockwise from the bottom left of the patch.

Parameters:
patch The patch iterator object.
n The 0-based index of the node.
direction Whether to make a clockwise or counter-clockwise turn at patch corners, an AIMeshPatchDirection value. (This indicates which segment to get.)
vertex [out] A buffer in which to return the new segment iterator.

Creates a vertex iterator for a vertex identified by index position in a patch.

Parameters:
patch The patch iterator object.
m The 0-based index of the vertex. Use CountVerticies() to find the number of vertices in the patch.
vertex [out] A buffer in which to return the new vertex iterator.

Reports whether two patch iterator objects reference the same patch.

(Note that this function returns a boolean value, not an error code.)

Parameters:
patch1 The first iterator object.
patch2 The second iterator object.
Returns:
True if the iterators are equal.

Advances a patch iterator, so that it contains the next patch in the mesh.

Use with an iterator obtained from AIMeshSuite::GetStartPatch(). Repeated calls guarantee that every element is visited once and only once. The order of traversal is undefined. (Note that this function does not return an error code.)

Parameters:
patch The iterator object.
See also:
Prev(), AtEnd()

Advances a patch iterator, so that it contains the next patch in the mesh, increasing along the I axis.

(Note that this function does not return an error code.)

Parameters:
patch The iterator object.
See also:
PrevI(), AtEnd()

Advances a patch iterator, so that it contains the next patch in the mesh, increasing along the J axis.

(Note that this function does not return an error code.)

Parameters:
patch The iterator object.
See also:
PrevJ(), AtEnd()

Backs up a patch iterator, so that it contains the previous patch in the mesh.

(Note that this function does not return an error code.)

Parameters:
patch The iterator object.
See also:
Next(), AtEnd()

Backs up a patch iterator, so that it contains the previous patch in the mesh, decreasing along the I axis.

(Note that this function does not return an error code.)

Parameters:
patch The iterator object.
See also:
NextI(), AtEnd()

Backs up a patch iterator, so that it contains the previous patch in the mesh, decreasing along the J axis.

(Note that this function does not return an error code.)

Parameters:
patch The iterator object.
See also:
NextJ(), AtEnd()

Decrements the reference count of a patch iterator object, and frees the associated memory when the count reaches 0.

(Note that this function returns an numeric value, not an error code.)

Parameters:
patch The iterator object.
Returns:
The current reference count.

The documentation for this struct was generated from the following file:


Contents Suites Classes Class Index Member Index
Adobe Solutions Network
 
Copyright © 2016 Adobe Systems Incorporated. All rights reserved.
Terms of Use Online Privacy Policy Adobe and accessibility Avoid software piracy Permissions and Trademarks