HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GR_PickSelection.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: GR_PickSelection (C++)
7  *
8  * COMMENTS:
9  * Defines and functions for converting pick data to GU selections.
10  *
11  */
12 
13 #ifndef __GR_PickSelection_h__
14 #define __GR_PickSelection_h__
15 
16 #include "GR_API.h"
17 #include "GR_PickRecord.h"
18 #include <GU/GU_SelectType.h>
19 #include <GA/GA_Types.h>
20 #include <UT/UT_IntArray.h>
21 
22 class GU_Selection;
23 class GU_SelectResult;
24 class GU_Detail;
25 class UT_BitArray;
26 
28 {
29 public:
30  static int pickMaskForSelType(GA_GroupType stype);
31  static int select(GU_Detail &gdp,
32  GU_SelectionHandle selection,
33  const UT_Array<GR_PickRecord> &pick_records,
34  GU_SelectResult &added,
36  unsigned *pickid = NULL,
37  const UT_IntArray *prfx = NULL);
38  static int selectEntireGeometry(
39  const GU_Detail &gdp,
40  GU_SelectionHandle selection,
41  const UT_Array<GR_PickRecord> &pick_records,
42  GU_SelectResult &added,
43  GU_SelectionRule rule,
44  const UT_IntArray *prfx);
45  static bool selectWouldAddComponent(
46  const GU_Detail &gdp,
47  GU_SelectionHandle selection,
48  const UT_Array<GR_PickRecord> &pick_records,
49  GU_SelectionRule rule,
50  const UT_IntArray *prfx);
51  static bool selectWithinSelection(
52  const GU_Detail &gdp,
53  GU_SelectionHandle selection,
54  GU_SelectResult &result,
55  const GR_PickRecord &pick_record,
56  const UT_IntArray *prfx);
57  static GA_Index getPickedPrimitiveId(const GU_Detail &gdp,
58  const GR_PickRecord &pick);
59  static void expandPickForPrimitive(const GU_Detail &gdp,
60  const GA_Index pidx,
61  const GR_PickRecord &pick,
62  UT_Array<GR_PickRecord> &pick_records,
63  UT_BitArray &duplicate_checker);
64 
65 private:
66  static GA_GroupType selTypeForPickType(int pick_type);
67 };
68 
69 #endif
70 
GU_SelectionRule
Definition: GU_SelectType.h:40
#define GR_API
Definition: GR_API.h:10
GA_Size GA_Index
Define the strictness of GA_Offset/GA_Index.
Definition: GA_Types.h:611
GA_GroupType
An ordinal enum for the different types of groups in GA.
Definition: GA_Types.h:138