MSGraph< T > Class Template Reference

#include <Gdata.h>

Inheritance diagram for MSGraph< T >:
Inheritance graph
[legend]
Collaboration diagram for MSGraph< T >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 MSGraph (int x, int y=1, int z=1, T v=(T) 0, T b=(T) 0, double rz=1.0)
 MSGraph (RBound< int > rb, T v=(T) 0, T b=(T) 0, double rz=1.0)
 MSGraph (void)
virtual ~MSGraph (void)
T & point (int x, int y=0, int z=0)
 座標(x,y,z)の画素値の参照
get_vPoint (double x, double y=0., double z=0., int mode=OFF)
void set_vPoint (double x, double y=0., double z=0., T cc=(T) 0, int mode=OFF)
void put_vPoint (double x, double y=0., double z=0., T cc=(T) 0, int mode=OFF)
void set (RBound< int > rb, T v=(T) 0, T b=(T) 0, double rz=1.0)
void set (int x, int y=1, int z=1, T v=(T) 0, T b=(T) 0, double rz=1.0)
void init (void)
 グラフィックデータは解放しない
bool isNull (void)
 グラフィックデータを持っていないか?
void fill (T v=(T) 0)
 全空間を画素値 v にする
void clear (T v)
 全空間を画素値 v にする
void clear (void)
 全空間を画素値 zero にする
void getm (int x, int y, int z=1, T v=(T) 0)
 グラフィックメモリを獲得する
void getm (T v=(T) 0)
 グラフィックメモリを獲得する
void free (void)
 グラフィックデータを開放する
void get_minmax (void)
 min, max を獲得
void set_array (T *ary, int sz=0)
 ary の内容を gpにコピー.
void contrast (T low, T high)
 コントラストの調整
template<typename R >
void mimicry (MSGraph< R > s)
template<typename R >
void dup (MSGraph< R > s)
void setWindow (double x1, double y1, double x2, double y2)
void setWindow3D (double x1, double y1, double z1, double x2, double y2, double z2)
void wMove (double x, double y, double z=0.0)
void wMove_rel (double x, double y, double z=0.0)
MSGraph< T > operator= (ExMSGraph< T > &s)

Public Attributes

int xs
 xサイズ. 4Byte.
int ys
 yサイズ. 4Byte.
int zs
 zサイズ. 4Byte. 2Dの場合は 1.
T * gp
 グラフィックデータへのポインタ.
zero
 画素値のゼロ位.
base
 画措置の底上げの値.
max
 画素値の最大値
min
 画素値の最小値
int color
 データのカラータイプ
int state
 エラー制御
RBound< int > rbound
 画像の境界情報
double RZxy
 Z軸の歪.Z軸の間隔を 1とした XY軸の間隔.(X or Y)/Z.
double norm
 規格化定数.フィルタのときに使用.
double wRateX
 ワールド座標系の x成分1ドットに対するスクリーン座標系のドット数.
double wRateY
 ワールド座標系の y成分1ドットに対するスクリーン座標系のドット数.
double wRateZ
 ワールド座標系の z成分1ドットに対するスクリーン座標系のドット数.
double wZeroX
 スクリーン座標系の原点に対するワールド座標系の x成分.
double wZeroY
 スクリーン座標系の原点に対するワールド座標系の y成分.
double wZeroZ
 スクリーン座標系の原点に対するワールド座標系の z成分.
double wNowX
 ペンの現地点の x成分(ワールド座標系)
double wNowY
 ペンの現地点の y成分(ワールド座標系)
double wNowZ
 ペンの現地点の z成分(ワールド座標系)

Detailed Description

template<typename T = sWord>
class jbxl::MSGraph< T >

template <typename t="uWord"> class MSGraph

シンプルグラフィックデータ.
メモリ中での画像データのデフォルト.

Attention:
ディストラクタはメモリを解放しないので,必ず手動で解放すること.

Definition at line 78 of file Gdata.h.


Constructor & Destructor Documentation

MSGraph ( int  x,
int  y = 1,
int  z = 1,
v = (T)0,
b = (T)0,
double  rz = 1.0 
) [inline]

Definition at line 111 of file Gdata.h.

00111 { set(x, y, z, v, b, rz);}

MSGraph ( RBound< int >  rb,
v = (T)0,
b = (T)0,
double  rz = 1.0 
) [inline]

Definition at line 112 of file Gdata.h.

00112 { set(rb, v, b, rz);}

MSGraph ( void   )  [inline]

Definition at line 113 of file Gdata.h.

References MSGraph< T >::init().

00113 { init();}

Here is the call graph for this function:

virtual ~MSGraph ( void   )  [inline, virtual]

Definition at line 115 of file Gdata.h.

00115 {}


Member Function Documentation

void clear ( void   )  [inline]

template <typename t>=""> void MSGraph<T>::clear(void)

全空間を画素値 zero にする

Definition at line 373 of file Gdata.h.

References MSGraph< T >::gp, MSGraph< T >::max, MSGraph< T >::min, MSGraph< T >::xs, MSGraph< T >::ys, MSGraph< T >::zero, and MSGraph< T >::zs.

00374 {       
00375     for (int i=0; i<xs*ys*zs; i++) gp[i] = zero; 
00376     min = max = zero;
00377     return;
00378 }

void clear ( v  )  [inline]

template <typename t>=""> void MSGraph<T>::clear(T v)

全空間を画素値 v にする.v を zeroにする.

Definition at line 359 of file Gdata.h.

References MSGraph< T >::gp, MSGraph< T >::max, MSGraph< T >::min, MSGraph< T >::xs, MSGraph< T >::ys, MSGraph< T >::zero, and MSGraph< T >::zs.

Referenced by jbxl::Density_Mask(), and jbxl::euclidDistance().

00360 {       
00361     for (int i=0; i<xs*ys*zs; i++) gp[i] = v;
00362     zero = min = max = v;
00363     return;
00364 }

Here is the caller graph for this function:

void contrast ( low,
high 
) [inline]

Definition at line 325 of file Gdata.h.

References MSGraph< T >::gp, MSGraph< T >::max, MSGraph< T >::min, MSGraph< T >::xs, MSGraph< T >::ys, and MSGraph< T >::zs.

00326 {
00327     if (max==min) return;
00328 
00329     T dif = (high-low)/(max-min);
00330 
00331     for (int i=0; i<xs*ys*zs; i++) {
00332         gp[i] = (gp[i]-min)*dif + low;
00333     }
00334 
00335     return;
00336 }

void dup ( MSGraph< R >  s  )  [inline]

Definition at line 147 of file Gdata.h.

References MSGraph< T >::getm(), MSGraph< T >::gp, MSGraph< T >::xs, MSGraph< T >::ys, and MSGraph< T >::zs.

00147                                                  {
00148         *this = s;
00149         getm();
00150         memcpy(gp, s.gp, xs*ys*zs*sizeof(T));
00151     };

Here is the call graph for this function:

void fill ( v = (T)0  )  [inline]

template <typename t>=""> void MSGraph<T>::fill(T v)

全空間を画素値 v にする

Definition at line 345 of file Gdata.h.

References MSGraph< T >::gp, MSGraph< T >::max, MSGraph< T >::min, MSGraph< T >::xs, MSGraph< T >::ys, and MSGraph< T >::zs.

00346 {       
00347     for (int i=0; i<xs*ys*zs; i++) gp[i] = v;
00348     min = max = v;
00349     return;
00350 }

void free ( void   )  [inline]

template <typename t>=""> void MSGraph<T>::free(void)

グラフィックデータを開放する

Reimplemented in ExMSGraph< T >.

Definition at line 387 of file Gdata.h.

References MSGraph< T >::gp, and MSGraph< T >::init().

Referenced by jbxl::cat_MSGraph(), jbxl::centerLine(), jbxl::copy_MSGraph(), jbxl::copyCmnHead2MSGraph(), jbxl::count_around_MSGraph(), jbxl::count_object_MSGraph(), jbxl::Density_Filter(), jbxl::Density_Mask(), jbxl::edgeEnhance(), jbxl::euclidDistance(), jbxl::MSGraph_Circle3D(), jbxl::MSGraph_Pool(), jbxl::MSGraph_Torus(), jbxl::Nabla(), jbxl::object_feature_MSGraph(), jbxl::readGraphicSlices(), jbxl::vNabla(), and jbxl::zzSobel().

00388 {  
00389     if (gp!=NULL) ::free(gp); 
00390     init();
00391     return;
00392 }

Here is the call graph for this function:

Here is the caller graph for this function:

void get_minmax ( void   )  [inline]

Definition at line 303 of file Gdata.h.

References MSGraph< T >::gp, Max, MSGraph< T >::max, Min, MSGraph< T >::min, MSGraph< T >::xs, and MSGraph< T >::ys.

Referenced by jbxl::delete_noise_MSGraph(), jbxl::Density_Filter(), jbxl::Density_Mask(), and jbxl::MSMaskFilter().

00304 {
00305     int i;
00306 
00307     min = max = gp[0];
00308 
00309     for (i=1; i<xs*ys; i++) {
00310         min = Min(min, gp[i]);
00311         max = Max(max, gp[i]);
00312     }
00313 }

Here is the caller graph for this function:

T get_vPoint ( double  x,
double  y = 0.,
double  z = 0.,
int  mode = OFF 
) [inline]

template <typename t>=""> T MSGraph<T>::get_vPoint(double x, double y, double z, int mode);

グラフィックデータ構造体 vpの任意の 1voxelの値(濃度)を返す.
座標の範囲チェックあり.Z軸の歪,境界補整あり.

Parameters:
x,y,z 値を設定する xyz座標.
mode モード: OFF なら最も近い点の濃度を返す.それ以外なら周囲の平均.
Returns:
(x,y,z)点の濃度(輝度値).(x,y,z)が座標の範囲外の場合は zeroを返す.

Definition at line 407 of file Gdata.h.

References MSGraph< T >::gp, OFF, MSGraph< T >::rbound, MSGraph< T >::RZxy, RBound< T >::xmin, MSGraph< T >::xs, RBound< T >::ymin, MSGraph< T >::ys, MSGraph< T >::zero, RBound< T >::zmin, and MSGraph< T >::zs.

00408 {
00409     int   ix, iy, iz;
00410     int   xx, yy, zz;
00411     T     ret;
00412 
00413     ret = zero;
00414 
00415     z  = z*RZxy;  
00416     if (mode==OFF) {
00417         ix = (int)(x+0.5) - rbound.xmin;
00418         iy = (int)(y+0.5) - rbound.ymin;
00419         iz = (int)(z+0.5) - rbound.zmin;
00420         if (ix>=0 && ix<xs &&iy>=0 && iy<ys && iz>=0 && iz<zs){
00421             ret = gp[iz*xs*ys + iy*xs + ix];
00422         }
00423     }
00424     else {
00425         int n = 0;
00426         T cc = (T)0;
00427 
00428         xx = (int)x - rbound.xmin;
00429         yy = (int)y - rbound.ymin;
00430         zz = (int)z - rbound.zmin;
00431         for (ix=xx; ix<=xx+1; ix++)
00432         for (iy=yy; iy<=yy+1; iy++)
00433         for (iz=zz; iz<=zz+1; iz++) {
00434             if (ix>=0 && ix<xs && iy>=0 && iy<ys && iz>=0 && iz<zs){
00435                 cc = cc + gp[iz*xs*ys + iy*xs + ix];
00436                 n++;
00437             }
00438         }
00439         if (n!=0) ret = cc/n;
00440     }
00441 
00442     return ret;
00443 }

void getm ( v = (T)0  )  [inline]

template <typename t>=""> void MSGraph<T>::getm(T v)

既に指定されているサイズに従って,typename T 型単純グラフィックデータ(MSGraph) のメモリ領域を確保する.
グラフィックデータ部分は v (デフォルトは0)で初期化される.

Parameters:
v グラフィックデータ部分の初期化値(デフォルトは0)

メモリ領域を獲得できなかった場合,メモリ領域へのポインタは NULLとなる.

Definition at line 286 of file Gdata.h.

References MSGraph< T >::gp, MSGraph< T >::init(), JBXL_GRAPH_MEMORY_ERROR, MSGraph< T >::max, MSGraph< T >::min, MSGraph< T >::state, MSGraph< T >::xs, MSGraph< T >::ys, MSGraph< T >::zero, and MSGraph< T >::zs.

00287 {
00288     gp = NULL;
00289     zero = max = min = v;
00290 
00291     if (xs>0 && ys>0 && zs>0) {
00292         gp = (T*)malloc(xs*ys*zs*sizeof(T));
00293         if (gp==NULL) {
00294             init();
00295             state = JBXL_GRAPH_MEMORY_ERROR;
00296             return;
00297         }
00298         for (int i=0; i<xs*ys*zs; i++) gp[i] = (T)v;
00299     }
00300 }

Here is the call graph for this function:

void getm ( int  x,
int  y,
int  z = 1,
v = (T)0 
) [inline]

template <typename t>=""> void MSGraph<T>::getm(int x, int y, int z, T v)

typename T 型単純グラフィックデータ(MSGraph)のメモリ領域を確保する.
グラフィックデータ部分は v (デフォルトは0)で初期化される.

Parameters:
x 確保するグラフィックデータの x方向のサイズ.
y 確保するグラフィックデータの y方向のサイズ.
z 確保するグラフィックデータの z方向のサイズ.
v グラフィックデータ部分の初期化値(デフォルトは0)

メモリ領域を獲得できなかった場合,メモリ領域へのポインタは NULLとなる.

Definition at line 254 of file Gdata.h.

References MSGraph< T >::gp, MSGraph< T >::init(), JBXL_GRAPH_MEMORY_ERROR, MSGraph< T >::max, MSGraph< T >::min, MSGraph< T >::state, MSGraph< T >::xs, MSGraph< T >::ys, MSGraph< T >::zero, and MSGraph< T >::zs.

Referenced by jbxl::copy_MSGraph(), MSGraph< T >::dup(), jbxl::dup_MSGraph(), jbxl::make_element_morph(), jbxl::readGraphicSlices(), jbxl::scalingMSGraph2D(), MSGraph< T >::set(), and ExMSGraph< T >::set().

00255 {
00256     xs = x;
00257     ys = y;
00258     zs = z;
00259     gp = NULL;
00260     zero = max = min = v;
00261 
00262     if (xs>0 && ys>0 && zs>0) {
00263         gp = (T*)malloc(xs*ys*zs*sizeof(T));
00264         if (gp==NULL) {
00265             init();
00266             state = JBXL_GRAPH_MEMORY_ERROR;
00267             return;
00268         }
00269         for (int i=0; i<xs*ys*zs; i++) gp[i] = (T)v;
00270     }
00271 }

Here is the call graph for this function:

Here is the caller graph for this function:

void init ( void   )  [inline]

template <typename t>=""> void MSGraph<T>::init(void)

メンバ変数を初期化する.画像データの開放は行わない

Definition at line 170 of file Gdata.h.

References MSGraph< T >::base, MSGraph< T >::color, MSGraph< T >::gp, GRAPH_COLOR_UNKNOWN, RBound< T >::init(), MSGraph< T >::max, MSGraph< T >::min, MSGraph< T >::norm, MSGraph< T >::rbound, MSGraph< T >::RZxy, MSGraph< T >::state, STATE_GRAPH_NOERR, MSGraph< T >::wNowX, MSGraph< T >::wNowY, MSGraph< T >::wRateX, MSGraph< T >::wRateY, MSGraph< T >::wZeroX, MSGraph< T >::wZeroY, MSGraph< T >::xs, MSGraph< T >::ys, MSGraph< T >::zero, and MSGraph< T >::zs.

Referenced by jbxl::copyCmnHead2MSGraph(), jbxl::cut_object_MSGraph(), jbxl::dup_MSGraph(), ExMSGraph< T >::ExMSGraph(), ExMSGraph< T >::ffree(), MSGraph< T >::free(), ExMSGraph< T >::free(), MSGraph< T >::getm(), jbxl::grab_MSGraph(), ExMSGraph< T >::mfree(), MSGraph< T >::MSGraph(), jbxl::readGraphicFile(), jbxl::readGraphicSlices(), jbxl::readRasFile(), jbxl::reduce_MSGraph(), jbxl::x_reverse_MSGraph(), and jbxl::zoom_MSGraph().

00171 {
00172     xs = ys = zs = 0; 
00173     gp    = NULL; 
00174     RZxy  = 1.0;
00175     zero  = (T)0;
00176     base  = (T)0;
00177     min   = (T)0;
00178     max   = (T)0;
00179     norm  = 1.0;
00180     color = GRAPH_COLOR_UNKNOWN;
00181     state = STATE_GRAPH_NOERR;
00182     rbound.init();
00183 
00184     wRateX = wRateY = 1.0;
00185     wZeroX = wZeroY = 1.0;
00186     wNowX  = wNowY  = 0.0;
00187 
00188     return;
00189 }

Here is the call graph for this function:

Here is the caller graph for this function:

bool isNull ( void   )  [inline]
void mimicry ( MSGraph< R >  s  )  [inline]

Reimplemented in ExMSGraph< T >.

Definition at line 137 of file Gdata.h.

References MSGraph< T >::base, MSGraph< T >::color, MSGraph< T >::max, MSGraph< T >::min, MSGraph< T >::norm, MSGraph< T >::rbound, MSGraph< T >::RZxy, MSGraph< T >::state, MSGraph< T >::xs, MSGraph< T >::ys, MSGraph< T >::zero, and MSGraph< T >::zs.

Referenced by jbxl::count_object_MSGraph(), jbxl::Density_Filter(), jbxl::Density_Mask(), jbxl::edgeEnhance(), jbxl::Laplacian(), jbxl::medianFilter(), jbxl::MSMaskFilter(), jbxl::Nabla(), jbxl::object_feature_MSGraph(), jbxl::xSobel(), jbxl::xxSobel(), jbxl::ySobel(), jbxl::yySobel(), jbxl::zSobel(), and jbxl::zzSobel().

00137                                                       {
00138         set(s.xs, s.ys, s.zs, (T)s.zero, (T)s.base, s.RZxy); 
00139         rbound = s.rbound;
00140         color  = s.color;
00141         state  = s.state;
00142         max    = s.zero;
00143         min    = s.zero;
00144         norm   = s.norm;
00145     };

Here is the caller graph for this function:

MSGraph< T > operator= ( ExMSGraph< T > &  s  )  [inline]

Definition at line 584 of file Gdata.h.

References MSGraph< T >::base, MSGraph< T >::color, MSGraph< T >::gp, MSGraph< T >::max, MSGraph< T >::min, MSGraph< T >::norm, MSGraph< T >::rbound, MSGraph< T >::RZxy, MSGraph< T >::state, MSGraph< T >::wNowX, MSGraph< T >::wNowY, MSGraph< T >::wNowZ, MSGraph< T >::wRateX, MSGraph< T >::wRateY, MSGraph< T >::wRateZ, MSGraph< T >::wZeroX, MSGraph< T >::wZeroY, MSGraph< T >::wZeroZ, MSGraph< T >::xs, MSGraph< T >::ys, MSGraph< T >::zero, and MSGraph< T >::zs.

00585 {
00586     xs     = s.xs;
00587     ys     = s.ys;
00588     zs     = s.zs;
00589     gp     = s.gp;
00590     zero   = s.zero;
00591     base   = s.base;
00592 
00593     max    = s.max;
00594     min    = s.min;
00595     color  = s.color;
00596     state  = s.state;
00597     rbound = s.rbound;
00598     RZxy   = s.RZxy;
00599     norm   = s.norm;
00600 
00601     wRateX = s.wRateX;
00602     wRateY = s.wRateY;
00603     wRateZ = s.wRateZ;
00604     wZeroX = s.wZeroX;
00605     wZeroY = s.wZeroY;
00606     wZeroZ = s.wZeroZ;
00607     wNowX  = s.wNowX;
00608     wNowY  = s.wNowY;
00609     wNowZ  = s.wNowZ;
00610 
00611     return *this;
00612 }

T& point ( int  x,
int  y = 0,
int  z = 0 
) [inline]
void put_vPoint ( double  x,
double  y = 0.,
double  z = 0.,
cc = (T)0,
int  mode = OFF 
) [inline]

template <typename t>=""> void MSGraph<T>::put_vPoint(double x, double y, double z, T cc, int mode)

グラフィックデータ構造体 gdの任意の 1voxelに値を設定する.

座標の範囲チェックあり.Z軸の歪,境界補整あり.
ただし,set_vPoint()は強制的に値を設定するが,put_vPoint()は既に 値が設定されている場合(zeroでない場合)は,指定された値を設定しない.

Parameters:
x,y,z 値を設定する xyz座標.
cc 点(x,y,z)に設定する点の値(濃度).
mode OFFの場合,(x,y,z)に一番近い点に ccを設定する. ON の場合,(x,y,z)の周りの格子点全てに ccを設定する.

Definition at line 503 of file Gdata.h.

References MSGraph< T >::gp, OFF, MSGraph< T >::rbound, MSGraph< T >::RZxy, RBound< T >::xmin, MSGraph< T >::xs, RBound< T >::ymin, MSGraph< T >::ys, MSGraph< T >::zero, RBound< T >::zmin, and MSGraph< T >::zs.

00504 {
00505     int   ix, iy, iz;
00506     int   xx, yy, zz;
00507 
00508     z = z*RZxy;  
00509     if (mode==OFF) {
00510         ix = (int)(x+0.5) - rbound.xmin;
00511         iy = (int)(y+0.5) - rbound.ymin;
00512         iz = (int)(z+0.5) - rbound.zmin;
00513         if (ix>=0 && ix<xs && iy>=0 && iy<ys && iz>=0 && iz<zs){
00514             if (gp[iz*xs*ys + iy*xs + ix]==zero) gp[iz*xs*ys + iy*xs + ix] = cc;
00515         }
00516     }
00517     else {
00518         xx = (int)x - rbound.xmin;
00519         yy = (int)y - rbound.ymin;
00520         zz = (int)z - rbound.zmin;
00521         for (ix=xx; ix<=xx+1; ix++)
00522         for (iy=yy; iy<=yy+1; iy++)
00523         for (iz=zz; iz<=zz+1; iz++) {
00524             if (ix>=0 && ix<xs && iy>=0 && iy<ys && iz>=0 && iz<zs){
00525                 if (gp[iz*xs*ys + iy*xs + ix]==zero) gp[iz*xs*ys + iy*xs + ix] = cc;
00526             }
00527         }
00528    }
00529 
00530     return;
00531 }

void set ( int  x,
int  y = 1,
int  z = 1,
v = (T)0,
b = (T)0,
double  rz = 1.0 
) [inline]

Definition at line 219 of file Gdata.h.

References MSGraph< T >::base, MSGraph< T >::color, MSGraph< T >::getm(), MSGraph< T >::gp, GRAPH_COLOR_MONO, GRAPH_COLOR_UNKNOWN, MSGraph< T >::norm, MSGraph< T >::rbound, MSGraph< T >::RZxy, RBound< T >::set(), MSGraph< T >::state, and STATE_GRAPH_NOERR.

00220 {
00221     if (z<=0) z = 1;
00222 
00223     getm(x, y, z, v); 
00224     if (gp==NULL) return;
00225 
00226     base = b;
00227     if (rz<=0.0) RZxy = 1.0;
00228     else         RZxy = rz;
00229     rbound.set(0, x-1, 0, y-1, 0, z-1);
00230     //
00231     color = GRAPH_COLOR_UNKNOWN;
00232     if (z==1) color = GRAPH_COLOR_MONO;
00233 
00234     norm  = 1.0;
00235     state = STATE_GRAPH_NOERR;
00236     return;
00237 }

Here is the call graph for this function:

void set ( RBound< int >  rb,
v = (T)0,
b = (T)0,
double  rz = 1.0 
) [inline]
void set_array ( T *  ary,
int  sz = 0 
) [inline]

Definition at line 316 of file Gdata.h.

References MSGraph< T >::gp, Min, MSGraph< T >::xs, MSGraph< T >::ys, and MSGraph< T >::zs.

00317 {
00318     int size = xs*ys*zs;
00319 
00320     if (sz>0) size = Min(size, sz);
00321     for (int i=0; i<size; i++) gp[i] = ary[i];
00322 }

void set_vPoint ( double  x,
double  y = 0.,
double  z = 0.,
cc = (T)0,
int  mode = OFF 
) [inline]

template <typename t>=""> void MSGraph<T>::set_vPoint(double x, double y, double z, T cc, int mode)

グラフィックデータ構造体 gdの任意の 1voxelに値を設定する.
座標の範囲チェックあり.Z軸の歪,境界補整あり.

Parameters:
x,y,z 値を設定する xyz座標.
cc 点(x,y,z)に設定する点の値(濃度).
mode OFFの場合,(x,y,z)に一番近い点に ccを設定する. ON の場合,(x,y,z)の周りの格子点全てに ccを設定する.

Definition at line 458 of file Gdata.h.

References MSGraph< T >::gp, OFF, MSGraph< T >::rbound, MSGraph< T >::RZxy, RBound< T >::xmin, MSGraph< T >::xs, RBound< T >::ymin, MSGraph< T >::ys, RBound< T >::zmin, and MSGraph< T >::zs.

Referenced by jbxl::Local2World(), and jbxl::MSGraph_Sphere().

00459 {
00460     int   ix, iy, iz;
00461     int   xx, yy, zz;
00462 
00463     z = z*RZxy;  
00464     if (mode==OFF) {
00465         ix = (int)(x+0.5) - rbound.xmin;
00466         iy = (int)(y+0.5) - rbound.ymin;
00467         iz = (int)(z+0.5) - rbound.zmin;
00468         if (ix>=0 && ix<xs && iy>=0 && iy<ys && iz>=0 && iz<zs){
00469             gp[iz*xs*ys + iy*xs + ix] = cc;
00470         }
00471     }
00472     else {
00473         xx = (int)x - rbound.xmin;
00474         yy = (int)y - rbound.ymin;
00475         zz = (int)z - rbound.zmin;
00476         for (ix=xx; ix<=xx+1; ix++)
00477         for (iy=yy; iy<=yy+1; iy++)
00478         for (iz=zz; iz<=zz+1; iz++) {
00479             if (ix>=0 && ix<xs && iy>=0 && iy<ys && iz>=0 && iz<zs){
00480                 gp[iz*xs*ys + iy*xs + ix] = cc;
00481             }
00482         }
00483     }
00484     return;
00485 }

Here is the caller graph for this function:

void setWindow ( double  x1,
double  y1,
double  x2,
double  y2 
) [inline]

Definition at line 534 of file Gdata.h.

References Max, Min, MSGraph< T >::wRateX, MSGraph< T >::wRateY, MSGraph< T >::wZeroX, MSGraph< T >::wZeroY, Xabs, MSGraph< T >::xs, and MSGraph< T >::ys.

00535 {
00536     if (x1==x2 || y1==y2) return;
00537 
00538     wRateX = (xs-1.0)/Xabs(x2-x1);
00539     wRateY = (ys-1.0)/Xabs(y2-y1);
00540     wZeroX = Min(x1, x2);
00541     wZeroY = Max(y1, y2);
00542 }

void setWindow3D ( double  x1,
double  y1,
double  z1,
double  x2,
double  y2,
double  z2 
) [inline]

3D空間にビューポートを設定する.

Parameters:
x1 ビューポートの任意の頂点の x座標
y1 ビューポートの任意の頂点の y座標
z1 ビューポートの任意の頂点の z座標
x2 ビューポートの対角の頂点の x座標
y2 ビューポートの対角の頂点の y座標
z2 ビューポートの対角の頂点の z座標
座標系
                Z
                |
                |
                |/
    X ----------+-
               /|
              /
             / Y

Definition at line 568 of file Gdata.h.

References Max, Min, MSGraph< T >::wRateX, MSGraph< T >::wRateY, MSGraph< T >::wRateZ, MSGraph< T >::wZeroX, MSGraph< T >::wZeroY, MSGraph< T >::wZeroZ, Xabs, MSGraph< T >::xs, MSGraph< T >::ys, and MSGraph< T >::zs.

00569 {
00570     if (x1==x2 || y1==y2 || z1==z2) return;
00571 
00572     wRateX = (xs-1.0)/Xabs(x2-x1);
00573     wRateY = (ys-1.0)/Xabs(y2-y1);
00574     wRateZ = (zs-1.0)/Xabs(z2-z1);
00575     wZeroX = Max(x1, x2);
00576     wZeroY = Min(y1, y2);
00577     wZeroZ = Max(z1, z2);
00578 }

void wMove ( double  x,
double  y,
double  z = 0.0 
) [inline]

Definition at line 157 of file Gdata.h.

References MSGraph< T >::wNowX, MSGraph< T >::wNowY, and MSGraph< T >::wNowZ.

00157 {wNowX=x; wNowY=y; wNowZ=z;}

void wMove_rel ( double  x,
double  y,
double  z = 0.0 
) [inline]

Definition at line 158 of file Gdata.h.

References MSGraph< T >::wNowX, MSGraph< T >::wNowY, and MSGraph< T >::wNowZ.

00158 {wNowX+=x; wNowY+=y; wNowZ+=z;}


Member Data Documentation

T base
int color
T* gp

Definition at line 84 of file Gdata.h.

Referenced by jbxl::_getMSGraph_CvMat_C1(), jbxl::_getMSGraph_CvMat_C3(), jbxl::cat_MSGraph(), jbxl::centerLine(), MSGraph< T >::clear(), MSGraph< T >::contrast(), jbxl::copy_morph_element(), jbxl::copy_MSGraph(), jbxl::copyCmnHead2MSGraph(), jbxl::copyMSGraph2CmnHead(), jbxl::copyMSGraph2CvMat(), jbxl::count_area_MSGraph(), jbxl::count_object_MSGraph(), jbxl::cut_object_MSGraph(), jbxl::deletable(), jbxl::delete_noise_MSGraph(), jbxl::Density_Filter(), jbxl::Density_Mask(), MSGraph< T >::dup(), jbxl::dup_MSGraph(), jbxl::edgeEnhance(), jbxl::euclidDistance(), jbxl::fat_object_morph(), MSGraph< T >::fill(), MSGraph< T >::free(), jbxl::get_boundary_MSGraph(), MSGraph< T >::get_minmax(), MSGraph< T >::get_vPoint(), MSGraph< T >::getm(), MSGraph< T >::init(), MSGraph< T >::isNull(), jbxl::Laplacian(), jbxl::Local2World(), jbxl::make_element_morph(), jbxl::medianFilter(), jbxl::MSGraph2TGAImage(), jbxl::MSGraph_changeColor(), jbxl::MSGraph_Circle(), jbxl::MSGraph_Circle3D(), jbxl::MSGraph_Paint(), jbxl::MSGraph_Paint3D(), jbxl::MSGraph_Pool(), jbxl::MSGraph_Sphere(), jbxl::MSGraph_Torus(), jbxl::MSMaskFilter(), jbxl::Nabla(), jbxl::nonZeroBoxel(), jbxl::object_feature_MSGraph(), jbxl::opening_morph(), MSGraph< T >::operator=(), ExMSGraph< T >::operator=(), jbxl::out_around_MSGraph(), MSGraph< T >::point(), jbxl::point_fat_object_morph(), jbxl::point_open_morph(), MSGraph< T >::put_vPoint(), jbxl::readCmnHeadFile(), jbxl::readDicomData(), jbxl::readGraphicFile(), jbxl::readGraphicSlices(), jbxl::readXHeadFile(), jbxl::reduce_MSGraph(), jbxl::rotate_MSGraph(), jbxl::scalingMSGraph2D(), MSGraph< T >::set(), jbxl::set_around_MSGraph(), MSGraph< T >::set_array(), MSGraph< T >::set_vPoint(), jbxl::TGAImage2MSGraph(), jbxl::vNabla(), jbxl::writeGraphicFile(), jbxl::x_reverse_MSGraph(), jbxl::xSobel(), jbxl::xxSobel(), jbxl::ySobel(), jbxl::yySobel(), jbxl::zoom_MSGraph(), and jbxl::zSobel().

T max
T min
double norm
RBound<int> rbound
double RZxy
int state
double wNowX
double wNowY
double wNowZ
double wRateX
double wRateY
double wRateZ
double wZeroX
double wZeroY
double wZeroZ
int xs

Definition at line 81 of file Gdata.h.

Referenced by jbxl::_getMSGraph_CvMat_C1(), jbxl::_getMSGraph_CvMat_C3(), jbxl::addPaint_MSGraph(), jbxl::cat_MSGraph(), jbxl::centerLine(), MSGraph< T >::clear(), MSGraph< T >::contrast(), jbxl::copy_morph_element(), jbxl::copy_MSGraph(), jbxl::copyCmnHead2MSGraph(), jbxl::copyMSGraph2CmnHead(), jbxl::copyMSGraph2CvMat(), jbxl::count_area_MSGraph(), jbxl::count_around_MSGraph(), jbxl::count_object_MSGraph(), jbxl::cut_object_MSGraph(), jbxl::deletable(), jbxl::delete_noise_MSGraph(), jbxl::Density_Filter(), jbxl::Density_Mask(), MSGraph< T >::dup(), jbxl::dup_MSGraph(), jbxl::edgeEnhance(), jbxl::euclidDistance(), jbxl::fat_object_morph(), MSGraph< T >::fill(), jbxl::get_boundary_MSGraph(), MSGraph< T >::get_minmax(), MSGraph< T >::get_vPoint(), MSGraph< T >::getm(), jbxl::grab_MSGraph(), MSGraph< T >::init(), jbxl::Laplacian(), jbxl::Local2World(), jbxl::make_element_morph(), jbxl::medianFilter(), MSGraph< T >::mimicry(), ExMSGraph< T >::mimicry(), jbxl::MSGraph2TGAImage(), jbxl::MSGraph_changeColor(), jbxl::MSGraph_Circle(), jbxl::MSGraph_Circle3D(), jbxl::MSGraph_Paint(), jbxl::MSGraph_Paint3D(), jbxl::MSGraph_Pool(), jbxl::MSGraph_Sphere(), jbxl::MSGraph_Torus(), jbxl::MSMaskFilter(), jbxl::Nabla(), jbxl::nonZeroBoxel(), jbxl::object_feature_MSGraph(), jbxl::opening_morph(), MSGraph< T >::operator=(), ExMSGraph< T >::operator=(), jbxl::out_around_MSGraph(), MSGraph< T >::point(), jbxl::point_fat_object_morph(), jbxl::point_open_morph(), MSGraph< T >::put_vPoint(), jbxl::readCmnHeadFile(), jbxl::readDicomData(), jbxl::readDicomFile(), jbxl::readGraphicFile(), jbxl::readGraphicSlices(), jbxl::readXHeadFile(), jbxl::reduce_MSGraph(), jbxl::rotate_MSGraph(), jbxl::scalingMSGraph2D(), jbxl::set_around_MSGraph(), MSGraph< T >::set_array(), MSGraph< T >::set_vPoint(), MSGraph< T >::setWindow(), MSGraph< T >::setWindow3D(), jbxl::vNabla(), jbxl::writeGraphicFile(), jbxl::x_reverse_MSGraph(), jbxl::xSobel(), jbxl::xxSobel(), jbxl::ySobel(), jbxl::yySobel(), jbxl::zoom_MSGraph(), and jbxl::zSobel().

int ys

Definition at line 82 of file Gdata.h.

Referenced by jbxl::_getMSGraph_CvMat_C1(), jbxl::_getMSGraph_CvMat_C3(), jbxl::addPaint_MSGraph(), jbxl::cat_MSGraph(), jbxl::centerLine(), MSGraph< T >::clear(), MSGraph< T >::contrast(), jbxl::copy_morph_element(), jbxl::copy_MSGraph(), jbxl::copyCmnHead2MSGraph(), jbxl::copyMSGraph2CmnHead(), jbxl::copyMSGraph2CvMat(), jbxl::count_area_MSGraph(), jbxl::count_around_MSGraph(), jbxl::count_object_MSGraph(), jbxl::cut_object_MSGraph(), jbxl::deletable(), jbxl::delete_noise_MSGraph(), jbxl::Density_Filter(), jbxl::Density_Mask(), MSGraph< T >::dup(), jbxl::dup_MSGraph(), jbxl::edgeEnhance(), jbxl::euclidDistance(), jbxl::fat_object_morph(), MSGraph< T >::fill(), jbxl::get_boundary_MSGraph(), MSGraph< T >::get_minmax(), MSGraph< T >::get_vPoint(), MSGraph< T >::getm(), jbxl::grab_MSGraph(), MSGraph< T >::init(), jbxl::Laplacian(), jbxl::Local2World(), jbxl::make_element_morph(), jbxl::medianFilter(), MSGraph< T >::mimicry(), ExMSGraph< T >::mimicry(), jbxl::MSGraph2TGAImage(), jbxl::MSGraph_changeColor(), jbxl::MSGraph_Circle(), jbxl::MSGraph_Circle3D(), jbxl::MSGraph_Line(), jbxl::MSGraph_Paint(), jbxl::MSGraph_Paint3D(), jbxl::MSGraph_Pool(), jbxl::MSGraph_Sphere(), jbxl::MSGraph_Torus(), jbxl::MSMaskFilter(), jbxl::Nabla(), jbxl::nonZeroBoxel(), jbxl::object_feature_MSGraph(), jbxl::opening_morph(), MSGraph< T >::operator=(), ExMSGraph< T >::operator=(), jbxl::out_around_MSGraph(), MSGraph< T >::point(), jbxl::point_fat_object_morph(), jbxl::point_open_morph(), MSGraph< T >::put_vPoint(), jbxl::readCmnHeadFile(), jbxl::readGraphicFile(), jbxl::readGraphicSlices(), jbxl::readXHeadFile(), jbxl::reduce_MSGraph(), jbxl::rotate_MSGraph(), jbxl::scalingMSGraph2D(), jbxl::set_around_MSGraph(), MSGraph< T >::set_array(), MSGraph< T >::set_vPoint(), MSGraph< T >::setWindow(), MSGraph< T >::setWindow3D(), jbxl::vNabla(), jbxl::wGetPixel(), jbxl::writeGraphicFile(), jbxl::wSetPixel(), jbxl::x_reverse_MSGraph(), jbxl::xSobel(), jbxl::xxSobel(), jbxl::ySobel(), jbxl::yySobel(), jbxl::zoom_MSGraph(), and jbxl::zSobel().

T zero
int zs

Definition at line 83 of file Gdata.h.

Referenced by jbxl::_getMSGraph_CvMat_C1(), jbxl::_getMSGraph_CvMat_C3(), jbxl::cat_MSGraph(), jbxl::centerLine(), MSGraph< T >::clear(), MSGraph< T >::contrast(), jbxl::copy_morph_element(), jbxl::copy_MSGraph(), jbxl::copyCmnHead2MSGraph(), jbxl::copyMSGraph2CmnHead(), jbxl::copyMSGraph2CvMat(), jbxl::count_area_MSGraph(), jbxl::count_object_MSGraph(), jbxl::cut_object_MSGraph(), MSGraph< T >::dup(), jbxl::dup_MSGraph(), jbxl::edgeEnhance(), jbxl::euclidDistance(), jbxl::fat_object_morph(), MSGraph< T >::fill(), jbxl::get_boundary_MSGraph(), MSGraph< T >::get_vPoint(), MSGraph< T >::getm(), jbxl::grab_MSGraph(), MSGraph< T >::init(), jbxl::Local2World(), jbxl::make_element_morph(), jbxl::medianFilter(), MSGraph< T >::mimicry(), ExMSGraph< T >::mimicry(), jbxl::MSGraph2TGAImage(), jbxl::MSGraph_changeColor(), jbxl::MSGraph_Line3D(), jbxl::MSGraph_Paint3D(), jbxl::MSGraph_Pool(), jbxl::MSGraph_Sphere(), jbxl::MSGraph_Torus(), jbxl::MSMaskFilter(), jbxl::Nabla(), jbxl::object_feature_MSGraph(), jbxl::opening_morph(), MSGraph< T >::operator=(), ExMSGraph< T >::operator=(), jbxl::point_fat_object_morph(), jbxl::point_open_morph(), MSGraph< T >::put_vPoint(), jbxl::readCmnHeadFile(), jbxl::readGraphicFile(), jbxl::readGraphicSlices(), jbxl::readXHeadFile(), jbxl::reduce_MSGraph(), jbxl::rotate_MSGraph(), jbxl::scalingMSGraph2D(), MSGraph< T >::set_array(), MSGraph< T >::set_vPoint(), MSGraph< T >::setWindow3D(), jbxl::vNabla(), jbxl::wGetPixel3D(), jbxl::writeGraphicFile(), jbxl::wSetPixel3D(), jbxl::x_reverse_MSGraph(), jbxl::xSobel(), jbxl::xxSobel(), jbxl::ySobel(), jbxl::yySobel(), jbxl::zoom_MSGraph(), jbxl::zSobel(), and jbxl::zzSobel().


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

Generated on 15 Nov 2023 for JunkBox_Lib++ (for Windows) by  doxygen 1.6.1