Seg3D  2.4
Seg3D is a free volume segmentation and processing tool developed by the NIH Center for Integrative Biomedical Computing at the University of Utah Scientific Computing and Imaging (SCI) Institute.
All Classes Namespaces Functions Variables Typedefs Enumerator Friends
Public Types | Public Member Functions | List of all members
Core::DataVolumeSlice Class Reference
Inheritance diagram for Core::DataVolumeSlice:
Core::VolumeSlice Core::ConnectionHandler Core::RecursiveLockable

Public Types

typedef unsigned short texture_data_type
 
- Public Types inherited from Core::RecursiveLockable
typedef boost::recursive_mutex mutex_type
 
typedef boost::unique_lock< mutex_type > lock_type
 

Public Member Functions

 DataVolumeSlice (const DataVolumeHandle &data_volume, VolumeSliceType type=VolumeSliceType::AXIAL_E, size_t slice_num=0)
 
 DataVolumeSlice (const DataVolumeSlice &copy)
 
double get_data_at (size_t i, size_t j) const
 
void set_data_at (size_t i, size_t j, double value)
 
virtual void upload_texture ()
 
virtual VolumeSliceHandle clone ()
 Make a copy of the slice, which will share texture object with the original one.
 
virtual void set_volume (const VolumeHandle &volume)
 Set the volume out of which the slice will be taken.
 
void create_threshold_mask (std::vector< unsigned char > &mask, double min_val, double max_val, bool negative_constraint) const
 
- Public Member Functions inherited from Core::VolumeSlice
bool is_valid () const
 Returns true if the underlying volume is valid and the slice is not out of boundary.
 
VolumeHandle get_volume () const
 
VolumeType volume_type () const
 
void set_slice_type (VolumeSliceType type)
 
VolumeSliceType get_slice_type () const
 
void set_slice_number (size_t slice_num)
 
size_t get_slice_number () const
 
void to_index (size_t i, size_t j, Point &index) const
 Get the index of the point in the volume.
 
size_t to_index (size_t i, size_t j) const
 Returns the linear index of the point in the volume.
 
void world_to_index (double i_pos, double j_pos, int &i, int &j) const
 
void index_to_world (int i, int j, double &world_i, double &world_j) const
 
void get_world_coord (double i_pos, double j_pos, Point &world_coord) const
 Get the 3D world coordinate of the point.
 
void project_onto_slice (const Point &pt, double &i_pos, double &j_pos) const
 Project a point in 3D space onto the plane of the slice.
 
void project_onto_slice (const Point &pt, double &i_pos, double &j_pos, double &depth) const
 Project a point in 3D space onto the plane of the slice. Return depth by reference.
 
int get_closest_slice (const Point &pt) const
 Return the slice number that's closest to the point in 3D space.
 
void move_slice_to (const Point &pos, bool fail_safe=false)
 
void move_slice_to (double depth, bool fail_safe=false)
 
size_t nx () const
 
size_t ny () const
 
size_t number_of_slices () const
 
bool out_of_boundary () const
 
double left () const
 
double right () const
 
double bottom () const
 
double top () const
 
double depth () const
 
const Pointbottom_left () const
 
const Pointbottom_right () const
 
const Pointtop_left () const
 
const Pointtop_right () const
 
void handle_volume_updated ()
 
Point apply_grid_transform (const Point &pt) const
 
Point apply_inverse_grid_transform (const Point &pt) const
 
virtual void initialize_texture ()
 
Texture2DHandle get_texture ()
 
- Public Member Functions inherited from Core::RecursiveLockable
mutex_type & get_mutex () const
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::VolumeSlice
static void ProjectOntoSlice (VolumeSliceType slice_type, const Point &pt, double &i_pos, double &j_pos)
 
static void ProjectOntoSlice (VolumeSliceType slice_type, const Point &pt, double &i_pos, double &j_pos, double &depth)
 
- Protected Types inherited from Core::RecursiveLockable
typedef boost::recursive_mutex mutex_type
 
typedef boost::unique_lock< mutex_type > lock_type
 
- Protected Member Functions inherited from Core::VolumeSlice
 VolumeSlice (const VolumeHandle &volume, VolumeSliceType type, size_t slice_num)
 
 VolumeSlice (const VolumeSlice &copy)
 
bool get_slice_changed ()
 
void set_slice_changed (bool)
 
bool get_size_changed ()
 
void set_size_changed (bool)
 
- Protected Member Functions inherited from Core::ConnectionHandler
void add_connection (const boost::signals2::connection &connection)
 
void add_connection (const ConnectionHandlerConnectionHandle &connection)
 
void disconnect_all ()
 
- Protected Member Functions inherited from Core::RecursiveLockable
mutex_type & get_mutex () const
 

Member Function Documentation

void Core::DataVolumeSlice::create_threshold_mask ( std::vector< unsigned char > &  mask,
double  min_val,
double  max_val,
bool  negative_constraint 
) const

Create a threshold mask based on the data of current slice and the give min/max values. The mask will be inverted if negative_constraint is true.

void Core::DataVolumeSlice::upload_texture ( )
virtual

Upload the data slice to graphics texture. NOTE: This function allocates resources on the GPU, so the caller should acquire a lock on the RenderResources before calling this function.

Implements Core::VolumeSlice.


The documentation for this class was generated from the following files: