#include "vtkProperty.h"
#include "vtkLinearTransform.h"
#include "vtkCleanPolyData.h"
+#include "vtkFieldData.h"
#include "bbvtkPolyDataToActor.h"
#include "bbvtkPackage.h"
bbSetInputScalarVisibility(false);
polydatamapper = NULL;
vtkactor = NULL;
+
+ bbSetInputScalarVisibilityOn_LookupTable(NULL);
+ bbSetInputScalarVisibilityOn_NameColorArray("");
}
}
+
+
+/*
+
+-----------------------------------------------
+
+https://vtk.org/Wiki/VTK/Examples/Cxx/Visualization/ScalarBarActor
+https://vtk.org/Wiki/VTK/Examples/Cxx/VisualizationAlgorithms/TubesFromSplines
+https://vtk.org/Wiki/VTK/Examples/Cxx/Visualization/ElevationBandsWithGlyphs
+
+vtkSmartPointer<vtkFloatArray> scalars = vtkSmartPointer<vtkFloatArray>::New();
+ scalars set value ....
+poly->GetPointData()->SetScalars(scalars); or poly->GetPointData()->SetActiveScalars("<NameArray>");
+
+vtkSmartPointer<vtkLookupTable> hueLut = vtkSmartPoint | ^~
+er<vtkLookupTable>::New();
+ hueLut Build ....
+
+ mapper->SetInputData(poly);
+ mapper->ScalarVisibilityOn();
+ mapper->SetScalarModeToUsePointData(); Point of Cell ...
+
+ default: mapper->SetColorModeToDirectScalars() Busca scalars 3 componentes [R,G,B] float 0..1 or integer 0..255
+ else:
+ mapper->SetColorModeToMapScalars() El vector scalar solo tiene un componente
+ mapper->SetLookupTable( hueLut );
+
+ To change Array
+ mapper->SelectColorArray("<NameVector>");
+
+ mapper->SetUseLookupTableScalarRange( true/false ) true:Para compartir lookuptable con otros mappers
+ si false then
+ mapper->SetScalarRange( min, max); Range especifico este mapper
+ mapper->SetScalarRange( tubePolyData->GetScalarRange() );
+
+------------------------------------------
+
+ mapper->ScalarVisibilityOff(); -> SetScalarModeToDefault()
+ Utiliza el color del actor
+
+----------------------------------------
+
+*/
+
+
//---------------------------------------------------------------------
void PolyDataToActor::DoProcess()
if (bbGetInputScalarVisibility()==true )
{
- polydatamapper->ScalarVisibilityOn();
+ polydatamapper->ScalarVisibilityOn();
+ if (bbGetInputScalarVisibilityOn_LookupTable()!=NULL)
+ {
+// polydatamapper->SetScalarModeToDefault();
+// polydatamapper->SetScalarModeToUseCellData();
+// polydatamapper->SetScalarModeToUseCellFieldData();
+// polydatamapper->SetScalarModeToUseFieldData(); // 1/2 hausdorff->SetTargetDistanceMethodToPointToCell();
+// polydatamapper->SetScalarModeToUsePointData(); // *
+ polydatamapper->SetScalarModeToUsePointFieldData();
+
+ polydatamapper->SetColorModeToMapScalars();
+
+ polydatamapper->SetLookupTable( bbGetInputScalarVisibilityOn_LookupTable() );
+ if (bbGetInputScalarVisibilityOn_NameColorArray()!="")
+ {
+ polydatamapper->SelectColorArray( bbGetInputScalarVisibilityOn_NameColorArray().c_str() );
+// bbGetInputIn()->PrintSelf(std::cout, vtkIndent(2));
+ }
+
+ if (bbGetInputScalarVisibilityOn_ScalarRange().size()==2)
+ {
+ polydatamapper->SetScalarRange( bbGetInputScalarVisibilityOn_ScalarRange()[0] , bbGetInputScalarVisibilityOn_ScalarRange()[1] );
+ }
+
+ } // if ScalarVisibilityOn_LookupTable
} else {
polydatamapper->ScalarVisibilityOff();
} // ScalarVisibility
#include "vtkPolyDataMapper.h"
#include "vtkProp3D.h"
#include "vtkActor.h"
+#include "vtkScalarsToColors.h"
#include <vector>
#include "bbtkAtomicBlackBox.h"
BBTK_DECLARE_INPUT(Representation, int);
BBTK_DECLARE_INPUT(LineWidth, double);
BBTK_DECLARE_INPUT(ScalarVisibility, bool);
+ BBTK_DECLARE_INPUT(ScalarVisibilityOn_LookupTable, vtkScalarsToColors*);
+ BBTK_DECLARE_INPUT(ScalarVisibilityOn_NameColorArray, std::string);
+ BBTK_DECLARE_INPUT(ScalarVisibilityOn_ScalarRange, std::vector<double>);
+
BBTK_DECLARE_OUTPUT(Out,vtkProp3D *);
BBTK_PROCESS(DoProcess);
BBTK_INPUT(PolyDataToActor,Transform,"Linear Transform (4x4 homogeneous)",vtkLinearTransform*,"");
BBTK_INPUT(PolyDataToActor,Representation,"0 points,1 wireframe, 2(default) surface",int,"");
BBTK_INPUT(PolyDataToActor,LineWidth,"Width of the wireframe (1 default)",double,"");
- BBTK_INPUT(PolyDataToActor,ScalarVisibility,"Scalar Visibility (false default)",bool,"");
+ BBTK_INPUT(PolyDataToActor,ScalarVisibility,"(false default) a) ScalarVisibility:false use color actor. b) ScalarVisibility:true use PolyData->SetScalars [3-components-RGB] (float 0..1 or int 0..255). c) ScalarVisibility:true and SetLookupTable use PolyData->SetScalars [1-component] d) ScalarVisibility:true and SetLookupTable SelectColorArray(<NameArray>) use PolyData->SetScalars( scalar(<NameArray>) ). e) For c/d SetScalarRange just for the mapper. d) [-1,-1] take PolyData->GetScalarRange()",bool,"");
+
+ BBTK_INPUT(PolyDataToActor,ScalarVisibilityOn_LookupTable,"LookupTable (need ScalarVisibility true)",vtkScalarsToColors*,"");
+ BBTK_INPUT(PolyDataToActor,ScalarVisibilityOn_NameColorArray,"Name of the array in PolyData (need ScalarVisibility true)",std::string,"");
+ BBTK_INPUT(PolyDataToActor,ScalarVisibilityOn_ScalarRange,"[min,max] Make ScalarRange independent from LookupTable (need ScalarVisibility true)", std::vector<double> ,"");
+
BBTK_OUTPUT(PolyDataToActor,Out,"Extracted iso-surface",vtkProp3D *,"");
BBTK_END_DESCRIBE_BLACK_BOX(PolyDataToActor);