00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 #include <Inventor/SbLinear.h>
00024 #include <Inventor/caches/SoCache.h>
00025 #include <Inventor/elements/SoTangentBindingElement.h>
00026
00033 {
00034 public:
00035 SoTangentCache( SoState* state );
00036
00037 virtual ~SoTangentCache();
00038
00043 void set( int numTangents, const SbVec3f* tangents, SoTangentBindingElement::Binding tangentBinding, int startIndex = 0 );
00044
00046 int getNum() const
00047 {
00048 return m_numTangents;
00049 }
00050
00056 const SbVec3f* getTangents() const
00057 {
00058 return m_tangents;
00059 }
00060
00062 SoTangentBindingElement::Binding getTangentBinding() const
00063 {
00064 return m_tangentBinding;
00065 }
00066
00068 int getStartIndex() const
00069 {
00070 return m_startIndex;
00071 }
00072
00073 private:
00074 inline uint32_t getTimeStamp()const
00075 {
00076 return m_timeStamp;
00077 }
00078
00079 inline void setTimeStamp( const uint32_t timestamp )
00080 {
00081 m_timeStamp = timestamp;
00082 }
00083
00084 private:
00085 int m_numTangents;
00086 const SbVec3f* m_tangents;
00087 int m_startIndex;
00088 SoTangentBindingElement::Binding m_tangentBinding;
00089 uint32_t m_timeStamp;
00090 };
00091