Defines
core/vil/vil_memory_image.cxx File Reference
#include "vil_memory_image.h"
#include <vcl_cassert.h>
#include <vcl_cstdlib.h>
#include <vxl_config.h>
#include <vil/vil_image_view.h>
#include <vil/vil_copy.h>
#include <vil/vil_pixel_format.h>

Go to the source code of this file.

Defines

#define macro(F, T)
#define macro(F, T)   case F : view_ = new vil_image_view<T >(view); break;
#define macro(F, T)
#define macro(F, T)
#define macro(F, T)

Detailed Description

Author:
Ian Scott
    Modifications
     23 Oct.2003 - Peter Vanroose - Added support for 64-bit int pixels
   

Definition in file vil_memory_image.cxx.


Define Documentation

#define macro (   F,
 
)
Value:
case F : view_ = new vil_image_view<T >(n_i, n_j, n_planes, n_interleaved_planes); \
            break;
#define macro (   F,
 
)    case F : view_ = new vil_image_view<T >(view); break;
#define macro (   F,
 
)
Value:
case  F : { \
    const vil_image_view< T > &v = static_cast<const vil_image_view< T > &>(*view_); \
    vil_image_view< T > w(v.memory_chunk(), &v(i0,j0), \
                          n_i, n_j, v.nplanes(), \
                          v.istep(), v.jstep(), v.planestep()); \
    return new vil_image_view< T >(vil_copy_deep(w)); }
#define macro (   F,
 
)
Value:
case  F : { \
    const vil_image_view< T > &v = static_cast<const vil_image_view< T > &>(*view_); \
    return new vil_image_view< T >(v.memory_chunk(), &v(i0,j0), \
                                   n_i, n_j, v.nplanes(), \
                                   v.istep(), v.jstep(), v.planestep()); }
#define macro (   F,
 
)
Value:
case  F : { \
    vil_image_view< T > &v = static_cast<vil_image_view< T > &>(*view_); \
    const vil_image_view< T > &w = static_cast<const vil_image_view< T > &>(im); \
    if (v.memory_chunk() == w.memory_chunk()) \
    { \
      if (&v(i0,j0) != w.top_left_ptr()) { \
        vcl_cerr << "ERROR: vil_memory_image::put_view()\n" \
                 << "different window from that used in get_view()\n"; \
        vcl_abort(); } \
      else return true; /* The user has already modified the data in place. */ \
    } \
    vil_copy_to_window(w, v, i0, j0); \
    return true; }