view examples/fortrandemo.cc @ 18578:875f4510d6dc

Accept indexed images with color values below the first colormap entry (bug #41851). Change made for Matlab compatibility. * ind2gray.m: Change %!tests to accept an indexed image with colors below the first entry in the colormap. * ind2rgb.m: Change %!tests to accept an indexed image with colors below the first entry in the colormap. * ind2x.m: Change input validation to accept all floating point images with integer indices. Issue a warning if any of the indices are below the first entry in the colormap. Map all color indices below the first entry to the first color in the colormap.
author Rik <rik@octave.org>
date Mon, 17 Mar 2014 09:10:32 -0700
parents 4b32677b6229
children
line wrap: on
line source

#include <octave/oct.h>
#include <octave/f77-fcn.h>

extern "C"
{
  F77_RET_T
  F77_FUNC (fortransub, FORTSUB)
    (const int&, double*, F77_CHAR_ARG_DECL F77_CHAR_ARG_LEN_DECL);
}

DEFUN_DLD (fortrandemo, args, , "Fortran Demo")
{
  octave_value_list retval;
  int nargin = args.length ();

  if (nargin != 1)
    print_usage ();
  else
    {
      NDArray a = args(0).array_value ();
      if (! error_state)
        {
          double *av = a.fortran_vec ();
          octave_idx_type na = a.numel ();
          OCTAVE_LOCAL_BUFFER (char, ctmp, 128);

          F77_XFCN (fortransub, FORTSUB,
                    (na, av, ctmp F77_CHAR_ARG_LEN (128)));

          retval(1) = std::string (ctmp);
          retval(0) = a;
        }
    }
  return retval;
}