#include "vtkProperty.h"
#include "vtkLinearTransform.h"
+#include "vtkCleanPolyData.h"
#include "bbvtkPolyDataToActor.h"
#include "bbvtkPackage.h"
+#include "vtkRenderWindow.h"
+
namespace bbvtk
{
BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,PolyDataToActor)
colour.push_back(1.0);
colour.push_back(0.5);
bbSetInputColour(colour);
-
bbSetInputActive(true);
bbSetInputIn(NULL);
bbSetInputRenderer(NULL);
bbSetInputRepresentation(2);
bbSetInputLineWidth(1);
bbSetInputScalarVisibility(false);
-
polydatamapper = NULL;
vtkactor = NULL;
}
// polydatamapper->SetInput(marchingcubes->GetOutput());
vtkactor->SetMapper(polydatamapper);
- polydatamapper->ImmediateModeRenderingOn();
+// polydatamapper->ImmediateModeRenderingOn();
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
- void PolyDataToActor::DoProcess()
- {
+void PolyDataToActor::DoProcess()
+{
+printf("EED WARNNIN!!!!! PolyDataToActor::DoProcess For better transparent ... Clean this code in the correct part ..........\n");
+printf("EED WARNNIN!!!!! PolyDataToActor::DoProcess For better transparent ... Clean this code in the correct part ..........\n");
+printf("EED WARNNIN!!!!! PolyDataToActor::DoProcess For better transparent ... Clean this code in the correct part ..........\n");
+printf("EED WARNNIN!!!!! PolyDataToActor::DoProcess For better transparent ... Clean this code in the correct part ..........\n");
+printf("EED WARNNIN!!!!! PolyDataToActor::DoProcess For better transparent ... Clean this code in the correct part ..........\n");
+printf("EED WARNNIN!!!!! PolyDataToActor::DoProcess For better transparent ... Clean this code in the correct part ..........\n");
+printf("EED WARNNIN!!!!! PolyDataToActor::DoProcess For better transparent ... Clean this code in the correct part ..........\n");
+printf("EED WARNNIN!!!!! PolyDataToActor::DoProcess For better transparent ... Clean this code in the correct part ..........\n");
+//https://stackoverflow.com/questions/47528086/problems-with-rendering-transparent-objects-in-vtk
+//https://itk.org/Wiki/VTK/Depth_Peeling
+bbGetInputRenderer()->SetUseDepthPeeling(1);
+bbGetInputRenderer()->SetOcclusionRatio(0.1);
+bbGetInputRenderer()->SetMaximumNumberOfPeels(100);
+bbGetInputRenderer()->GetRenderWindow()->SetMultiSamples(0);
+bbGetInputRenderer()->GetRenderWindow()->SetAlphaBitPlanes(1);
+
+
+ if (bbGetInputRenderer()==NULL)
+ {
+ printf("EED Warnning! PolyDataToActor::DoProcess missing Renderer.\n");
+ }
+
if (bbGetInputActive()==true)
{
+
+
//EED 2017-01-01 Migration VTK7
#if VTK_MAJOR_VERSION <= 5
polydatamapper->SetInput( bbGetInputIn() );
#else
- polydatamapper->SetInputData( bbGetInputIn() );
+ polydatamapper->SetInputData( bbGetInputIn() );
#endif
vtkactor->GetProperty()->SetRepresentation( bbGetInputRepresentation() );
+
+ if (bbGetInputRepresentation()==0)
+ {
+ vtkactor->GetProperty()->SetAmbient(1);
+ vtkactor->GetProperty()->SetDiffuse(1);
+ vtkactor->GetProperty()->SetSpecular(0);
+printf("EED WARNNING! PolyDataToActor::DoProcess which is the default values of Ambient, Diffuse, Specular for points option? \n");
+ } else if (bbGetInputRepresentation()==1)
+ {
+ vtkactor->GetProperty()->SetAmbient(1);
+ vtkactor->GetProperty()->SetDiffuse(1);
+ vtkactor->GetProperty()->SetSpecular(0);
+ } else if (bbGetInputRepresentation()==2)
+ {
+ vtkactor->GetProperty()->SetAmbient(0);
+ vtkactor->GetProperty()->SetDiffuse(1);
+ vtkactor->GetProperty()->SetSpecular(0);
+ }
+
vtkactor->GetProperty()->SetLineWidth( bbGetInputLineWidth() );
vtkactor->GetProperty()->SetColor( bbGetInputColour()[0],
bbGetInputColour()[2] );
vtkactor->GetProperty()->SetOpacity( bbGetInputOpacity() );
+
if ( bbGetInputTransform()!=NULL )
{
bbGetInputRenderer()->RemoveActor( vtkactor );
} // actorAdded
} // Active
- }
+}