This file is indexed.

/usr/include/geomview/private/mgribP.h is in libgeomview-dev 1.9.4-4.1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/* Copyright (C) 1992-1998 The Geometry Center
 * Copyright (C) 1998-2000 Stuart Levy, Tamara Munzner, Mark Phillips
 * Copyright (C) 2007 Claus-Justus Heine
 *
 * This file is part of Geomview.
 * 
 * Geomview is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published
 * by the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 * 
 * Geomview is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with Geomview; see the file COPYING.  If not, write
 * to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
 * USA, or visit http://www.gnu.org.
 */

#if HAVE_CONFIG_H
# include "config.h"
#endif

#include <stdio.h>
#include "mg.h"
#include "mgP.h"
#include "mgrib.h"
#include "mgribtoken.h"
#include "transform.h"
#include "bezierP.h"

#define DEFAULT_RIB_FILE "geom.rib"

typedef struct mgribcontext {
  struct mgcontext mgctx;	/* The mgcontext */
  bool born;			/* Has window been displayed on the screen? */
  int win;			/* window ID, or 0 */
  int world;                    /* inc/decremented by worldbegin()/end() */
  int persp;                    /* camera projection */
  float focallen;               /* focallen */

  enum { RMD_ASCII, RMD_BINARY } render_device;	/* Device Options */

/* Which line drawing technique?
 * MG_RIBPOLYGON for creating RIB tokens true to OOGL/geomview, but may appear
 *    incorrect when viewed dynamically
 * MG_RIBCYLINDER for creating RIB tokens which may be dynamically viewed, but
 *    may not be true to OOGL/geomview
 * MG_RIBPRMANLINE for NeXT Renderer - May Cause Incompatibilities!
 * Note: Future versions of renderman should support line drawing, NeXT does
 * now.
 */
  enum line_mode {
    RM_POLYGON = MG_RIBPOLYGON,
    RM_CYLINDER = MG_RIBCYLINDER,
    RM_PRMANLINE = MG_RIBPRMANLINE
  } line_mode;

  /* MG_RIBFRAME: render to framebuffer (screen window)
   * MG_RIBTIFF: render to file
   */
  enum display { RM_FRAME = MG_RIBFRAME, RM_RIBTIFF = MG_RIBTIFF } display;

  FILE *rib;
  bool rib_close; /* set to true if we have opened rib ourselves */
  char displayname[PATH_MAX]; /* if display == MG_RIFILE, name of the file */
  char displaypath[PATH_MAX]; /* dirname(display), if MG_RIFILE */
  char displaybase[PATH_MAX]; /* basename(display), if MG_RIFILE */
  const char *tmppath;

  /* MG_RIBDOBG: simulate colored background w/ polygon
   * MG_RIBNOBG: no background simulation (defualt)
   */
  enum backing { RB_DOBG = MG_RIBDOBG, RB_NOBG = MG_RIBNOBG } backing;

  /* MG_RIBSTDSHADE: uses standard shader
   * MG_RIBEXTSHADE: uses extended shaders (eplastic,
   * heplastic, hplastic)
   *
   * + the shaders needed to support Geomview's texture model
   * (modulate/decal/blend), including alpha channel support.
   */
  enum shader {
    RM_STDSHADE = MG_RIBSTDSHADE,
    RM_EXTSHADE = MG_RIBEXTSHADE
  } shader;

  char *shadepath;	/* path to extended shaders or user shaders */
  char ribscene[128];	/* scene name for RIB 1.0 file comments */
  char ribcreator[128]; /* creator field for RIB 1.0 file comments */
  			/* defaults to "mgrib driver" */
  char ribfor[128];	/* for(user) field for RIB 1.0 file comments */
  			/* defaults to user account name */
  char ribdate[128];	/* creation date, defualts to today's date */
  Texture **tx ;        /* array of textures used; texture images are
			 * dumped to disk with
			 * displayname.#seq.tiff. Textures are
			 * considered equal (for this purpose) if they
			 * refer to the same image and have the same
			 * clamping settings (we leave the clamping to
			 * MakeTexture, that is the reason).
			 */
  int n_tximg;          /* How many of them */
  int n_txdumped;       /* How many already got their MakeTexture line */

  TokenBuffer worldbuf; /* buffer for everything except MakeTexture */
  TokenBuffer txbuf;    /* buffer for MakeTexture */
} mgribcontext;

/* Make some convenient defines */
#define RiDEV  _mgribc->render_device
#define NotImplemented(name) fprintf(stderr,"%s is not yet implemented.\n",name);

#define _mgribc		((mgribcontext*)_mgc)
#define RI_INFINITY 1.0e38

void mgrib_printmatrix(Transform T);
void mgrib_drawline(HPoint3 *p1, HPoint3 *p2);
void mgrib_drawpoint(HPoint3 *p);
void mgrib_drawnormal(HPoint3 *p, Point3 *n);


static inline void
mgrib_mktexname(char *txname, int seq, const char *path, const char *suffix)
{
  if (snprintf(txname, PATH_MAX, "%s%s%s-tx%d.%s",
	       path ? path : "", path ? "/" : "",
	       _mgribc->displaybase, seq, suffix) >= PATH_MAX) {
    OOGLError(1, "path to texture-file exceedsd maximum length %d", PATH_MAX);
  }
}

/*
 * Local Variables: ***
 * mode: c ***
 * c-basic-offset: 2 ***
 * End: ***
 */