source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/vrippack-0.31/src/march/fromden.c @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 1.5 KB
Line 
1/*
2
3Convert from Marc Levoy's .den file format to Paul Ning's slice format.
4
5Brian Curless - November 1993
6
7*/
8
9#include <stdio.h>
10#include <math.h>
11#include "defines.h"
12#include "levden.h"
13
14unsigned char *dens; 
15unsigned char *slice;
16
17
18/******************************************************************************
19Main routine.
20******************************************************************************/
21
22main(argc,argv)
23  int argc;
24  char *argv[];
25{
26  int i,j,k;
27  int fd;
28  char infile[80],outfile[80];
29  unsigned char swap[12];
30  int shd_version;
31  int xlen,ylen,zlen;
32  int total_len;
33  int density_size;
34  int index;
35  int result;
36  int val;
37
38  strcpy (infile, argv[1]);
39
40/*
41  if (strlen (infile) < 4 ||
42      strcmp (infile + strlen (infile) - 4, ".den") != 0)
43      strcat (infile, ".den");
44 
45  printf ("reading densities from '%s'\n", infile);
46
47*/
48
49  Load_DEN_File(infile, TRUE); 
50
51  dens = map_address;
52  xlen = map_len[X];
53  ylen = map_len[Y];
54  zlen = map_len[Z];
55
56  /* write to slice files */
57
58  slice = (unsigned char *) malloc (xlen * ylen);
59
60  for (i = 0; i < zlen; i++) {
61    sprintf (outfile, "slice.%0d", i);
62    index = i * xlen * ylen;
63    for (j = 0; j < xlen; j++)
64      for (k = 0; k < ylen; k++) {
65        slice[j * ylen + k] = dens[index];
66        index++;
67      }
68    printf ("writing file '%s'\n", outfile);
69    if ((fd = creat(outfile, 0666)) < 0) {
70      fprintf (stderr, "bad open\n");
71      exit (-1);
72    }
73    write (fd, slice, xlen * ylen);
74    close (fd);
75  }
76}
77
Note: See TracBrowser for help on using the repository browser.