@@ -126,6 +126,7 @@ static void on_exit() {
126
126
#define GETTER (type, class, name ) static_cast <type(class ::*)()const >(&class ::name)
127
127
#define GETBYSTR (type, class, name ) static_cast <type(class ::*)(const std::string &)const >(&class ::name)
128
128
#define GETCONTENT (type, class, name ) static_cast <type(class ::*)()const >(&class ::name)
129
+ #define GETSOURCES (base__ ) static_cast <std::vector<nix::Source>(nix::base::EntityWithSources<nix::base::base__>::*)(std::function<bool (const nix::Source &)>)const >(&nix::base::EntityWithSources<nix::base::base__>::sources)
129
130
#define REMOVER (type, class, name ) static_cast <bool (class ::*)(const std::string&)>(&class ::name)
130
131
131
132
// main entry point
@@ -172,7 +173,7 @@ void mexFunction(int nlhs,
172
173
.reg (" openMultiTag" , GETBYSTR (nix::MultiTag, nix::Block, getMultiTag));
173
174
174
175
classdef<nix::DataArray>(" DataArray" , methods)
175
- .reg (" sources" , static_cast <std::vector<nix::Source>(nix::base::EntityWithSources<nix::base:: IDataArray>::*)(std::function< bool ( const nix::Source &)>) const >(&nix::base::EntityWithSources<nix::base::IDataArray>::sources ));
176
+ .reg (" sources" , GETSOURCES ( IDataArray));
176
177
177
178
classdef<nix::Source>(" Source" , methods)
178
179
.reg (" sources" , &nix::Source::sources)
@@ -181,15 +182,15 @@ void mexFunction(int nlhs,
181
182
classdef<nix::Tag>(" Tag" , methods)
182
183
.reg (" references" , GETTER (std::vector<nix::DataArray>, nix::Tag, references))
183
184
.reg (" features" , &nix::Tag::features)
184
- .reg (" sources" , static_cast <std::vector<nix::Source>(nix::base::EntityWithSources<nix::base:: ITag>::*)(std::function< bool ( const nix::Source &)>) const >(&nix::base::EntityWithSources<nix::base::ITag>::sources ))
185
+ .reg (" sources" , GETSOURCES ( ITag))
185
186
.reg (" openReferenceDataArray" , GETBYSTR (nix::DataArray, nix::Tag, getReference))
186
187
.reg (" openFeature" , GETBYSTR (nix::Feature, nix::Tag, getFeature))
187
188
.reg (" openSource" , GETBYSTR (nix::Source, nix::Tag, getSource));
188
189
189
190
classdef<nix::MultiTag>(" MultiTag" , methods)
190
191
.reg (" references" , GETTER (std::vector<nix::DataArray>, nix::MultiTag, references))
191
192
.reg (" features" , &nix::MultiTag::features)
192
- .reg (" sources" , static_cast <std::vector<nix::Source>(nix::base::EntityWithSources<nix::base:: IMultiTag>::*)(std::function< bool ( const nix::Source &)>) const >(&nix::base::EntityWithSources<nix::base::IMultiTag>::sources ))
193
+ .reg (" sources" , GETSOURCES ( IMultiTag))
193
194
.reg (" hasPositions" , GETCONTENT (bool , nix::MultiTag, hasPositions))
194
195
.reg (" openPositions" , GETCONTENT (nix::DataArray, nix::MultiTag, positions))
195
196
.reg (" openExtents" , GETCONTENT (nix::DataArray, nix::MultiTag, extents))
0 commit comments