16 #ifndef _vtkProteinRibbonFilter_h
17 #define _vtkProteinRibbonFilter_h
29 #include "vtkDomainsChemistryModule.h"
30 #include "vtkPolyDataAlgorithm.h"
39 :
public vtkPolyDataAlgorithm
43 void PrintSelf(ostream& os, vtkIndent indent);
49 vtkGetMacro(CoilWidth,
float);
50 vtkSetMacro(CoilWidth,
float);
55 vtkGetMacro(HelixWidth,
float);
56 vtkSetMacro(HelixWidth,
float);
61 vtkGetMacro(SubdivideFactor,
int);
62 vtkSetMacro(SubdivideFactor,
int);
68 vtkGetMacro(DrawSmallMoleculesAsSpheres,
bool);
69 vtkSetMacro(DrawSmallMoleculesAsSpheres,
bool);
74 vtkGetMacro(SphereResolution,
int);
75 vtkSetMacro(SphereResolution,
int);
80 ~vtkProteinRibbonFilter();
82 int FillInputPortInformation(
int, vtkInformation*);
84 int RequestData(vtkInformation *,
85 vtkInformationVector **,
86 vtkInformationVector *);
88 void CreateThinStrip(vtkPolyData* poly, vtkUnsignedCharArray *pointsColors,
89 vtkPoints* p, std::vector<std::pair<vtkVector3f,
bool> >& p1,
90 std::vector<std::pair<vtkVector3f,
bool> >& p2,
91 std::vector<vtkColor3ub> &colors);
93 void CreateAtomAsSphere(vtkPolyData* poly, vtkUnsignedCharArray *pointsColors,
94 double *pos, const vtkColor3ub& color,
float radius,
97 static std::vector<vtkVector3f>* Subdivide(std::vector<std::pair<vtkVector3f,
bool> >& p,
100 void SetColorByAtom(std::vector<vtkColor3ub>& colors, vtkStringArray* atomTypes);
102 void SetColorByStructure(std::vector<vtkColor3ub>& colors,
103 vtkStringArray* atomTypes, vtkUnsignedCharArray* ss,
104 const vtkColor3ub& helixColor,
105 const vtkColor3ub& sheetColor);
107 std::map<std::
string, vtkColor3ub> ElementColors;
111 int SphereResolution;
113 bool DrawSmallMoleculesAsSpheres;
116 vtkProteinRibbonFilter(const vtkProteinRibbonFilter&);
117 void operator=(const vtkProteinRibbonFilter&);
120 #endif // _vtkProteinRibbonFilter_h
generates protein ribbons