- Timestamp:
- Apr 28, 2013, 5:29:39 PM (11 years ago)
- Location:
- trunk/packages/vizservers/vtkvis
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/packages/vizservers/vtkvis/Molecule.cpp
r3621 r3641 181 181 vtkPolyData *pd = vtkPolyData::SafeDownCast(ds); 182 182 if (pd) { 183 TRACE("Verts: %d Lines: %d Polys: %d Strips: %d", 184 pd->GetNumberOfVerts(), 185 pd->GetNumberOfLines(), 186 pd->GetNumberOfPolys(), 187 pd->GetNumberOfStrips()); 183 TRACE("Points: %d Verts: %d Lines: %d Polys: %d Strips: %d", 184 pd->GetNumberOfPoints(), 185 pd->GetNumberOfVerts(), 186 pd->GetNumberOfLines(), 187 pd->GetNumberOfPolys(), 188 pd->GetNumberOfStrips()); 188 189 // DataSet is a vtkPolyData 189 190 if (pd->GetNumberOfLines() > 0) { … … 226 227 getAssembly()->AddPart(_bondProp); 227 228 } 228 if (pd->GetNumberOfVerts() > 0) { 229 vtkSmartPointer<vtkPointSetToLabelHierarchy> hier = vtkSmartPointer<vtkPointSetToLabelHierarchy>::New(); 229 if (pd->GetNumberOfPoints() > 0) { 230 if (_labelHierarchy == NULL) { 231 _labelHierarchy = vtkSmartPointer<vtkPointSetToLabelHierarchy>::New(); 232 } 230 233 #ifdef USE_VTK6 231 hier->SetInputData(pd);234 _labelHierarchy->SetInputData(pd); 232 235 #else 233 hier->SetInput(pd);236 _labelHierarchy->SetInput(pd); 234 237 #endif 235 hier->SetLabelArrayName("labels");236 hier->GetTextProperty()->SetColor(0, 0, 0);237 _labelMapper->SetInputConnection( hier->GetOutputPort());238 _labelHierarchy->SetLabelArrayName("_atom_labels"); 239 _labelHierarchy->GetTextProperty()->SetColor(0, 0, 0); 240 _labelMapper->SetInputConnection(_labelHierarchy->GetOutputPort()); 238 241 _labelProp->SetMapper(_labelMapper); 239 242 … … 588 591 } 589 592 593 void Molecule::setAtomLabelField(const char *fieldName) 594 { 595 if (_labelHierarchy != NULL) { 596 if (strcmp(fieldName, "default") == 0) { 597 _labelHierarchy->SetLabelArrayName("_atom_labels"); 598 } else { 599 _labelHierarchy->SetLabelArrayName(fieldName); 600 } 601 } 602 } 603 590 604 /** 591 605 * \brief Turn on/off rendering of atom labels … … 866 880 867 881 vtkSmartPointer<vtkStringArray> labelArray = vtkSmartPointer<vtkStringArray>::New(); 868 labelArray->SetName(" labels");882 labelArray->SetName("_atom_labels"); 869 883 vtkPolyData *pd = vtkPolyData::SafeDownCast(dataSet); 870 884 if (pd == NULL) { … … 872 886 return; 873 887 } 874 for (int i = 0; i < pd->GetNumberOf Verts(); i++) {888 for (int i = 0; i < pd->GetNumberOfPoints(); i++) { 875 889 char buf[32]; 876 890 if (elements != NULL) { … … 915 929 } 916 930 vtkSmartPointer<vtkFloatArray> radii = vtkSmartPointer<vtkFloatArray>::New(); 917 radii->SetName(" radius");931 radii->SetName("_radii"); 918 932 radii->SetNumberOfComponents(3); 919 933 vtkPolyData *pd = vtkPolyData::SafeDownCast(dataSet); … … 922 936 return; 923 937 } 924 for (int i = 0; i < pd->GetNumberOf Verts(); i++) {938 for (int i = 0; i < pd->GetNumberOfPoints(); i++) { 925 939 float tuple[3]; 926 940 tuple[1] = tuple[2] = 0; -
trunk/packages/vizservers/vtkvis/Molecule.h
r3621 r3641 19 19 #include <vtkCylinderSource.h> 20 20 #include <vtkLineSource.h> 21 #include <vtkPointSetToLabelHierarchy.h> 21 22 #include <vtkLabelPlacementMapper.h> 22 23 … … 117 118 void setAtomLabelVisibility(bool state); 118 119 120 void setAtomLabelField(const char *fieldName); 121 119 122 void setBondVisibility(bool state); 120 123 … … 160 163 vtkSmartPointer<vtkGlyph3DMapper> _atomMapper; 161 164 vtkSmartPointer<vtkGlyph3DMapper> _bondMapper; 165 vtkSmartPointer<vtkPointSetToLabelHierarchy> _labelHierarchy; 162 166 vtkSmartPointer<vtkLabelPlacementMapper> _labelMapper; 163 167 }; -
trunk/packages/vizservers/vtkvis/Renderer.h
r3621 r3641 703 703 void setMoleculeAtomVisibility(const DataSetId& id, bool state); 704 704 705 void setMoleculeAtomLabelField(const DataSetId& id, const char *fieldName); 706 705 707 void setMoleculeAtomLabelVisibility(const DataSetId& id, bool state); 706 708 -
trunk/packages/vizservers/vtkvis/RendererCmd.cpp
r3621 r3641 6598 6598 6599 6599 static int 6600 MoleculeAtomLabelFieldOp(ClientData clientData, Tcl_Interp *interp, int objc, 6601 Tcl_Obj *const *objv) 6602 { 6603 const char *fieldName = Tcl_GetString(objv[2]); 6604 if (objc == 4) { 6605 const char *name = Tcl_GetString(objv[3]); 6606 g_renderer->setMoleculeAtomLabelField(name, fieldName); 6607 } else { 6608 g_renderer->setMoleculeAtomLabelField("all", fieldName); 6609 } 6610 return TCL_OK; 6611 } 6612 6613 6614 static int 6600 6615 MoleculeAtomLabelVisibilityOp(ClientData clientData, Tcl_Interp *interp, int objc, 6601 6616 Tcl_Obj *const *objv) … … 7043 7058 {"edges", 1, MoleculeEdgeVisibilityOp, 3, 4, "bool ?dataSetName?"}, 7044 7059 {"labels", 2, MoleculeAtomLabelVisibilityOp, 3, 4, "bool ?dataSetName?"}, 7060 {"lfield", 2, MoleculeAtomLabelFieldOp, 3, 4, "fieldName ?dataSetName?"}, 7045 7061 {"lighting", 3, MoleculeLightingOp, 3, 4, "bool ?dataSetName?"}, 7046 7062 {"linecolor", 5, MoleculeLineColorOp, 5, 6, "r g b ?dataSetName?"}, -
trunk/packages/vizservers/vtkvis/RendererGraphicsObjs.cpp
r3621 r3641 1953 1953 } 1954 1954 1955 void Renderer::setMoleculeAtomLabelField(const DataSetId& id, const char *fieldName) 1956 { 1957 MoleculeHashmap::iterator itr; 1958 1959 bool doAll = false; 1960 1961 if (id.compare("all") == 0) { 1962 itr = _molecules.begin(); 1963 if (itr == _molecules.end()) 1964 return; 1965 doAll = true; 1966 } else { 1967 itr = _molecules.find(id); 1968 } 1969 if (itr == _molecules.end()) { 1970 ERROR("Molecule not found: %s", id.c_str()); 1971 return; 1972 } 1973 1974 do { 1975 itr->second->setAtomLabelField(fieldName); 1976 } while (doAll && ++itr != _molecules.end()); 1977 1978 _needsRedraw = true; 1979 } 1980 1955 1981 /** 1956 1982 * \brief Turn on/off rendering of the Molecule atom labels for the given DataSet -
trunk/packages/vizservers/vtkvis/protocol.txt
r3615 r3641 573 573 molecule edges <bool> <?datasetName?> 574 574 molecule labels <bool> <?datasetName?> 575 Toggle display of atom labels 576 molecule lfield <fieldName> <?datasetName?> 577 Set the field used for atom labels 575 578 molecule lighting <bool> <?datasetName?> 576 579 molecule linecolor <r> <g> <b> <?datasetName?>
Note: See TracChangeset
for help on using the changeset viewer.