Skip to content

Commit 55de003

Browse files
committed
fix sampled dim axis method
1 parent b5fe1b8 commit 55de003

File tree

4 files changed

+18
-4
lines changed

4 files changed

+18
-4
lines changed

+nix/SampledDimension.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
startIndex = startIndex - 1;
4040
end
4141
func_name = strcat(obj.alias, '::axis');
42-
axis = nix_mx(func_name, obj.nix_handle, uint64(count), uint64(startIndex));
42+
axis = nix_mx(func_name, obj.nix_handle, count, startIndex);
4343
end
4444
end
4545
end

nix_mx.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -323,9 +323,9 @@ void mexFunction(int nlhs,
323323
.reg("set_offset", SETTER(double, nix::SampledDimension, offset))
324324
.reg("set_none_offset", SETTER(const boost::none_t, nix::SampledDimension, offset))
325325
.reg("index_of", &nix::SampledDimension::indexOf)
326-
.reg("position_at", &nix::SampledDimension::positionAt)
327-
.reg("axis", &nix::SampledDimension::axis);
328-
326+
.reg("position_at", &nix::SampledDimension::positionAt);
327+
methods->add("SampledDimension::axis", nixdimensions::sampled_axis);
328+
329329
classdef<nix::RangeDimension>("RangeDimension", methods)
330330
.desc(&nixdimensions::describe)
331331
.reg("set_label", SETTER(const std::string&, nix::RangeDimension, label))

src/nixdimensions.cc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,18 @@ namespace nixdimensions {
4141
return sb.array();
4242
}
4343

44+
void sampled_axis(const extractor &input, infusor &output) {
45+
nix::SampledDimension dim = input.entity<nix::SampledDimension>(1);
46+
const mwSize count = static_cast<mwSize>(input.num<double>(2));
47+
const mwSize startIndex = static_cast<mwSize>(input.num<double>(3));
48+
49+
std::vector<double> a = dim.axis(count, startIndex);
50+
mxArray *axis = mxCreateDoubleMatrix(1, a.size(), mxREAL);
51+
std::copy(a.begin(), a.end(), mxGetPr(axis));
52+
53+
output.set(0, axis);
54+
}
55+
4456
void range_tick_at(const extractor &input, infusor &output) {
4557
nix::RangeDimension dim = input.entity<nix::RangeDimension>(1);
4658
const mwSize index = static_cast<mwSize>(input.num<double>(2));

src/nixdimensions.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ namespace nixdimensions {
1111

1212
mxArray *describe(const nix::RangeDimension &dim);
1313

14+
void sampled_axis(const extractor &input, infusor &output);
15+
1416
void range_tick_at(const extractor &input, infusor &output);
1517

1618
void range_axis(const extractor &input, infusor &output);

0 commit comments

Comments
 (0)