cspice_dskv02 |
|||

## AbstractCSPICE_DSKV02 returns specified vertices from a type 2 DSK segment. ## I/OGiven: handle is the handle of a DSK file containing a type 2 segment from which data are to be fetched. [1,1] = size(handle); int32 = class(handle) dladsc is the DLA descriptor associated with the segment from which data are to be fetched. [SPICE_DLA_DSCSIZ,1] = size(dladsc) int32 = class(dladsc) start is the ID of the first vertex to be fetched from the segment designated by `handle' and `dladsc'. The ID of a vertex is its ordinal position within the segment. Vertex IDs range from 1 to NV, where NV is the number of vertices in the segment. [1,1] = size(start); int32 = class(start) Note that Fortran-style 1-based indexing is used for vertex IDs because these IDs must be consistent with the IDs used in DSK files, across all languages supported by SPICE. room is the maximum number of vertices to return. [1,1] = size(room); int32 = class(room) the call: [vrtces] = ## ExamplesAny numerical results shown for this example may differ between platforms as the results depend on the SPICE kernels used as input and the machine specific arithmetic implementation. Look up all the vertices associated with each plate of the model contained in a specified type 2 segment. For each plate, display the plate's vertices and normal vector. For this example, we'll show the context of this look-up: opening the DSK file for read access, traversing a trivial, one-segment list to obtain the segment of interest. function dskz02_t % % MiceUser globally defines DSK parameters. % For more information, please see DSKMiceUser.m and % DSKMice02.m. % MiceUser % % Constants % PBUFSIZ = 10000; % % Initial values % verts = zeros(3,3); % % Prompt for the name of a DSK file. % dsk = input( 'Enter DSK name > ','s'); % % Open the DSK file for read access. % We use the DAS-level interface for % this function. % handle = cspice_dasopr( dsk ); % % Begin a forward search through the % kernel, treating the file as a DLA. % In this example, it's a very short % search. % [dladsc, found] = cspice_dlabfs( handle ); if ~found % % We arrive here only if the kernel % contains no segments. This is % unexpected, but we're prepared for it. % fprintf( 'No segments found in DSK file %s\n', dsk ) return end % % If we made it this far, `dladsc' is the % DLA descriptor of the first segment. % % Get segment vertex and plate counts. % [nv, np] = cspice_dskz02( handle, dladsc ); fprintf( '\n' ) fprintf( 'Number of vertices: %d\n', nv ) fprintf( 'Number of plates: %d\n', np ) % % Display the vertices of each plate. % remain = np; start = 1; while (remain > 0 ) % % `nread' is the number of plates we"ll read on this % loop pass. Set `nread' to the minimum of PBUFSIZ % and `remain'. % nread = min(PBUFSIZ, remain); plates = cspice_dskp02( handle, dladsc, start, nread ); for i = 1:(nread) plix = start + i - 1; % % Read the vertices of the current plate. % for j = 1:3 verts(j,:) = ## ParticularsNone. ## Required ReadingFor important details concerning this module's function, please refer to the CSPICE routine dskv02_c. MICE.REQ DAS.REQ DSK.REQ ## Version-Mice Version 1.0.0, 04-APR-2017, NJB (JPL), EDW (JPL), ML (JPL) ## Index_Entriesreturn specified vertices from type 2 DSK segment |

Wed Apr 5 18:00:31 2017