The HSmartSelItem - selection item which can handle instancing. More...
#include <HSelectionItem.h>
Public Member Functions | |
virtual bool | Delete () |
virtual bool | Equals (const HSelectionItem *i2) const |
virtual const HC_KEY * | GetFullPathKeys (HBaseView *view) |
virtual void | GetFullPathKeys (HBaseView *view, HC_KEY path[]) |
void | GetHighlightedRefList (HC_KEY *keys) |
int | GetHighlightedRefListCount () |
virtual const int | GetHighlightMode () |
virtual int | GetIncludeCount () const |
virtual const HC_KEY *const | GetIncludeKeys () const |
virtual void | GetIncludeKeys (HC_KEY includes[]) const |
virtual const char * | GetName () const |
virtual bool | Highlight () |
HSmartSelItem (HC_KEY key, HSelectionSet *selection_set, int incl_count, HC_KEY incl_keys[]) | |
HSmartSelItem (HC_KEY key, HSelectionSet *selection_set, int incl_count, HC_KEY incl_keys[], bool is_segment) | |
virtual bool | IsHighlighted () const |
virtual bool | IsInstanced () const |
bool | IsSegment () |
virtual bool | QueryIncludeDependency (HC_KEY include_key, HC_KEY &ret_dependent_key) |
virtual void | SetHighlightMode (HSelectionHighlightMode m) |
virtual bool | UnHighlight () |
virtual bool | UpdateIncludeDependency (HC_KEY include_key, HC_KEY dependent_key, HC_KEY replacement_key) |
void | UpdateIncludePath (int incl_count, HC_KEY incl_keys[]) |
Static Public Member Functions | |
static bool | IsHighlighted (const HC_KEY key, const HSelectionSet *selection_set, const int incl_count, const HC_KEY incl_keys[]) |
static bool | IsRegionHighlighted (const HC_KEY key, const HSelectionSet *selection_set, const int incl_count, const HC_KEY incl_keys[], int region) |
Protected Member Functions | |
void | AddHighlightedRefKey (HC_KEY key) |
void | CommonUnhighlightRef () |
void | FixIncludePath () |
HC_KEY | GetHighlightedRefKey () |
HSmartSelItem (bool is_ooc, HC_KEY key, HSelectionSet *selection_set, int incl_count, HC_KEY incl_keys[], bool is_segment) | |
Protected Attributes | |
struct vlist_s * | m_pSelKeyList |
Friends | |
class | HSelectionSet |
The HSmartSelItem - selection item which can handle instancing.
This implementation of HSelectionItem class handles instanced segments and entities. It also uses the 'conditional styling' mechanism to highlight the selection.
HSmartSelItem::HSmartSelItem | ( | HC_KEY | key, |
HSelectionSet * | selection_set, | ||
int | incl_count, | ||
HC_KEY | incl_keys[] | ||
) |
Constructs a HSmartSelItem object.
key | HOOPS key to selection item. |
selection_set | pointer to the HOOPS selection set which owns this selection item. |
incl_count | Number of include keys in the selection item segment path. |
incl_keys | An array of HOOPS keys of all the include keys in the selection item path. |
HSmartSelItem::HSmartSelItem | ( | HC_KEY | key, |
HSelectionSet * | selection_set, | ||
int | incl_count, | ||
HC_KEY | incl_keys[], | ||
bool | is_segment | ||
) |
Constructs a HSmartSelItem object.
key | HOOPS key to selection item. |
selection_set | pointer to the HOOPS selection set which owns this selection item. |
incl_count | Number of include keys in the selection item segment path. |
incl_keys | An array of HOOPS keys of all the include keys in the selection item path. |
is_segment | Is the item known to be a segment. |
void HSmartSelItem::AddHighlightedRefKey | ( | HC_KEY | key | ) | [protected] |
Adds a Reference Geometry key to the list of highlighted objects
the | reference geometry key of a highlighted object |
virtual bool HSmartSelItem::Delete | ( | ) | [virtual] |
Call this function to delete the selection item. NOTE: If the selection is a non-instanced segment or entity, it will be deleted. If the selection is an instanced segment or entity, it's include link will be removed.
Implements HSelectionItem.
Reimplemented in HSubentitySelItem.
virtual bool HSmartSelItem::Equals | ( | const HSelectionItem * | i2 | ) | const [virtual] |
i2 | An HSelectionItem object to be compared with this object |
Reimplemented from HSelectionItem.
Reimplemented in HSubentitySelItem, and HRegionSelItem.
void HSmartSelItem::FixIncludePath | ( | ) | [protected] |
Ensure the include path is correct for the type of highlighting performed
view | The HBaseView in which this item is selected. |
Reimplemented from HSelectionItem.
view | The HBaseView in which the item is selected |
path | An array of keys (returned to the user), just like GetIncludeKeys, except that the keys array includes the selection item and the view key (as passed in). Note that the caller must ensure that the array is of the appropriate size, e.g., via the GetFullPathCount function. |
Reimplemented from HSelectionItem.
HC_KEY HSmartSelItem::GetHighlightedRefKey | ( | ) | [protected] |
Dequeues a Reference Geometry key from the list of highlighted objects
void HSmartSelItem::GetHighlightedRefList | ( | HC_KEY * | keys | ) |
Copies the list of Geometry Reference keys from this selection item.
array | of Reference Geometry keys. Returned to user. Passed by reference always. |
int HSmartSelItem::GetHighlightedRefListCount | ( | ) |
Retrieves the size of the list of highlighted objects
virtual const int HSmartSelItem::GetHighlightMode | ( | ) | [inline, virtual] |
References HSelectionSet::m_HighlightMode.
virtual int HSmartSelItem::GetIncludeCount | ( | ) | const [inline, virtual] |
Implements HSelectionItem.
virtual const HC_KEY* const HSmartSelItem::GetIncludeKeys | ( | ) | const [inline, virtual] |
Implements HSelectionItem.
References HC_KEY.
virtual void HSmartSelItem::GetIncludeKeys | ( | HC_KEY | includes[] | ) | const [virtual] |
includes | An array of include keys (returned to the user). Note that the caller must ensure that the array is of the appropriate size, e.g, via the GetIncludeCount function. |
Implements HSelectionItem.
virtual const char* HSmartSelItem::GetName | ( | ) | const [inline, virtual] |
Reimplemented from HSelectionItem.
Reimplemented in HSubentitySelItem, and HRegionSelItem.
virtual bool HSmartSelItem::Highlight | ( | ) | [virtual] |
Call this function to highlight the selection item.
Implements HSelectionItem.
Reimplemented in HSubentitySelItem, and HRegionSelItem.
virtual bool HSmartSelItem::IsHighlighted | ( | ) | const [virtual] |
Checks to see if an item is currently highlighted.
Implements HSelectionItem.
static bool HSmartSelItem::IsHighlighted | ( | const HC_KEY | key, |
const HSelectionSet * | selection_set, | ||
const int | incl_count, | ||
const HC_KEY | incl_keys[] | ||
) | [static] |
Checks to see if an item is currently highlighted. If you do not have the HSmartSelItem object, but just have the keys and include list returned from HOOPS, you could use this method to find out if the key was selected.
key | HOOPS key to the item to be tested for selection. |
selection_set | A pointer to the HOOPS selection set in which this is to be tested. |
incl_count | Number of include keys in the item segment path. |
incl_keys | An array of HOOPS keys of all the include keys in the item path. |
virtual bool HSmartSelItem::IsInstanced | ( | ) | const [virtual] |
Checks to see if the selection item has any segments/geometry which might be potentially shared. This is determined by checking the include keys in the selection path. If there is more than one (the model key), then it is instanced.
Implements HSelectionItem.
static bool HSmartSelItem::IsRegionHighlighted | ( | const HC_KEY | key, |
const HSelectionSet * | selection_set, | ||
const int | incl_count, | ||
const HC_KEY | incl_keys[], | ||
int | region | ||
) | [static] |
Checks to see if a region is currently highlighted. If you do not have the HSmartSelItem object, but just have the keys and include list returned from HOOPS, you could use this method to find out if the key was selected
key | HOOPS *shell* key to the item to be tested for selection. |
selection_set | A pointer to the HOOPS selection set in which this is to be tested. |
incl_count | Number of include keys in the item segment path. |
incl_keys | An array of HOOPS keys of all the include keys in the item path. |
region | The region number in the shell. |
virtual bool HSmartSelItem::QueryIncludeDependency | ( | HC_KEY | include_key, |
HC_KEY & | ret_dependent_key | ||
) | [virtual] |
Determines if the selection item has any dependency on the include key being provide. If it has, the api returns true and returns which key is dependent as the second argument.
include_key | HC_KEY to include key on which the dependency is wanted. |
ret_dependent_key | HC_KEY to segment/entity which depends on the include key. |
Implements HSelectionItem.
virtual void HSmartSelItem::SetHighlightMode | ( | HSelectionHighlightMode | m | ) | [inline, virtual] |
Sets the selection highlight mode.
m | What the new highlight mode should be (see the SelectionHighlightMode enumeration for possible values) |
References HSelectionSet::m_HighlightMode.
virtual bool HSmartSelItem::UnHighlight | ( | ) | [virtual] |
Call this function to unhighlight the selection item.
Implements HSelectionItem.
Reimplemented in HSubentitySelItem, and HRegionSelItem.
virtual bool HSmartSelItem::UpdateIncludeDependency | ( | HC_KEY | include_key, |
HC_KEY | dependent_key, | ||
HC_KEY | replacement_key | ||
) | [virtual] |
This method updates the given key's dependency on a given include key with a new include key.
include_key | HC_KEY to include key which is deleted/going to be deleted |
dependent_key | HC_KEY to segment/entity which depends on the include key |
replacement_key | new HC_KEY as a replacement to the dependent key |
Implements HSelectionItem.
void HSmartSelItem::UpdateIncludePath | ( | int | incl_count, |
HC_KEY | incl_keys[] | ||
) |
Replace the original include path and count passed into the constructor.
incl_count | The new number of keys in the include path |
incl_keys | An array of include keys |