34 #ifndef ANATOMIST_MODULE_SURFPAINTTOOLS_H 35 #define ANATOMIST_MODULE_SURFPAINTTOOLS_H 72 bool initSurfPaintModule(
AWindow3D *w3 );
74 void removeToolBarControls(
AWindow3D *w3 );
75 void addToolBarInfosTexture(
AWindow3D *w3 );
76 void removeToolBarInfosTexture(
AWindow3D *w3 );
79 void setPolygon(
int p) { IDPolygonSpinBox->setValue(p); }
80 void setMaxPoly(
int max) { IDPolygonSpinBox->setRange(-1,max); }
81 void setVertex(
int v) { IDVertexSpinBox->setValue(v); }
85 { textureFloatSpinBox->setRange( min, max ); }
87 {
return textureFloatSpinBox->value(); }
89 { textureFloatSpinBox->setValue(v); }
90 void updateTextureValue(
int indexVertex,
float value );
91 void updateTexture ( std::vector<float> values );
92 void restoreTextureValue(
int indexVertex );
93 void floodFillStart(
int indexVertex );
95 void fastFillMove(
int indexVertex,
float newTextureValue,
96 float oldTextureValue );
99 return !listIndexVertexBrushPath.empty() || !listIndexVertexHolesPath.empty() || !holesObject.empty();
102 void fillHolesOnPath();
113 void addGeodesicPath(
int indexNearestVertex,
115 void undoGeodesicPath();
116 void redoGeodesicPath();
117 void undoHolesPaths();
118 void redoHolesPaths();
119 void undoSelectFill();
120 void redoSelectFill();
122 void computeDistanceMap(
int indexNearestVertex );
132 void newEditOperation();
133 void undoTextureOperation();
134 void redoTextureOperation();
135 bool isValid()
const;
140 void magicSelection();
160 void updateConstraintList();
161 void loadConstraintsList( std::vector<std::string> clist );
163 void changeToleranceSpinBox(
int v );
164 void changeConstraintPathSpinBox(
int v );
166 void changeMinValueSpinBox(
double v );
167 void changeMaxValueSpinBox(
double v );
170 void popAllButtonPaintToolBar();
171 void clearUndoneGeodesicPath();
172 void addSimpleShortPath(
int indexSource,
int indexDest );
173 void undoSimpleShortPath();
174 void redoSimpleShortPath();
175 void clearUndoneHolesPaths();
176 void clearUndoneSelectFill();
177 float currentTextureValue(
unsigned vertexIndex )
const;
178 void clearRedoBuffer();
193 QToolBar *tbTextureValue;
194 QDoubleSpinBox *textureFloatSpinBox;
200 QSpinBox *IDPolygonSpinBox;
201 QSpinBox *IDVertexSpinBox;
203 QToolBar *tbControls;
205 QToolButton *colorPickerAction;
206 QToolButton *selectionAction;
207 QToolButton *pathAction;
208 QAction *shortestPathAction;
209 QAction *sulciPathAction;
210 QAction *gyriPathAction;
212 QToolButton *paintBrushAction;
213 QToolButton *magicBrushAction;
215 QToolButton *distanceAction;
217 QToolButton *validateEditAction;
218 QToolButton *eraseAction;
219 QToolButton *clearPathAction;
220 QToolButton *saveAction;
222 QComboBox *constraintList;
224 QSpinBox *toleranceSpinBox;
225 QLabel *toleranceSpinBoxLabel;
226 QSpinBox *constraintPathSpinBox;
227 QLabel *constraintPathSpinBoxLabel;
229 QDoubleSpinBox *textureValueMinSpinBox;
230 QDoubleSpinBox *textureValueMaxSpinBox;
232 GLuint constraintPathValue;
233 GLuint toleranceValue;
234 float stepToleranceValue;
237 std::string shortestPathSelectedType;
239 aims::GeodesicPath *sp;
240 aims::GeodesicPath *sp_sulci;
241 aims::GeodesicPath *sp_gyri;
243 std::vector<std::set<uint> > neighbours;
246 std::vector<unsigned> listIndexVertexPathSP;
247 std::vector<unsigned> listIndexVertexSelectSP;
249 std::vector<unsigned> listIndexVertexBrushPath;
250 std::vector<unsigned> listIndexVertexHolesPath;
252 std::set<int> listIndexVertexFill;
254 std::vector<carto::rc_ptr<ATriangulated> > pathObject;
255 std::vector<carto::rc_ptr<ATriangulated> > fillObject;
256 std::vector<carto::rc_ptr<ATriangulated> > holesObject;
Base Anatomist object (abstract)
3D window, OpenGL rendering
High-level Texture object in Anatomist.
AIMSDATA_API TimeTexture< float > Texture1d