Get from Ico-github-logo

Highlights from
Export figure to 3D interactive PDF

  • [strmodelshading, strface...
  • check_file_extension(fnam...
    See also CLEAR_FILE_EXTENSION, ISFILEXTENSION.
  • clear_file_extension(fnam...
    See also CHECK_FILE_EXTENSION, ISFILEXTENSION.
  • create_marker_lines(h, ty...
  • cut_line_to_pieces(x, npe...
  • doc_examples
  • draw_crystal_lattice
  • examples
  • fig2idtf(filename,...
    FIG2IDTF Save figure in IDTF format.
  • fig2latex(ax, fname, medi...
    FIG2LATEX Convert axes to U3D file, generating LaTeX code including it.
  • fig2pdf3d(ax, filename, m...
    FIG2PDF3D Convert axes to PDF with embedded interactive 3D image.
  • fig2u3d(ax, fname, imgtyp...
    FIG2U3D Convert figure to U3D file.
  • get_line_xyz(h)
  • get_quiver_data
  • heart3d
  • idtf2u3d(idtffile, u3dfile)
    IDTF2U3D Convert IDTF to U3D file.
  • idtf_model_nodes(n_meshes...
  • isfilextension(fname, ext...
    See also CHECK_FILE_EXTENSION, CLEAR_FILE_EXTENSION.
  • latex2pdf3d(fname, latex_...
    LATEX2PDF3D Compile LaTeX code to PDF.
  • line_pieces(vertices_all,...
    % See also u3d_pre_line, u3d_pre_contourgroup.
  • mesh_normals(points,faces)
    MESH_NORMALS compute mesh normals
  • populate_line_resource_st...
    % See also FACE_VERTEX_DATA_EQUALS_NPOINTS, VERBATIM.
  • populate_mesh_resource_st...
    % See also FACE_VERTEX_DATA_EQUALS_NPOINTS, MESH_NORMALS, VERBATIM.
  • populate_point_resource_s...
  • shaders_materials_modifie...
    File: shaders_materials_modifiers.m
  • single_mesh_resource_str(...
    % See also u3d_pre_patch.
  • test_hexagram_shape
  • u3d_in_latex(fname, media...
    U3D_IN_LATEX LaTeX code which includes a U3D file.
  • u3d_pre_contourgroup(ax)
    U3D_PRE_CONTOURGROUP Preprocess contour output to u3d.
  • u3d_pre_line(ax)
    U3D_PRE_LINE Preprocess line output to u3d.
  • u3d_pre_patch(ax)
    U3D_PRE_PATCH Preprocess surface output to u3d.
  • u3d_pre_quivergroup(ax)
    U3D_PRE_QUIVERGROUP Preprocess quiver output to u3d.
  • u3d_pre_surface(ax)
    U3D_PRE_SURFACE Preprocess surface output to u3d.
  • verbatim
    VERBATIM Get the text that appears in the next comment block.
  • view2vws(ax, filename, pa...
    VIE2VWS Saves current view in a views file for LaTeX media9 package.
  • test_fig2u3d_contour_surf.m
    function [] = test_fig2u3d_contour_surf
  • test_spiral.m
    function [] = test_fig2u3d_spiral
  • View all files
image thumbnail

Export figure to 3D interactive PDF

by

 

27 Jul 2012 (Updated )

Export figure as U3D file or directly to 3D interactive graphics within PDF.

idtf2u3d(idtffile, u3dfile)
function [] = idtf2u3d(idtffile, u3dfile)
%IDTF2U3D   Convert IDTF to U3D file.
%
% usage
%   IDTF2U3D
%   IDTF2U3D(IDTF_filename)
%   IDTF2U3D(IDTF_filename, U3D_filename)
%
% optional input
%   idtffile = filename string for IDTF file (default = 'matfig.idtf')
%   u3dfile = filename string for U3D file (default = 'matfig.u3d')
%
% output
%   Conerts the IDTF file into a U3D file which is saved to the disk.
%
% note
%   If only IDTF file name is provided without extension, then the '.idtf'
%   file extension is appended and the U3D file uses the same name with the
%   '.u3d' file extension appended.
%
%   If only the IDTF file name is provided with the extension '.idtf', then
%   the U3D file uses the same name with the '.idtf' extension replaced by
%   the extension '.u3d'.
%
%   If both file names are provided, any one without the appropriate
%   extension gets appended with that extension ('.idtf' and '.u3d',
%   respectively).
%
% reference
%   IDTF (Intermediate Data Text File) Format Description, Version 100,
%   Intel Corporation, 2005, available at:
%       http://u3d.svn.sourceforge.net/viewvc/u3d/releases/Gold12Update/Docs/IntermediateFormat/IDTF%20Format%20Description.pdf
%
% See also FIG2U3D, FIG2PDF3D, FIG2IDTF.
%
% File:      idtf2u3d.m
% Author:    Ioannis Filippidis, jfilippidis@gmail.com
% Date:      2011.02.17 - 2012.06.21
% Language:  MATLAB R2012a
% Purpose:   convert IDTF file to U3D file format
%
% Based on MESH_TO_LATEX.m by Alexandre Gramfort, which is part of
% "Matlab mesh to PDF with 3D interactive object"
% which is Copyright (c) by Alexandre Gramfort under the BSD License
% The link on the MATLAB Central File Exchange is:
% http://www.mathworks.com/matlabcentral/fileexchange/25383-matlab-mesh-to-pdf-with-3d-interactive-object

% depends
%   clear_file_extension, check_file_extension
%   IDTFConverter executables in ./bin directory

%% input
if nargin < 1
    idtffile = 'matfig.idtf';
    u3dfile = 'matfig.u3d';
end

if nargin < 2
    u3dfile = clear_file_extension(idtffile, '.idtf');
end

%% filenames & extensions

% fname extensions ok ?
idtffile = full_fname_with_extension(idtffile, 'idtf');
u3dfile = full_fname_with_extension(u3dfile, 'u3d');

%% prepare command
mfiledir = fileparts(mfilename('fullpath') );
curpath = pwd;

% Intel Mac
if ismac
    idtf_executable_path = [mfiledir, '/bin/maci/'];
    cd(idtf_executable_path)
    
    IDTFcmd = './IDTFConverter';
    
    %temp = [getenv('DYLD_LIBRARY_PATH'), ':"', mfiledir, '/bin/maci/"'];
    %setenv('DYLD_LIBRARY_PATH', temp)
    %IDTFcmd = ['"', mfiledir, '/bin/maci/', IDTFcmd, '"'];
end

% Linux
if isunix && ~ismac
    idtf_executable_path = [mfiledir, '/bin/glx/'];
    cd(idtf_executable_path)
    
    IDTFcmd = './IDTFConverter.sh';
    
    %temp = [getenv('LD_LIBRARY_PATH'), ':"', mfiledir, '/bin/glx/"'];
    %setenv('LD_LIBRARY_PATH', temp)
    %IDTFcmd = ['"', mfiledir, '/bin/glx/', IDTFcmd, '.sh"'];
end

% windows
if ispc
    win_mfiledir = strrep(mfiledir, '\', '\\');
    IDTFcmd = ['"', win_mfiledir, '\\bin\\w32\\IDTFConverter.exe"'];
end

%% idtf -> u3d conversion
s = [IDTFcmd, ' -input "%s" -output "%s"'];
idtf2u3dcmd = sprintf(s, idtffile, u3dfile);
disp(idtf2u3dcmd)
[status, result] = system(idtf2u3dcmd);
cd(curpath) % go back

disp(result)
if status ~= 0
    error('idtf2u3d:conversion',...
          'IDTFConverter executable returned with error.')
end

function [fname] = full_fname_with_extension(fname, extension)
fname = check_file_extension(fname, extension);
fname  = fullfile(cd, fname);

Contact us