hc_experimental_proto.h

Macro Definitions

HC_EXPERIMENTAL_PROTO_DEFINED

Types

HC_Cellular_Volume_Type

Fields

HC_CELLULAR_VOLUME_SIMPLEX

HC_CELLULAR_VOLUME_PYRAMID

HC_CELLULAR_VOLUME_WEDGE

HC_CELLULAR_VOLUME_BOX

HC_CELLULAR_VOLUME_FACE

HC_CELLULAR_VOLUME_POLYHEDRON

HC_CELLULAR_VOLUME_MIXED

HC_CELLULAR_VOLUME_SEPARATOR

Functions

void

HC_Edit_Cellular_Volume_Cells

void

HC_Edit_Cellular_Volume_Points

void

HC_DEdit_Cellular_Volume_Points

Key

HC_Insert_Cellular_Volume

Key

HC_DInsert_Cellular_Volume

void

HC_Show_Cellular_Volume

void

HC_DShow_Cellular_Volume

void

HC_Show_Cellular_Volume_Size

void

HC_Show_Cell_Vol_Cell_Count

void

HC_Show_Cell_Vol_Pgon_Count

void

HC_Show_Partial_Cell_Vol

void

HC_DShow_Partial_Cell_Vol

void

HC_Show_Partial_Cell_Vol_Size

void

HC_Show_Cell_Vol_Part_Pgon_Cnt

void

HC_Delete_Spec_Cell_Vol_Cells

void

HC_Delete_Spec_Cell_Vol_Points

Detailed Description

Macro Definition

HC_EXPERIMENTAL_PROTO_DEFINED

Type Documentation

enum HC_Cellular_Volume_Type

Values:

enumerator HC_CELLULAR_VOLUME_SIMPLEX
enumerator HC_CELLULAR_VOLUME_PYRAMID
enumerator HC_CELLULAR_VOLUME_WEDGE
enumerator HC_CELLULAR_VOLUME_BOX
enumerator HC_CELLULAR_VOLUME_FACE
enumerator HC_CELLULAR_VOLUME_POLYHEDRON
enumerator HC_CELLULAR_VOLUME_MIXED
enumerator HC_CELLULAR_VOLUME_SEPARATOR

Function Documentation

void HC_Edit_Cellular_Volume_Cells(Key key, int offset, int ndelete, int insert_list_length, int const insert_list[])

Creates or deletes cells in a previously declared cellular volume.

Edit_Cellular_Volume_Cells() lets you modify a complex colume as it sits in the database. You don’t have to delete and reinsert the volume from scratch.

DETAILS

Edit_Cellular_Volume_Cells() changes the originally specified cell_list (see Insert_Cellular_Volum() ), starting at offset in terms of the number of whole cells.

First, if ndelete is non-zero then ndelete cells are dissolved from offset through offset+ ndelete - 1. The points referenced by those cells still exist.

If insert_list_length is non-zero, new cells are then constructed using the information in insert_list, to a maximum of insert_list_length. The new cells are inserted in the list just before offset.

Finally, the offsets of the cells are renumbered to reflect any changes.

See also

HC_Edit_Cellular_Volume_Points, HC_Show_Cellular_Volume, HC_Delete_Segment, HC_Delete_By_Key, HC_Flush_Contents, HC_Flush_By_Key, HC_Insert_Cellular_Volume.

Parameters
  • key – - The unique identifier returned by a previous call to Insert_Cellular_Volume().

  • offset – - Number of the cell in the original volume definition before which to start inserting or at which to begin deleting. “0” is the first. If specified as “-1”, editing starts after the old final cell.

  • ndelete – - Number of cells to delete.

  • insert_list_length – - Number of integers in insert_list.

  • insert_list – - Encoded description of how to connect the existing vertices to build new cells for the volume. See Insert_Cellular_Volume() for format.

void HC_Edit_Cellular_Volume_Points(Key key, int offset, int ndelete, int insert, Point const points[])

Changes or deletes vertex points of a previously declared cellular volume, or adds new points.

See also

HC_Edit_Shell_Points, HC_Insert_Cellular_Volume.

Parameters
  • key – - The unique identifier returned by a previous call to Insert_Cellular_Volume().

  • offset – - Number of the point in the original volume definition just before which to start editing. “0” is the first. If specified as “-1”, editing starts after the old final point.

  • ndelete – - Number of points to delete.

  • insert – - The number of points to be inserted.

  • points – - Vector of x-y-z triplets to insert. (A simple N x 3 array may also be used.) Passed by reference always.

void HC_DEdit_Cellular_Volume_Points(Key key, int offset, int ndelete, int insert, DPoint const points[])
Key HC_Insert_Cellular_Volume(int point_count, Point const points[], int cell_list_length, int const cell_list[])

Generates an object that is an arbitrarily-connected collection of polyhedral cells.

To be enhanced

Parameters
  • pcount – - Number of valid points in points.

  • points – - Vector of x-y-z triplets for the coordinates of the vertices to be used to build the shell. (A simple Nx 3 array may also be used.) Passed by reference always.

  • cell_list_length – - Total number of integers in face_list.

  • cell_list – - Encoded description of how to connect the points to build the cells of the colume (see details).

Returns

The key to the inserted geometry, or -1 if an error occurred.

Key HC_DInsert_Cellular_Volume(int point_count, DPoint const points[], int cell_list_length, int const cell_list[])

Similar to Insert_Cellular_Volume(), but operates on double-precision point data.

Parameters
  • pcount – - Number of valid points in points.

  • points – - Vector of x-y-z triplets for the coordinates of the vertices to be used to build the shell. (A simple Nx 3 array may also be used.) Passed by reference always.

  • cell_length – - Total number of integers in face_list.

  • cell_list – - Encoded description of how to connect the points to build the cells of the colume (see details).

Returns

The key to the inserted geometry, or -1 if an error occurred.

void HC_Show_Cellular_Volume(Key key, int *pcount, Point points[], int *flist_length, int face_list[])

Returns the previous definition of a cellular volume, as referenced by a key.

Show_Cellular_Volume() reads back the x-y-z’s currently stored in a cellular volume. This is useful if your program is not storing its own copy of the shell data. The key for the shell might come from Show_Selection_Element() or Find_Contents(), or it might have been saved by your program when the shell was created.

DETAILS

Use Show_Cellular_Volume_Size() to determine how large the points and face_list arrays are going to be, before you actually call Show_Cellular_Volume() .

Similar to Show_Cellular_Volume() , Show_Partial_Cellular_Volume() is used to read back the x-y-z’s currently stored in a shell. However, the user can limit the part of the shell to examine, so that less memory (and time) is required for the operation.

Use Show_Partial_Cellular_Volume_Size() to determine the minimum size of the points and face_list arrays, before you actually call Show_Partial_Shell().

See also

HC_Insert_Shell, HC_Get_Selection, HC_Open_Geometry, HC_Open_LOD, HC_Begin_Contents_Search, HC_Compute_Coordinates, HC_Open_Geometry

NOTES

Parameters
  • key – - Unique numeric identifier pointing to a cellular volume in the database.

  • pcount – - Number of valid points in points. Returned to caller. Passed by reference always.

  • points – - Vector of x-y-z triplets for the coordinates of the vertices to be used to build the volume. (A simple N x 3 array may also be used.) Returned to caller. Passed by reference always.

  • clist_length – - Total number of integers in cell_list. Returned to caller. Passed by reference always.

  • cell_list – - Encoded description of how to connect the points to build the cells of the volume. Returned to caller. Passed by reference always.

void HC_DShow_Cellular_Volume(Key key, int *pcount, DPoint points[], int *flist_length, int face_list[])
void HC_Show_Cellular_Volume_Size(Key key, int *pcount, int *clist_length)

Finds the size of a given cellular volume. This is useful in determining the size of the data structures that must hold points and cell_list

See also

HC_Show_Cellular_Volume()

Parameters
  • key – - Unique numeric identifier pointing to a cellular volume in the database.

  • pcount – - Number of valid points in points. Returned to caller. Passed by reference always.

  • clist_length – - Total number of integers in cell_list. Returned to caller. Passed by reference always.

void HC_Show_Cell_Vol_Cell_Count(Key key, int *cell_count)

Returns the number of cells in the cellular volume in constant time.

See also

HC_Show_Cellular_Volume()

Parameters
  • key – - Unique numeric identifier pointing to a Cellular volume in the database.

  • cell_count – - Number of cells in the cellular volume. Returned to caller. Passed by reference always.

void HC_Show_Cell_Vol_Pgon_Count(Key key, int *polygon_countp)

Returns the number of defined polygons in the cellular volume.

See also

HC_Show_Cellular_Volume()

Parameters
  • key – - Unique numeric identifier pointing to a Cellular volume in the database.

  • cell_count – - Number of polygons in the cellular volume. Returned to caller. Passed by reference always.

void HC_Show_Partial_Cell_Vol(Key key, int poffset, int pcount, Point points[], int coffset, int ccount, int *cell_list_lengthp, int cell_list[])

Returns a portion of the previous definition of a cellular volume, as referenced by a key.

See also

HC_Show_Shell()

Parameters
  • key – - Unique numeric identifier pointing to a shell in the database.

  • poffset – - Index of the first vertex to be returned in the points list previously defined by Insert_Shell() .

  • pcount – - Number of vertices to return to user in the points data structure.

  • points – - Vector of x-y-z triplets for the coordinates of the vertices to be used to build the shell. (A simple N x 3 array may also be used.) Returned to caller. Passed by reference always.

  • coffset – - Index of the first cell to be returned in the cells list previously defined by Insert_Cellular_Volume.

  • ccount – - Number of cells to return to user in the cell_list data structure.

  • clist_length – - Total number of integers in cell_list. Returned to caller. Passed by reference always.

  • cell_list – - Encoded description of how to connect the points to build the faces of the shell. Returned to caller. Passed by reference always.

void HC_DShow_Partial_Cell_Vol(Key key, int poffset, int pcount, DPoint points[], int coffset, int ccount, int *cell_list_lengthp, int cell_list[])
void HC_Show_Partial_Cell_Vol_Size(Key key, int coffset, int ccount, int *clist_length)

Finds the size of a portion of a cellular volume. This is useful in determining the size of the data structure that must hold the cell_list array in Show_Partial_Cellular_Volume().

See also

HC_Show_Shell()

Parameters
  • key – - Unique numeric identifier pointing to a shell in the database.

  • coffset – - Index of the first face to be returned in the faces list previously defined by Insert_Cellular_Colume.

  • ccount – - Number of faces to return to user in the face_list data structure.

  • clist_length – - Total number of integers in face_list. Returned to caller. Passed by reference always.

void HC_Show_Cell_Vol_Part_Pgon_Cnt(Key key, int offset, int count, int *polygon_countp)

Returns the number of defined polygons in the cellular volume.

See also

HC_Show_Cellular_Volume()

Parameters
  • key – - Unique numeric identifier pointing to a Cellular volume in the database.

  • offset – - index of first cell position to consider (zero will include polygons before the actual first cell).

  • count – - the maximum numver of cells to consider while looking for polygons.

  • cell_count – - Number of polygons in the specified portion of the cellular volume. Returned to caller. Passed by reference always.

void HC_Delete_Spec_Cell_Vol_Cells(Key key, int count, int const indices[])

Removes particular cells from the cell list of a particular cellular volume.

See also

HC_Delete_Specific_Cellular_Volume_Points, HC_Edit_Cellular_Volume_Cells, HC_Edit_Cellular_Volume_Points

DETAILS

This function allows users to quickly remove cells from a particular cellular volume. Please note that the indices provided are not indices into the cell list directly, but rather they are the indices of the cells within the volumes.

Parameters
  • key – - Key to the volume from which the cells should be removed.

  • count – - Number of cells that will be removed.

  • indices – - The indices of the particular cells within the cell list that are to be removed.

void HC_Delete_Spec_Cell_Vol_Points(Key key, int count, int const indices[])

Removes a particular point or points from the point list of a particular cellular volume.

See also

HC_Delete_Specific_Cellular_Volume_Cells, HC_Edit_Cellular_Volume_Cells, HC_Edit_Cellular_Volume_Points

DETAILS

This function allows users to quickly remove points from a particular cellular volume.

Parameters
  • key – - Key to the volume from which the points should be removed.

  • count – - Number of points that will be removed.

  • indices – - The indices of the particular points within the cell list that are to be removed.