CMS 3D CMS Logo

Ig3DBaseRep.h

Go to the documentation of this file.
00001 #ifndef IGUANA_GL_MODELS_IG_3D_BASE_REP_H
00002 # define IGUANA_GL_MODELS_IG_3D_BASE_REP_H
00003 
00004 //<<<<<< INCLUDES                                                       >>>>>>
00005 
00006 # include "Iguana/GLModels/interface/config.h"
00007 # include "Iguana/Framework/interface/IgRep.h"
00008 # include <Inventor/nodes/SoSeparator.h>
00009 # include <vector>
00010 
00011 //<<<<<< PUBLIC DEFINES                                                 >>>>>>
00012 //<<<<<< PUBLIC CONSTANTS                                               >>>>>>
00013 //<<<<<< PUBLIC TYPES                                                   >>>>>>
00014 
00015 class Ig3DBaseModel;
00016 class SoGroup;
00017 
00018 //<<<<<< PUBLIC VARIABLES                                               >>>>>>
00019 //<<<<<< PUBLIC FUNCTIONS                                               >>>>>>
00020 //<<<<<< CLASS DECLARATIONS                                             >>>>>>
00021 
00022 // Never ever use the fact that I can be cast silently to the
00023 // SoSeparator base class!  Always use the methods here.
00024 
00025 class IGUANA_GL_MODELS_API Ig3DBaseRep : public SoSeparator, public IgRep
00026 {
00027 public:
00028     Ig3DBaseRep (Ig3DBaseModel *model, Ig3DBaseRep *parent, Ig3DBaseRep *prev, SoGroup *node);
00029     ~Ig3DBaseRep (void);
00030 
00031     virtual IgRepContext *      context (void) const;
00032     virtual IgModel *           model (void) const;
00033 
00034     virtual SoGroup *           magic (void) const;
00035     virtual SoGroup *           magic (SoGroup *node);
00036     virtual SoNode *            findMagic (SbName name) const;
00037 
00038     virtual SoGroup *           node (void) const;
00039     virtual SoGroup *           node (SoGroup *node);
00040 
00041     virtual int                 children (void) const;
00042     virtual Ig3DBaseRep *       child (int n) const;
00043     virtual Ig3DBaseRep *       child (SbString name) const;
00044 
00045     virtual void                clear (void);
00046 
00047     // FIXME: virtual void      pick (path, detail);
00048     // FIXME: remember last pick point/path detail?
00049 
00050     static Ig3DBaseRep *        asRep (SoNode *node);
00051 
00052 protected:
00053     virtual void                context (IgRepContext *context);
00054 
00055     virtual void                zap (bool search = false, bool kill = true);
00056 
00057 private:
00058     IgRepContext                *m_context;
00059     Ig3DBaseModel               *m_model;
00060 
00061     // undefined semantics
00062     Ig3DBaseRep (const Ig3DBaseRep &);
00063     Ig3DBaseRep &operator= (const Ig3DBaseRep &);
00064 };
00065 
00066 //<<<<<< INLINE PUBLIC FUNCTIONS                                        >>>>>>
00067 //<<<<<< INLINE MEMBER FUNCTIONS                                        >>>>>>
00068 
00069 #endif // IGUANA_GL_MODELS_IG_3D_BASE_REP_H

Generated on Tue Jun 9 17:38:41 2009 for CMSSW by  doxygen 1.5.4