Skip to content

Commit fe37453

Browse files
committed
merged changes and resolved conflicts
2 parents 8041e0d + 7168a37 commit fe37453

File tree

13 files changed

+125
-33
lines changed

13 files changed

+125
-33
lines changed

+nix/Property.m

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,24 @@
3030
end
3131

3232
function [] = set.values(obj, val)
33-
nix_mx('Property::updateValues', obj.nix_handle, val);
33+
values = val;
34+
if (~iscell(values))
35+
values = num2cell(val);
36+
end
37+
38+
for i = 1:length(values)
39+
if (isstruct(values{i}))
40+
curr = values{i}.value;
41+
else
42+
curr = values{i};
43+
end
44+
45+
if (~strcmpi(class(curr), obj.datatype))
46+
error('Values do not match property data type!');
47+
end
48+
end
49+
50+
nix_mx('Property::updateValues', obj.nix_handle, values);
3451
obj.valuesCache.lastUpdate = 0;
3552

3653
dispStr = 'Note: nix only supports updating the actual value at the moment.';

+nix/Section.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@
9696
end;
9797

9898
function p = create_property_with_value(obj, name, val)
99+
if(~iscell(val))
100+
val = num2cell(val);
101+
end;
99102
p = nix.Property(nix_mx('Section::createPropertyWithValue', ...
100103
obj.nix_handle, name, val));
101104
obj.propsCache.lastUpdate = 0;

src/nixdataarray.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,10 @@ namespace nixdataarray {
4242

4343
void read_all(const extractor &input, infusor &output)
4444
{
45+
//nix::DataArray da = input.entity<nix::DataArray>(1);
46+
4547
nix::DataArray da = input.entity<nix::DataArray>(1);
46-
mxArray *data = make_mx_array(da);
48+
mxArray *data = make_mx_array_from_ds(da);
4749
output.set(0, data);
4850
}
4951

src/nixmultitag.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ namespace nixmultitag {
4949
double p_index = input.num<double>(2);
5050
double f_index = input.num<double>(3);
5151

52-
mxArray *data = make_mx_array(currObj.retrieveData(p_index, f_index));
52+
mxArray *data = make_mx_array_from_ds(currObj.retrieveData(p_index, f_index));
5353
output.set(0, data);
5454
}
5555

@@ -58,7 +58,7 @@ namespace nixmultitag {
5858
double p_index = input.num<double>(2);
5959
double f_index = input.num<double>(3);
6060

61-
mxArray *data = make_mx_array(currObj.retrieveFeatureData(p_index, f_index));
61+
mxArray *data = make_mx_array_from_ds(currObj.retrieveFeatureData(p_index, f_index));
6262
output.set(0, data);
6363
}
6464

src/nixproperty.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#include "nixproperty.h"
2-
32
#include "mex.h"
4-
3+
#include "datatypes.h"
54
#include <nix.hpp>
65

76
#include "handle.h"
@@ -19,7 +18,7 @@ namespace nixproperty {
1918
sb.set(prop.definition());
2019
sb.set(prop.unit());
2120
sb.set(prop.mapping());
22-
sb.set(nix::data_type_to_string(prop.dataType()));
21+
sb.set(string_nix2mex(prop.dataType()));
2322

2423
return sb.array();
2524
}
@@ -55,6 +54,7 @@ namespace nixproperty {
5554
{
5655
nix::Property prop = input.entity<nix::Property>(1);
5756
prop.deleteValues();
57+
5858
std::vector<nix::Value> getVals = input.vec(2);
5959
prop.values(getVals);
6060
}

src/nixsection.cc

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "nixsection.h"
2-
32
#include "mex.h"
43
#include <nix.hpp>
54

@@ -68,9 +67,9 @@ void create_property(const extractor &input, infusor &output)
6867
void create_property_with_value(const extractor &input, infusor &output)
6968
{
7069
nix::Section currObj = input.entity<nix::Section>(1);
71-
std::vector<nix::Value> currVec = input.vec(3);
7270

73-
nix::Property p = currObj.createProperty(input.str(2), currVec);
71+
std::vector<nix::Value> vals = input.vec(3);
72+
nix::Property p = currObj.createProperty(input.str(2), vals);
7473
output.set(0, handle(p));
7574
}
7675

src/nixtag.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ namespace nixtag {
5050
nix::Tag currObj = input.entity<nix::Tag>(1);
5151
double index = input.num<double>(2);
5252

53-
mxArray *data = make_mx_array(currObj.retrieveData(index));
53+
mxArray *data = make_mx_array_from_ds(currObj.retrieveData(index));
5454
output.set(0, data);
5555
}
5656

5757
void retrieve_feature_data(const extractor &input, infusor &output) {
5858
nix::Tag currObj = input.entity<nix::Tag>(1);
5959
double index = input.num<double>(2);
6060

61-
mxArray *data = make_mx_array(currObj.retrieveFeatureData(index));
61+
mxArray *data = make_mx_array_from_ds(currObj.retrieveFeatureData(index));
6262
output.set(0, data);
6363
}
6464

src/utils/datatypes.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,20 @@ inline DType2 dtype_nix2mex (nix::DataType dtype) {
6969
return dt;
7070
}
7171

72+
inline std::string string_nix2mex(nix::DataType dtype) {
73+
std::string dt;
74+
75+
switch (dtype) {
76+
case nix::DataType::Bool: dt = "logical"; break;
77+
case nix::DataType::String: dt = "char"; break;
78+
case nix::DataType::Float: dt = "single"; break;
79+
80+
default: dt = nix::data_type_to_string(dtype);
81+
}
82+
83+
std::transform(dt.begin(), dt.end(), dt.begin(), ::tolower);
84+
85+
return dt;
86+
}
87+
7288
#endif

src/utils/mkarray.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#include "mex.h"
33
#include <nix.hpp>
44

5-
mxArray* make_mx_array(const nix::DataSet &da) {
5+
mxArray* make_mx_array_from_ds(const nix::DataSet &da) {
66
nix::NDSize size = da.dataExtent();
77
const size_t len = size.size();
88
std::vector<mwSize> dims(len);

src/utils/mkarray.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ inline mxArray* make_mx_array(const std::string &s)
1919
return mxCreateString(s.c_str());
2020
}
2121

22-
mxArray* make_mx_array(const nix::DataSet &da);
22+
mxArray* make_mx_array_from_ds(const nix::DataSet &da);
2323

2424
mxArray* make_mx_array(const nix::Value &value);
2525

0 commit comments

Comments
 (0)