Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HSmartSelItem Class Reference

The HSmartSelItem - selection item which can handle instancing. More...

#include <HSelectionItem.h>

Inheritance diagram for HSmartSelItem:

HSelectionItem HRegionSelItem

List of all members.

Public Member Functions

virtual bool Delete ()
virtual bool Equals (const HSelectionItem *i2) const
virtual void GetFullPathKeys (HBaseView *view, HC_KEY *path)
virtual const HC_KEY * GetFullPathKeys (HBaseView *view)
void GetHighlightedRefList (HC_KEY *keys)
int GetHighlightedRefListCount ()
virtual const int GetHighlightMode ()
virtual int GetIncludeCount () const
virtual void GetIncludeKeys (HC_KEY *includes) const
virtual const HC_KEY *const GetIncludeKeys () const
virtual const char * GetName () const
virtual bool Highlight ()
 HSmartSelItem (HC_KEY key, HSelectionSet *selection_set, int incl_count, HC_KEY *incl_keys, bool is_segment)
 HSmartSelItem (HC_KEY key, HSelectionSet *selection_set, int incl_count, HC_KEY *incl_keys)
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 FixIncludePath ()
HC_KEY GetHighlightedRefKey ()

Protected Attributes

struct vlist_s * m_pSelKeyList


Detailed Description

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.


Constructor & Destructor Documentation

HSmartSelItem::HSmartSelItem ( HC_KEY  key,
HSelectionSet selection_set,
int  incl_count,
HC_KEY *  incl_keys 
)

Constructs a HSmartSelItem object.

Parameters:
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.

Parameters:
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.


Member Function Documentation

void HSmartSelItem::AddHighlightedRefKey ( HC_KEY  key  )  [protected]

Adds a Reference Geometry key to the list of highlighted objects

Parameters:
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.

Returns:
True if the item was successfully deleted.

Implements HSelectionItem.

virtual bool HSmartSelItem::Equals ( const HSelectionItem i2  )  const [virtual]

Returns:
True if the two selection elements are equal.
Parameters:
i2 An HSelectionItem object to be compared with this object

Reimplemented from HSelectionItem.

Reimplemented in HRegionSelItem.

void HSmartSelItem::FixIncludePath (  )  [protected]

Ensure the include path is correct for the type of highlighting performed

virtual void HSmartSelItem::GetFullPathKeys ( HBaseView view,
HC_KEY *  path 
) [virtual]

Parameters:
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.

virtual const HC_KEY* HSmartSelItem::GetFullPathKeys ( HBaseView view  )  [virtual]

Returns:
An array to include keys, just like GetIncludeKeys, except that the keys array includes the selection item and the view key (as passed in).
Parameters:
view The HBaseView in which this item is selected.

Reimplemented from HSelectionItem.

HC_KEY HSmartSelItem::GetHighlightedRefKey (  )  [protected]

Dequeues a Reference Geometry key from the list of highlighted objects

Returns:
the reference geometry key of a highlighted object

void HSmartSelItem::GetHighlightedRefList ( HC_KEY *  keys  ) 

Copies the list of Geometry Reference keys from this selection item.

Parameters:
array of Reference Geometry keys. Returned to user. Passed by reference always.

int HSmartSelItem::GetHighlightedRefListCount (  ) 

Retrieves the size of the list of highlighted objects

Returns:
size of highlighted list

virtual const int HSmartSelItem::GetHighlightMode (  )  [inline, virtual]

Returns:
The selection highlight mode.

virtual int HSmartSelItem::GetIncludeCount (  )  const [inline, virtual]

Returns:
The number of include keys in the include path.

Implements HSelectionItem.

virtual void HSmartSelItem::GetIncludeKeys ( HC_KEY *  includes  )  const [virtual]

Parameters:
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 HC_KEY* const HSmartSelItem::GetIncludeKeys (  )  const [inline, virtual]

Returns:
An array to include keys. The return pointer is for read-only purpose.

Implements HSelectionItem.

References HC_KEY.

virtual const char* HSmartSelItem::GetName (  )  const [inline, virtual]

Returns:
A character pointer denoting the name which is "HSmartSelItem."

Reimplemented from HSelectionItem.

Reimplemented in HRegionSelItem.

virtual bool HSmartSelItem::Highlight (  )  [virtual]

Call this function to highlight the selection item.

Returns:
True if the highlight is successful.

Implements HSelectionItem.

Reimplemented in HRegionSelItem.

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.

Parameters:
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.
Returns:
True if the item is currently highlighted, false if otherwise.

virtual bool HSmartSelItem::IsHighlighted (  )  const [virtual]

Checks to see if an item is currently highlighted.

Returns:
True if the item is currently highlighted, false if otherwise.

Implements HSelectionItem.

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.

Returns:
True if the item 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

Parameters:
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.
Returns:
True if the item is currently highlighted, false if otherwise.

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.

Parameters:
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.
Returns:
True if the item has dependency on the include_key.

Implements HSelectionItem.

virtual void HSmartSelItem::SetHighlightMode ( HSelectionHighlightMode  m  )  [inline, virtual]

Sets the selection highlight mode.

Parameters:
m What the new highlight mode should be (see the SelectionHighlightMode enumeration for possible values)

virtual bool HSmartSelItem::UnHighlight (  )  [virtual]

Call this function to unhighlight the selection item.

Returns:
True if the unhighlight is successful.

Implements HSelectionItem.

Reimplemented in 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.

Parameters:
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
Returns:
True if the dependency has been successfully updated.

Implements HSelectionItem.

void HSmartSelItem::UpdateIncludePath ( int  incl_count,
HC_KEY *  incl_keys 
)

Replace the original include path and count passed into the constructor.

Parameters:
incl_count The new number of keys in the include path
incl_keys An array of include keys


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