====== vmp.CreateSMP ======
===== Motivation =====
Please refer to the [[Processing stream - Surface projection|Surface projection]] page for information on why to use this method and a practical example output.
===== Method reference ('vmp.Help('CreateSMP')') =====
VMP::CreateSMP - sample SMPs from the maps in a VMP
FORMAT: smp = vmp.CreateSMP(srf, opts)
Input fields:
srf required surface file
opts 1x1 struct with optional fields
.interp method ('nearest', {'linear'}, 'cubic')
.ipfrom interpolate from P + n * normal vector, default: -3
.ipstep interpolation stepsize, default: 1 (in normal vectors)
.ipto interpolate to P + n * normal vector, default: 1
.mapsel map selection, default: all maps in VMP
.method method to get value ('max', {'mean'}, 'median', 'min')
.recalcn boolean, recalc normals before sampling, default: false
Output fields:
smp SMP object with as many maps as selected
Note: results slightly differ from BV's results (sampling method)
===== Usage examples =====
* simple conversion of all maps in a VMP with default parameters: % load VMP and SRF
vmp = xff('*.vmp', 'Please select a VMP for SMP creation...');
srf = xff('*.srf', 'Please select a surface to sample VMP at...');
% convert to SMP
smp = vmp.CreateSMP(srf);
% save as and clear all VMP/SRF objects
smp.SaveAs;
vmp.ClearObject;
srf.ClearObject;
* only convert first map with cubic interpolation and sampled just at the vertex: smpcreateopts = struct( ...
'interp', 'cubic', ...
'ipfrom', 0, ...
'ipto', 0, ...
'mapsel', 1);
smp = vmp.CreateSMP(srf, smpcreateopts);
* recreate normals before sampling: smp = vmp.CreateSMP(srf, struct('recalcn', true));