ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SoDetectorTreeKit.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file SoDetectorTreeKit.h
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 //
28 /*-----------------------------HEPVis----------------------------------------*/
29 /* */
30 /* Node: SoDetectorTreeKit */
31 /* Description: Easy way of browsing through a tree of detectors */
32 /* Author: Joe Boudreau Nov 11 1996 */
33 /* */
34 /*---------------------------------------------------------------------------*/
35 #ifndef HEPVis_SoDetectorTreeKit_h
36 #define HEPVis_SoDetectorTreeKit_h
37 
38 // Inheritance :
39 #include <Inventor/nodekits/SoBaseKit.h>
40 
41 class SoEventCallback;
42 class SoSeparator;
43 
44 #define SoDetectorTreeKit Geant4_SoDetectorTreeKit
45 
46 
47 class SoDetectorTreeKit:public SoBaseKit {
48 
49  // The following is required:
52 public:
53  SoSFNode alternateRep; //public in order to query if alternateRep done.
54 private:
56  SO_KIT_CATALOG_ENTRY_HEADER(callbackList);
57  SO_KIT_CATALOG_ENTRY_HEADER(topSeparator);
58  SO_KIT_CATALOG_ENTRY_HEADER(pickStyle);
59  SO_KIT_CATALOG_ENTRY_HEADER(appearance);
62  SO_KIT_CATALOG_ENTRY_HEADER(texture2Transform);
63  SO_KIT_CATALOG_ENTRY_HEADER(childList);
64  SO_KIT_CATALOG_ENTRY_HEADER(previewSeparator);
65  SO_KIT_CATALOG_ENTRY_HEADER(fullSeparator);
66 
67 
68 public:
69 
70  // Constructor, required
72 
73  // This is required
74  virtual SbBool affectsState() const;
75 
76  // Class Initializer, required
77  static void initClass();
78 
79  // Turn the preview on or off
80  virtual void setPreview(SbBool Flag);
81 
82  // Return the preview state
83  virtual SbBool getPreview() const;
84 
85  // Set SoSwitch::whichChild = SO_SWITCH_ALL
86  void setPreviewAndFull();
87 
88  // Return the preview Separator
89  virtual SoSeparator *getPreviewSeparator() const;
90 
91  // Return the full Separator
92  virtual SoSeparator *getFullSeparator() const;
93 
94  // Generate AlternateRep, required. Generating an alternate representation
95  // must be done upon users request. It allows an Inventor program to read
96  // back the file without requiring *this* code to be dynamically linked.
97  // If the users expects that *this* code will be dynamically linked, he
98  // need not invoke this method.
99  virtual void generateAlternateRep();
100 
101  // We better be able to clear it, too!
102  virtual void clearAlternateRep();
103 
104 protected:
105 
106  // Destructor.
107  virtual ~SoDetectorTreeKit();
108 
109  virtual void doAction(SoAction*);
110 private:
111 
112  // This is needed as well
113  void createInitialTree();
114 
115  // This is the callback function that will be
116  // added to the callback list
117  static void expand (void *userData, SoEventCallback *eventCB);
118  static void contract (void *userData, SoEventCallback *eventCB);
119 };
120 
121 #endif