HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GA_RTINull.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  * NAME: GA_RTINull.h ( GA Library, C++)
7  *
8  * COMMENTS: This is like the "Python" range function. That is, the end is
9  * non-inclusive:
10  * GA_RTINull(list, 0, 3) = [0, 1, 2]
11  */
12 
13 #ifndef __GA_RTINull__
14 #define __GA_RTINull__
15 
16 #include "GA_API.h"
17 #include "GA_RangeTypeInterface.h"
18 #include "GA_Types.h"
19 
20 
21 class GA_IndexMap;
22 class GA_IteratorState;
23 class GA_Range;
24 
25 
27 {
28 public:
29  // Iterate over the entire range of the element list
30  GA_RTINull(GA_IndexMap &list);
31  GA_RTINull(const GA_IndexMap &list);
32 
33  // Copy c-tor
34  GA_RTINull(const GA_RTINull &src);
35 
36  ~GA_RTINull() override;
37 
38  /// @{
39  /// RangeTypeInterface implementation
40  GA_RangeTypeInterface *copy() const override;
41  bool isSplittable() const override { return true; }
42  bool isEmpty() const override { return true; }
43  GA_Size getMaxEntries() const override { return 0; }
44  GA_Size getEntries() const override { return 0; }
45  bool isEqual(const GA_RangeTypeInterface &src) const override;
46  void iterateCopy(GA_IteratorState &dest,
47  const GA_IteratorState &src) const override;
48  void iterateRewind(GA_IteratorState &state,
49  GA_Offset &start, GA_Offset &end) const override;
50  void iterateNext(GA_IteratorState &state,
51  GA_Offset &start, GA_Offset &end) const override;
52  bool isOrdered() const override { return true; }
53  bool areTraversalDeletionsSafe() const override { return true; }
54  bool split(GA_RangeTypeInterface *list[2]) const override;
55  GA_Size getPageCount() const override { return -1; }
56  bool getPageElementRange(GA_Range &, GA_Size, GA_Size) const override
60  /// @}
61 
62 private:
63 };
64 
65 #endif
A class to manage an ordered array which has fixed offset handles.
Definition: GA_IndexMap.h:63
virtual GA_RangeTypeInterface * copy() const =0
Method to create a copy of this selection.
bool isEmpty() const override
Definition: GA_RTINull.h:42
virtual void iterateCopy(GA_IteratorState &dest, const GA_IteratorState &src) const =0
Copy iterator state. The dest state will not have been constructed.
virtual bool split(GA_RangeTypeInterface *list[2]) const =0
GLuint start
Definition: glcorearb.h:475
bool isSplittable() const override
Definition: GA_RTINull.h:41
#define GA_API
Definition: GA_API.h:14
exint GA_Size
Defines the bit width for index and offset types in GA.
Definition: GA_Types.h:235
A range of elements in an index-map.
Definition: GA_Range.h:42
bool getPageElementRangeNonSplittable() const
Method which can be called for getPageElementRange()
GA_Size GA_Offset
Definition: GA_Types.h:641
GA_Offset getFirstOffsetInPageNonSplittable() const
Method which can be called for getFirstOffsetInPage()
GA_Size getPageCount() const override
Definition: GA_RTINull.h:55
GLuint GLuint end
Definition: glcorearb.h:475
bool areTraversalDeletionsSafe() const override
Definition: GA_RTINull.h:53
virtual void iterateRewind(GA_IteratorState &state, GA_Offset &start, GA_Offset &end) const =0
GA_Size getEntries() const override
Definition: GA_RTINull.h:44
bool getPageElementRange(GA_Range &, GA_Size, GA_Size) const override
Definition: GA_RTINull.h:56
bool isOrdered() const override
Definition: GA_RTINull.h:52
Abstract implementation of a range.
GA_Size getMaxEntries() const override
Definition: GA_RTINull.h:43
GA_Offset getFirstOffsetInPage(GA_Size) const override
Definition: GA_RTINull.h:58
virtual void iterateNext(GA_IteratorState &state, GA_Offset &start, GA_Offset &end) const =0
virtual bool isEqual(const GA_RangeTypeInterface &src) const =0
GLenum src
Definition: glcorearb.h:1793