I3DGrid(64) Interface
- Create
- GetCellCount
- GetRanges
- GetBox
- FindBox
- GetCover
I3DGrid interface gives access to 3D grid of
of an object. It can be queried from the relevant ISection
interface.
See also: Interface List
HRESULT Create(int cellsMaxDimension)
Parameters
cellsMaxDimension - [in] number of
cells the longest dimension of the Bounding Box of the object will be divided
into.
-
- Remarks:
Creates the grid for the object I3DGrid was queried form. The method obtains
Axis Aligned Bounding Box of the object, copies it as initial size of the
box of the grid, divides its
longest side into cellsMaxDimension cells. Two other
dimensions of the bounding box are are adjusted by increasing its size to
satisfy requirements. After this number of cells in remaining dimensions are
calculated. These parameters can be retrieved with calls to GetRanges
and GetCellCount methods below.
HRESULT GetCellCount(KCN3* cellCount)
Parameters
cellCount - [out] The returned
count of cells in each dimension.
- Remarks:
Returns count of cells in each dimension.
HRESULT GetRanges(KCBox* ranges)
Parameters
ranges - [out] The returned
dimensions of the box of the grid.
-
- Remarks:
Returns dimensions of the box
of the grid
HRESULT GetBox(KCN3* index,
KCBox* ranges)
Parameters
ranges [out] The returned
subdivision box of cell
index
-
- Remarks:
Returns location and dimensions of the
subdivision box identified by
its 3D index.
HRESULT FindBox(DIPoint* point,
KCN3* index)
Parameters
point - [in] Input point to find a
box for.
-
index - [out] The returned 3D index
of the
subdivision box where the
point belongs
- Remarks:
For a 3D point calculates index of the box there the point belongs.
HRESULT GetCover(VARIANT_BOOL intern, VARIANT_BOOL shell,
VARIANT_BOOL external, IList** cover, KCN3*
count)
Parameters
intern - [in] Indicates whether
boxes fully inside the internal area of the object should be added to the
cover list.
shell - [in] Indicates whether boxes
covering external surface of the object should be added to the cover
list.
external - [in] Indicates whether
boxes fully outside of the object should be added to the cover
list.
count - [out] Returned count of
internal (element 0), shell (element 1) and external (element 2) boxes in the cover
list.
-
- Remarks:
All subdivision boxes in
the grid are divided in three categories: internal, external and ones which have
non-empty intersection with the geometric surface of the object. The method lists
all boxes of the requested categories in the cover list. Elements
of the list have type of KCN3*,
and are 3D indices of the boxes. Use GetBox method above
to obtain location of the boxes.
|