HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SIM_RelationshipArray.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  */
7 
8 #ifndef __SIM_RelationshipArray_h__
9 #define __SIM_RelationshipArray_h__
10 
11 #include "SIM_API.h"
12 #include "SIM_PtrArraySorted.h"
13 #include "SIM_Data.h"
14 
15 class UT_String;
16 class SIM_Relationship;
17 
18 /// Holds pointers to a number of SIM_Relationships.
20  public SIM_PtrArraySorted<SIM_Relationship *>
21 {
22 public:
24  ~SIM_RelationshipArray() override;
25 
26  /// Change the supplied name to make it different from any other
27  /// relationship in this array.
28  void forceUniqueRelationshipName(UT_String &name) const;
29 
30  /// Find the relationship with the specified name.
31  SIM_Relationship *findRelationshipByName(const char *name) const;
32 
33  /// Find the position of the relationship with the specified name.
34  int findRelationshipPosByName(const char *name) const;
35 
36  /// Get all relationships of a particular type. Note that the filter
37  /// is applied to the SIM_RelationshipData subdata of the
38  /// SIM_Relationship, not to the SIM_Relationship itself.
39  void filter(const SIM_DataFilter &filter,
40  SIM_DataArray &rels) const;
41 
42  /// Get const pointers to all relationships of a particular type.
43  /// As with filter(), the SIM_DataFilter is applied to the
44  /// SIM_RelationshipData subdata, not the SIM_Relationship itself.
45  void filterConst(const SIM_DataFilter &filter,
46  SIM_ConstDataArray &rels) const;
47 
48  /// Function for sorting pointers according to the relationship name.
49  static int compareRelationshipNames(SIM_Relationship * const*,
50  SIM_Relationship * const*);
51 };
52 
53 #endif
54 
Holds pointers to a number of SIM_Relationships.
GLuint const GLchar * name
Definition: glcorearb.h:786
#define SIM_API
Definition: SIM_API.h:12
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glcorearb.h:1297