34 #ifndef ANA_VOLUME_VOLUME_H 
   35 #define ANA_VOLUME_VOLUME_H 
   67     AVolume( 
const std::string & filename = 
"" );
 
   73     float MinT()
 const { 
return 0.0; }
 
   74     float MaxT()
 const { 
return float(_volume->getSizeT()-1); }
 
   77                                 std::vector<float> & bmax ) 
const;
 
   79                               std::vector<float> & bmax ) 
const;
 
   87     T & 
operator () ( 
size_t x=0, 
size_t y=0, 
size_t z=0, 
size_t t=0 )
 
   88     { 
return (*_volume)( x, y , z ,t ); }
 
   91     { 
return (*_volume)( x, y , z ,t ); }
 
   96                                   unsigned tex = 0 ) 
const;
 
  109     virtual AObject* 
objectAt( 
const std::vector<float> & pos, 
float tol = 0 );
 
  114     virtual std::vector<float>
 
  121     virtual bool savable()
 const { 
return( 
true ); }
 
  122     virtual bool reload( 
const std::string & filename );
 
  123     virtual bool save( 
const std::string & filename );
 
  134                       const std::vector<float> & time,
 
  139                       const std::vector<float> & time ) 
const;
 
  142                         const std::vector<float> & time ) 
const;
 
  145                          const std::vector<float> & time ) 
const;
 
Base Anatomist object (abstract)
VolumeBase object : use for generic dynamic_cast of all AVolume<T>, thus the visitor design pattern c...
virtual void setShaderParameters(const Shader &shader, const ViewState &state) const
virtual float mixedTexValue(const std::vector< float > &pos) const
Same as above except that coordinates are not transformed but taken in object coordinates system.
bool textured2D() const
true if 2D rendering uses a textured plane (not a full openGL object)
bool Is3DObject()
Can be display in 3D windows.
const carto::rc_ptr< carto::Volume< T > > volume() const
virtual unsigned dimTexture() const
Number of texture values for a point.
bool Is2DObject()
Can be display in 2D windows.
void updateSagittal(AImage *ximage, const Point3df &p0, const std::vector< float > &time) const
Optimized texture filling routine (no transformation)
virtual bool isTransparent() const
float GetValue(Point3df pos, float time, Referential *winref, Geometry *wingeom)
Retourne la valeur d'un voxel du volume.
AVolume(carto::rc_ptr< carto::Volume< T > >)
void adjustPalette()
Creates or updates object palette according to object values (if needed)
float MaxT() const
Obsolete, deprecated.
virtual void setInternalsChanged()
Notifies some underlying lower-level objects have changed.
virtual void setVolume(carto::rc_ptr< carto::Volume< T > > vol)
virtual std::vector< float > texValues(const std::vector< float > &pos) const
virtual bool hasTexture() const
Textured objects have values associated with a geometric coordinate.
void updateSlice(AImage &image, const Point3df &p0, const std::vector< float > &time, const Transformation *tra, const Point3df &inc, const Point3df &offset, const Geometry *wingeom) const
Generic texture filling routine for any transformation.
virtual std::string objectFullTypeName(void) const
Get Object Full Type Name.
carto::rc_ptr< carto::Volume< T > > volume()
virtual bool reload(const std::string &filename)
Re-reads objects from disk.
void updateAxial(AImage *ximage, const Point3df &p0, const std::vector< float > &time) const
Optimized texture filling routine (no transformation)
virtual bool printTalairachCoord(const Point3df &pos, const Referential *) const
should be replaced by a real referential
virtual bool boundingBox2D(std::vector< float > &bmin, std::vector< float > &bmax) const
Bounding box in 2D views mode.
float MinT() const
Obsolete, deprecated.
AVolume(const std::string &filename="")
T & operator()(size_t x=0, size_t y=0, size_t z=0, size_t t=0)
virtual carto::GenericObject * attributed()
void SetExtrema()
Scans the object internals and determines its (texture) extrema values.
virtual AObject * objectAt(const std::vector< float > &pos, float tol=0)
Not selectable: always returns Null.
virtual bool savable() const
virtual std::vector< float > voxelSize() const
Returns at least 4 sizes. For 3D objects, returns (1, 1, 1, 1)
void updateCoronal(AImage *ximage, const Point3df &p0, const std::vector< float > &time) const
Optimized texture filling routine (no transformation)
virtual bool update2DTexture(AImage &, const Point3df &posbase, const SliceViewState &, unsigned tex=0) const
new API
virtual AObject * clone(bool shallow=true)
Makes a copy of the object, with a duplicated object structure, palette and material,...
virtual bool loadable() const
virtual void setVoxelSize(const std::vector< float > &vs)
virtual bool save(const std::string &filename)
virtual const carto::GenericObject * attributed() const
virtual bool boundingBox(std::vector< float > &bmin, std::vector< float > &bmax) const
Fills bmin and bmax with the N-D bounding box extrema in the object's referential coordinates.
Attributed objects wrapper.
Referential: marker for transformations, with an associated color.
AObject-inherited version of Sliceable.
Specialization for a sliceable object.
ViewState holds information about how a view wants to see an object.