16 #ifndef _HSELECTIONITEM_H
17 #define _HSELECTIONITEM_H
51 virtual const char *
GetName()
const {
return "HSelectionItem"; };
62 virtual HC_KEY GetSegmentKey()
const;
74 virtual bool Highlight() = 0;
79 virtual bool UnHighlight() = 0;
85 virtual bool IsHighlighted()
const = 0;
93 virtual bool Delete() = 0;
102 virtual bool IsInstanced()
const = 0;
107 virtual int GetIncludeCount()
const = 0;
111 virtual const HC_KEY *
const GetIncludeKeys()
const = 0;
116 virtual void GetIncludeKeys(HC_KEY includes[])
const = 0;
125 virtual bool QueryIncludeDependency(HC_KEY include_key, HC_KEY & ret_dependent_key) = 0;
136 virtual bool UpdateIncludeDependency(HC_KEY include_key, HC_KEY dependent_key, HC_KEY replacement_key) = 0;
141 virtual int GetFullPathCount(
HBaseView * view);
154 virtual void GetFullPathKeys (
HBaseView * view, HC_KEY path[]);
216 virtual const char *
GetName()
const {
return "HSmartSelItem"; };
280 const int incl_count,
const HC_KEY incl_keys[]);
292 static bool IsRegionHighlighted(
const HC_KEY key,
const HSelectionSet * selection_set,
293 const int incl_count,
const HC_KEY incl_keys[],
int region);
338 void UpdateIncludePath(
int incl_count, HC_KEY incl_keys[]);
354 void CommonUnhighlightRef();
367 int GetHighlightedRefListCount();
373 void GetHighlightedRefList(HC_KEY * keys);
375 bool IsSegment() {
return m_is_segment;}
381 void FixIncludePath();
387 HC_KEY GetHighlightedRefKey();
393 void AddHighlightedRefKey(HC_KEY key);
395 struct vlist_s *m_pSelKeyList;
398 void GetBaseTag(
char * retTag);
420 HC_KEY m_entity_proxy_seg_tag;
448 virtual const char *
GetName()
const {
return "HRegionSelItem"; };
452 virtual int const GetRegion()
const {
return m_Region; }
477 virtual int IncrEdgeHighlightCount(HC_KEY key,
HShellEdge const & Edge);
482 virtual int DecrEdgeHighlightCount(HC_KEY key,
HShellEdge const & Edge);
486 virtual void HighlightEdges();
490 virtual void UnHighlightEdges();
494 virtual void HighlightFaces();
498 virtual void UnHighlightFaces();
505 #define HSUBENTITY_FACES 0x01
506 #define HSUBENTITY_VERTICES 0x02
507 #define HSUBENTITY_EDGES 0x04
546 int face_count,
const int faces[],
int vertex_count,
int const vertex1[],
int const vertex2[],
547 bool highlight_faces =
true,
bool highlight_vertices =
true,
bool highlight_edges =
true,
bool maintain_maps =
false);
553 virtual const char *
GetName()
const {
return "HSubentitySelItem"; };
584 bool IsEmpty() {
return !m_vertex_count && !m_face_count; }
591 int GetFaceCount()
const {
return m_face_count; }
593 void GetFaces(
int faces[]);
595 int GetVertexCount()
const {
return m_vertex_count; }
597 void GetVertices(
int vertex1[],
int vertex2[]);
599 bool MaintainMaps() {
return m_maintain_maps; }
601 void MaintainMaps(
bool maintain_maps) { m_maintain_maps=maintain_maps; }
603 void GetMapCounts(
int * face_map_count,
int * vertex_map_count);
605 void GetMaps(
int face_map[],
int vertex_map[]);
611 bool is_ooc, HC_KEY key,
HSelectionSet * selection_set,
int incl_count, HC_KEY incl_keys[],
612 int face_count,
const int faces[],
int vertex_count,
int const vertex1[],
int const vertex2[],
613 bool highlight_faces =
true,
bool highlight_vertices =
true,
bool highlight_edges =
true,
bool maintain_maps =
false);
622 bool m_maintain_maps;
623 int m_vertex_map_count;
625 int m_face_map_count;
627 int m_subentity_highlight;
653 virtual const char *
GetName()
const {
return "HOldSelItem"; };
726 char * m_pSelectionPath;
730 void HoopsRemove( HC_KEY key );
731 void DeselectSegment( HC_KEY key,
char const *keytype );
732 void DeselectGeometry( HC_KEY key );
The HShellObject class is a simple wrapper for a shell.
Definition: HUtility.h:198
float m_TimeStamp
Time the item was created. Used for sorting the selection list.
Definition: HSelectionItem.h:176
Definition: HSelectionItem.h:522
virtual const HC_KEY * GetFullPathKeys(HBaseView *view)
virtual const char * GetName() const
Definition: HSelectionItem.h:448
bool IsEmpty()
Definition: HSelectionItem.h:584
virtual bool UnHighlight()
virtual const HC_KEY *const GetIncludeKeys() const
Definition: HSelectionItem.h:700
int m_FullPathCount
The length of the m_FullPath array of keys including the selection item and view key.
Definition: HSelectionItem.h:174
virtual const int GetHighlightMode()
Definition: HSelectionItem.h:343
virtual int GetIncludeCount() const
Definition: HSelectionItem.h:695
virtual bool Equals(const HSelectionItem *i2) const
virtual const char * GetName() const
Definition: HSelectionItem.h:216
virtual const HC_KEY *const GetIncludeKeys() const =0
The HSubentitySelItem - subentity selection item which can handle instancing.
Definition: HSelectionItem.h:517
The HPixelRGBA class is the data type of a rgba pixel.
Definition: HGlobals.h:509
The HShellRegion class is a simple wrapper for a shell's region.
Definition: HUtility.h:164
The HSelectionSet class manages a list of selected items.
Definition: HSelectionSet.h:66
HSelectionHighlightMode
Definition: HGlobals.h:547
The HSmartSelItem - selection item which can handle instancing.
Definition: HSelectionItem.h:187
virtual bool IsInstanced() const
Definition: HSelectionItem.h:691
virtual bool IsHighlighted() const =0
virtual bool Highlight()=0
virtual void GetIncludeKeys(HC_KEY[]) const
Definition: HSelectionItem.h:702
virtual bool QueryIncludeDependency(HC_KEY include_key, HC_KEY &ret_dependent_key)=0
virtual bool IsInstanced() const =0
virtual const char * GetName() const
Definition: HSelectionItem.h:653
float GetTimeStamp()
Definition: HSelectionItem.h:166
virtual void SetHighlightMode(HSelectionHighlightMode m)
Definition: HSelectionItem.h:349
virtual const HC_KEY *const GetIncludeKeys() const
Definition: HSelectionItem.h:225
virtual HC_KEY GetKey() const
Definition: HSelectionItem.h:56
virtual bool UnHighlight()=0
virtual int const GetRegion() const
Definition: HSelectionItem.h:452
The HBaseView class defines and manages a view of model information.
Definition: HBaseView.h:332
The HSelectionItem class is an interface definition for a selection item.
Definition: HSelectionItem.h:40
HSelectionSet * m_pSelectionSet
The selection set which owns this selection item.
Definition: HSelectionItem.h:171
HSelectionHighlightMode m_HighlightMode
Stores the current highlighting mode.
Definition: HSelectionSet.h:95
virtual int GetIncludeCount() const
Definition: HSelectionItem.h:221
virtual const char * GetName() const
Definition: HSelectionItem.h:51
The HRegionSelItem - region selection item which can handle instancing.
Definition: HSelectionItem.h:429
The HShellEdge class is a simple wrapper for a shell's edge.
Definition: HUtility.h:84
The HOldSelItem class implements selection using the old style highlighting which does not handle inc...
Definition: HSelectionItem.h:640
virtual bool UpdateIncludeDependency(HC_KEY include_key, HC_KEY dependent_key, HC_KEY replacement_key)=0
HC_KEY m_key
The HOOPS key to the selection element.
Definition: HSelectionItem.h:170
void SetTimeStamp(float now)
Definition: HSelectionItem.h:160
virtual const char * GetName() const
Definition: HSelectionItem.h:553
virtual bool Equals(const HSelectionItem *i2) const
HC_KEY * m_FullPath
The include path plus the selection item and view key. If the object is not a HSmartSelItem, the path may be incomplete.
Definition: HSelectionItem.h:173