140  virtual void commonInit();
 
  159  virtual SoElement* copyMatchInfo() 
const = 0;
 
  164  SoElement* getNextInStack()
 const { 
return nextInStack; }
 
  167  typedef uint16_t SoElementKeyType;
 
  169  static SoElementKeyType createElementKey();
 
  174  virtual SoElementKeyType getElementKey()
 const 
  176    return badElementKey();
 
  182  static SoElementKeyType badElementKey();
 
  185  static void initElements();
 
  186  static void exitElements();
 
  189  inline bool isTrackingSetterGetterNodes()
 const 
  191    return m_trackSetterGetterNodes;
 
  194  virtual int getClassStackIndexInternal() 
const = 0;
 
  197  static void initClass();
 
  198  static void exitClass();
 
  201  static int maxElementKey() { 
return s_nextElementKey; }
 
  204  static int getNumStackIndices();
 
  207  static SoType getIdFromStackIndex(
int stackIndex);
 
  210  inline int getStackIndex()
 const   { 
return stackIndex; }
 
  213  void setStackIndex(
int index)        { stackIndex = index; }
 
  216  void setDepth(
int dpth)              { depth = dpth; }
 
  217  void setNext(
SoElement *nxt)         { next = nxt; }
 
  218  void setNextInStack(
SoElement *nxt)  { nextInStack = nxt; }
 
  219  void setNextFree(
SoElement *nxt)     { nextFree = nxt; }
 
  222  int getDepth()
 const               { 
return depth; }
 
  223  SoElement* getNext()
  const        { 
return next; }
 
  241  static const T* getConstElement(
SoState *state)
 
  243    return static_cast<const T*
>(getConstElement(state, T::getClassTypeId(), T::getClassStackIndex()));
 
  248  void setPopPriority(
unsigned short priority) {m_popPriority = priority ;}
 
  249  unsigned short getPopPriority()
 const { 
return m_popPriority ; }
 
  257  virtual void dyingReference() {} ;
 
  264  inline SoType getInstanceTypeId()
 const 
  297  static T* getElement(
SoState *state)
 
  299    return static_cast<T*
>(getElement(state, T::getClassTypeId(), T::getClassStackIndex()));
 
  311  void capture(
SoState *state)
 const 
  313    if ( state->isCacheOpen() )
 
  319  virtual void captureThis(
SoState *state) 
const;
 
  322  void setTypeId(
SoType id) { typeId = id; }
 
  326  SoElement* getNextFree()
 const { 
return nextFree; }
 
  328  inline void setPopped(
SbBool flag) { m_popped = (flag == 
TRUE); }
 
  329  inline SbBool isPopped()
 const { 
return m_popped ; }
 
  352  static int createStackIndex(
const SoType& 
id);
 
  355  inline void trackSetterGetterNodes(
bool flag)
 
  357    m_trackSetterGetterNodes = flag;
 
  382  static int         classStackIndex;  
 
  385  static int         nextStackIndex;  
 
  392  static SoType      classTypeId;     
 
  397  unsigned short    m_popPriority ; 
 
  404  bool m_trackSetterGetterNodes;
 
  407  friend class SoCache;
 
  408  friend class SoBoundingBoxCache;
 
  409  friend class inventor::impl::SoGLCacheListImpl;
 
  410  friend class SoGLViewingMatrixElement;
 
  413  static SoElementKeyType s_nextElementKey;