Skip to content

Commit 12821d4

Browse files
authored
Merge pull request #117 from mpsonntag/fixAxis
Quick fix Dimension axis, ticksAt, positionAt error LGTM
2 parents 295612e + 1193f3c commit 12821d4

File tree

5 files changed

+63
-14
lines changed

5 files changed

+63
-14
lines changed

+nix/RangeDimension.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
index = index - 1;
2424
end
2525
func_name = strcat(obj.alias, '::tick_at');
26-
tickAt = nix_mx(func_name, obj.nix_handle, uint64(index));
26+
tickAt = nix_mx(func_name, obj.nix_handle, index);
2727
end
2828

2929
function indexOf = index_of(obj, position)
@@ -40,7 +40,7 @@
4040
end
4141

4242
func_name = strcat(obj.alias, '::axis');
43-
axis = nix_mx(func_name, obj.nix_handle, uint64(count), uint64(startIndex));
43+
axis = nix_mx(func_name, obj.nix_handle, count, startIndex);
4444
end
4545

4646
end

+nix/SampledDimension.m

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
index = index - 1;
2929
end
3030
func_name = strcat(obj.alias, '::position_at');
31-
posAt = nix_mx(func_name, obj.nix_handle, uint64(index));
31+
posAt = nix_mx(func_name, obj.nix_handle, index);
3232
end
3333

3434
function axis = axis(obj, count, startIndex)
@@ -39,8 +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
46-

nix_mx.cc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -322,20 +322,20 @@ void mexFunction(int nlhs,
322322
.reg("set_samplingInterval", SETTER(double, nix::SampledDimension, samplingInterval))
323323
.reg("set_offset", SETTER(double, nix::SampledDimension, offset))
324324
.reg("set_none_offset", SETTER(const boost::none_t, nix::SampledDimension, offset))
325-
.reg("index_of", &nix::SampledDimension::indexOf)
326-
.reg("position_at", &nix::SampledDimension::positionAt)
327-
.reg("axis", &nix::SampledDimension::axis);
328-
325+
.reg("index_of", &nix::SampledDimension::indexOf);
326+
methods->add("SampledDimension::position_at", nixdimensions::sampled_position_at);
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))
332332
.reg("set_none_label", SETTER(const boost::none_t, nix::RangeDimension, label))
333333
.reg("set_unit", SETTER(const std::string&, nix::RangeDimension, unit))
334334
.reg("set_none_unit", SETTER(const boost::none_t, nix::RangeDimension, unit))
335335
.reg("set_ticks", SETTER(const std::vector<double>&, nix::RangeDimension, ticks))
336-
.reg("index_of", &nix::RangeDimension::indexOf)
337-
.reg("tick_at", &nix::RangeDimension::tickAt)
338-
.reg("axis", &nix::RangeDimension::axis);
336+
.reg("index_of", &nix::RangeDimension::indexOf);
337+
methods->add("RangeDimension::tick_at", nixdimensions::range_tick_at);
338+
methods->add("RangeDimension::axis", nixdimensions::range_axis);
339339

340340
mexAtExit(on_exit);
341341
});

src/nixdimensions.cc

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,46 @@ namespace nixdimensions {
4040

4141
return sb.array();
4242
}
43+
44+
void sampled_position_at(const extractor &input, infusor &output) {
45+
nix::SampledDimension dim = input.entity<nix::SampledDimension>(1);
46+
const size_t index = static_cast<size_t>(input.num<double>(2));
47+
48+
double pos = dim.positionAt(index);
49+
output.set(0, pos);
50+
}
51+
52+
void sampled_axis(const extractor &input, infusor &output) {
53+
nix::SampledDimension dim = input.entity<nix::SampledDimension>(1);
54+
const size_t count = static_cast<size_t>(input.num<double>(2));
55+
const size_t startIndex = static_cast<size_t>(input.num<double>(3));
56+
57+
std::vector<double> a = dim.axis(count, startIndex);
58+
mxArray *axis = mxCreateDoubleMatrix(1, a.size(), mxREAL);
59+
std::copy(a.begin(), a.end(), mxGetPr(axis));
60+
61+
output.set(0, axis);
62+
}
63+
64+
void range_tick_at(const extractor &input, infusor &output) {
65+
nix::RangeDimension dim = input.entity<nix::RangeDimension>(1);
66+
const size_t index = static_cast<size_t>(input.num<double>(2));
67+
68+
double tick = dim.tickAt(index);
69+
output.set(0, tick);
70+
}
71+
72+
void range_axis(const extractor &input, infusor &output) {
73+
nix::RangeDimension dim = input.entity<nix::RangeDimension>(1);
74+
const size_t count = static_cast<size_t>(input.num<double>(2));
75+
const size_t startIndex = static_cast<size_t>(input.num<double>(3));
76+
77+
std::vector<double> a = dim.axis(count, startIndex);
78+
mxArray *axis = mxCreateDoubleMatrix(1, a.size(), mxREAL);
79+
std::copy(a.begin(), a.end(), mxGetPr(axis));
80+
81+
output.set(0, axis);
82+
}
83+
4384
} // namespace nixdimensions
85+

src/nixdimensions.h

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

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

14-
} // namespace nixtag
14+
void sampled_position_at(const extractor &input, infusor &output);
1515

16-
#endif
16+
void sampled_axis(const extractor &input, infusor &output);
17+
18+
void range_tick_at(const extractor &input, infusor &output);
19+
20+
void range_axis(const extractor &input, infusor &output);
21+
22+
} // namespace nixdimensions
23+
24+
#endif

0 commit comments

Comments
 (0)