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
Detailed Description
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
-
enumerator
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 volume 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.