Add octave github action
parent
b4de1e3a72
commit
9876960d08
|
@ -23,3 +23,11 @@ jobs:
|
||||||
with:
|
with:
|
||||||
go-version: 1.15
|
go-version: 1.15
|
||||||
- run: cd examples/go/openGJK && go build && go test -v
|
- run: cd examples/go/openGJK && go build && go test -v
|
||||||
|
|
||||||
|
Run_Octave_example:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container: gnuoctave/octave:7.3.0
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- run: cd examples/matlab/; run runme.m
|
||||||
|
|
|
@ -32,31 +32,33 @@ B = -A;
|
||||||
dist = openGJK( A, B );
|
dist = openGJK( A, B );
|
||||||
fprintf('The minimum distance between A and B is %.2f\n',dist);
|
fprintf('The minimum distance between A and B is %.2f\n',dist);
|
||||||
|
|
||||||
% VISUALISE RESULTS
|
% VISUALISE RESULTS ONLY IN MATLAB
|
||||||
% .. create new figure
|
if(exist('OCTAVE_VERSION', 'builtin') == 0)
|
||||||
figure('units','centimeters', 'WindowStyle','normal', 'color','w',...
|
% .. create new figure
|
||||||
|
figure('units','centimeters', 'WindowStyle','normal', 'color','w',...
|
||||||
'Position',[0 8.5 9 6],'defaultAxesColorOrder',parula,...
|
'Position',[0 8.5 9 6],'defaultAxesColorOrder',parula,...
|
||||||
'Renderer','opengl')
|
'Renderer','opengl')
|
||||||
% .. adjust properties
|
% .. adjust properties
|
||||||
axis equal tight off; hold all;
|
axis equal tight off; hold all;
|
||||||
% .. display body A
|
% .. display body A
|
||||||
DT = delaunayTriangulation(A');
|
DT = delaunayTriangulation(A');
|
||||||
[K,~] = convexHull(DT);
|
[K,~] = convexHull(DT);
|
||||||
trisurf(K,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3),...
|
trisurf(K,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3),...
|
||||||
'EdgeColor','none','FaceColor',[.4 1 .9 ],...
|
'EdgeColor','none','FaceColor',[.4 1 .9 ],...
|
||||||
'FaceLighting','flat' )
|
'FaceLighting','flat' )
|
||||||
% .. display body B
|
% .. display body B
|
||||||
DT = delaunayTriangulation(B');
|
DT = delaunayTriangulation(B');
|
||||||
[K,~] = convexHull(DT);
|
[K,~] = convexHull(DT);
|
||||||
trisurf(K,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3),...
|
trisurf(K,DT.Points(:,1),DT.Points(:,2),DT.Points(:,3),...
|
||||||
'EdgeColor','none','FaceColor',[.4 1 .8 ],...
|
'EdgeColor','none','FaceColor',[.4 1 .8 ],...
|
||||||
'FaceLighting','flat' )
|
'FaceLighting','flat' )
|
||||||
% .. represent the computed distance as a sphere
|
% .. represent the computed distance as a sphere
|
||||||
[x,y,z] = sphere(100);
|
[x,y,z] = sphere(100);
|
||||||
surf(x.*dist/2,y.*dist/2,z.*dist/2,'facecolor',[.9 .9 .9],...
|
surf(x.*dist/2,y.*dist/2,z.*dist/2,'facecolor',[.9 .9 .9],...
|
||||||
'EdgeColor','none','FaceLighting','flat','SpecularColorReflectance',0,...
|
'EdgeColor','none','FaceLighting','flat','SpecularColorReflectance',0,...
|
||||||
'SpecularStrength',1,'SpecularExponent',10,'facealpha',.7)
|
'SpecularStrength',1,'SpecularExponent',10,'facealpha',.7)
|
||||||
% ... adjust point of view
|
% ... adjust point of view
|
||||||
view(42,21)
|
view(42,21)
|
||||||
% ... add light
|
% ... add light
|
||||||
light('Position',[5 -10 20],'Style','local');
|
light('Position',[5 -10 20],'Style','local');
|
||||||
|
end
|
|
@ -35,29 +35,14 @@ else
|
||||||
silflag = '-v';
|
silflag = '-v';
|
||||||
end
|
end
|
||||||
|
|
||||||
% TRY COMPILING MEX FILE
|
% COMPILE MEX FILE
|
||||||
fprintf('Compiling mex function... ')
|
mex(fullfile('..','..','openGJK.c'),...
|
||||||
try
|
|
||||||
mex(fullfile('..','..','openGJK.c'),... % Source of openGJK
|
|
||||||
'-largeArrayDims', ... % Support large arrays
|
'-largeArrayDims', ... % Support large arrays
|
||||||
optflug, ... % Compiler flag for debug/optimisation
|
optflug, ...
|
||||||
fullfile('-I','..','..','include'),... % Folder to header files
|
['-I',fullfile('..','..','include')],... % Folder to header files
|
||||||
'-outdir', pwd, ... % Ouput directory for writing mex function
|
|
||||||
'-output', 'openGJK',... % Name of ouput mex file
|
'-output', 'openGJK',... % Name of ouput mex file
|
||||||
'-DMATLAB_MEX_BUILD',... % Define variable for mex function in source files
|
'-DMATLAB_MEX_BUILD',... % Define variable for mex function in source files
|
||||||
silflag ) % Silent/verbose flag
|
silflag )
|
||||||
|
|
||||||
% File compiled without errors. Return path and name of mex file
|
|
||||||
fprintf('completed!\n')
|
|
||||||
fprintf('The following mex file has been generated:')
|
|
||||||
fprintf('\t%s\n',[pwd,filesep,'openGJK.',mexext])
|
|
||||||
catch
|
|
||||||
% Build failed, refer to documentation
|
|
||||||
fprintf('\n\n ERROR DETECTED! Mex file cannot be compiled.\n')
|
|
||||||
fprintf('\tFor more information, see ')
|
|
||||||
fprintf('<a href="http://www.mathworks.com/help/matlab/ref/mex.html">this documentation page</a>.\n\n')
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
% RUN EXAMPLE
|
% RUN EXAMPLE
|
||||||
fprintf('Running example... ')
|
fprintf('Running example... ')
|
||||||
|
|
Loading…
Reference in New Issue