180 virtual bool affectsPath()
const;
182 static void initClass();
183 static void exitClass();
185 void addVolume(
SoState* state,
const SoVolumeRender* vr, SoLDMVirtualTexture* vt,
SbVec3f planeNormal,
int vpScale,
float sliceDensity);
187 VGState getVGState()
const {
return m_vgState; };
190 int getEdgeDetectFragDataId()
const;
196 typedef std::pair< unsigned int, SoRef<SoShape> > IdShapePair;
198 const std::vector<IdShapePair>& getInternalShapeListForThisVr(
const SoVolumeRender* vr)
const;
216 std::vector<SbVec3f> vertices;
225 SoLDMVirtualTexture* texID;
232 typedef std::map<const SoVolumeRender*, VRInfo> VRInfoMap;
233 typedef std::map< const SoVolumeRender*, std::vector< IdShapePair > > VRContinuousShapeMap;
235 std::map < const SoVolumeRender*, SoRef<SoVolumeRenderingQuality> > m_vrVrqMap;
237 VRContinuousShapeMap m_vrContinuousShapeMap;
239 SoVolumeOffscreenImpl* m_volumeOffscreenImpl;
242 SoVRImageSpaceEffects* m_imageSpaceEffects;
247 SoRef<SoShape> buildShapeSlices(
const SoVolumeRender* vr,
unsigned int orderedShapeId,
unsigned int id,
const std::vector<SbVec3f>& vertices);
250 VRInfoMap m_vrInfoMap;
255 std::vector<Slice*> m_slices;
258 void renderSlices(
SoState *state);
259 static bool compareSlice(
const Slice*s1,
const Slice*s2);
287 bool needRttEdgeDetect(
SoState* state)
const;
291 int getEdgeDetect2DMethod(
SoState* state)
const;
294 int getLowResolutionScale()
const;
297 void updateVRQ(
int bitmask, std::vector<int>& bitMaskVector);
300 void restoreVRQ(
const std::vector<int>& bitMaskVector);