180 SoLDMVirtualTexture* texID;
201 virtual bool affectsPath()
const;
203 static void initClass();
204 static void exitClass();
207 void addSlice( SoLDMVirtualTexture* vt,
int numVertices,
SbVec3f* vertices,
const SoVolumeRender* vr );
208 VGState getVGState()
const {
return m_vgState; };
211 int getEdgeDetectFragDataId()
const;
214 const VGSlice* getVgSlice(
const size_t index );
215 const VGSlice* getCurrentVgSlice();
229 typedef std::map<const SoVolumeRender*, VRInfo> VRInfoMap;
231 SoVolumeOffscreenImpl* m_volumeOffscreenImpl;
234 SoVRImageSpaceEffects* m_imageSpaceEffects;
239 static void clearVRInfoStruct(
const VRInfoMap::value_type& p);
244 SoRef<SoFaceSet> buildFaceSet(
const std::vector<int>& numVertices,
const std::vector<SbVec3f>& vertices );
247 VRInfoMap m_vrInfoMap;
252 std::vector<VGSlice*> m_slices;
253 size_t m_currentSlice;
261 SbMatrix m_currentMatrix, m_currentMatrixInv;
268 void renderSlices(
SoState *state);
269 static bool compareSlice(
const VGSlice *s1,
const VGSlice *s2);
283 void setVGSlice(VGSlice* slice,
float distance, SoLDMVirtualTexture* vt,
int numVertices,
SbVec3f vertices[],
const SoVolumeRender* vr);
301 bool needRttColor(
SoState* state)
const;
305 bool needRttEdgeDetect(
SoState* state)
const;
309 int getEdgeDetect2DMethod(
SoState* state)
const;
312 int getLowResolutionScale(
SoState* state)
const;
315 void updateVRQ(
int bitmask, std::vector<int>& bitMaskVector);
318 void restoreVRQ(
const std::vector<int>& bitMaskVector);