|
ATLAS Offline Software
|
#include "VP1HEPVis/gl2ps.h"
#include <math.h>
#include <string.h>
#include <sys/types.h>
#include <stdarg.h>
#include <time.h>
#include <float.h>
Go to the source code of this file.
|
GL2PSDLL_API GLint | gl2psBeginPage (const char *title, const char *producer, GLint viewport[4], GLint format, GLint sort, GLint options, GLint colormode, GLint colorsize, GL2PSrgba *colormap, GLint nr, GLint ng, GLint nb, GLint buffersize, FILE *stream, const char *filename) |
|
GL2PSDLL_API GLint | gl2psEndPage (void) |
|
GL2PSDLL_API GLint | gl2psBeginViewport (GLint viewport[4]) |
|
GL2PSDLL_API GLint | gl2psEndViewport (void) |
|
GL2PSDLL_API GLint | gl2psTextOpt (const char *str, const char *fontname, GLshort fontsize, GLint alignment, GLfloat angle) |
|
GL2PSDLL_API GLint | gl2psText (const char *str, const char *fontname, GLshort fontsize) |
|
GL2PSDLL_API GLint | gl2psSpecial (GLint format, const char *str) |
|
GL2PSDLL_API GLint | gl2psDrawPixels (GLsizei width, GLsizei height, GLint xorig, GLint yorig, GLenum format, GLenum type, const void *pixels) |
|
GL2PSDLL_API GLint | gl2psDrawImageMap (GLsizei width, GLsizei height, const GLfloat position[3], const unsigned char *imagemap) |
|
GL2PSDLL_API GLint | gl2psEnable (GLint mode) |
|
GL2PSDLL_API GLint | gl2psDisable (GLint mode) |
|
GL2PSDLL_API GLint | gl2psPointSize (GLfloat value) |
|
GL2PSDLL_API GLint | gl2psLineWidth (GLfloat value) |
|
GL2PSDLL_API GLint | gl2psBlendFunc (GLenum sfactor, GLenum dfactor) |
|
GL2PSDLL_API GLint | gl2psSetOptions (GLint options) |
|
GL2PSDLL_API GLint | gl2psGetOptions (GLint *options) |
|
GL2PSDLL_API const char * | gl2psGetFileExtension (GLint format) |
|
GL2PSDLL_API const char * | gl2psGetFormatDescription (GLint format) |
|
◆ GL2PS_BEGIN_BLEND_TOKEN
#define GL2PS_BEGIN_BLEND_TOKEN 9 |
◆ GL2PS_BEGIN_BOUNDARY_TOKEN
#define GL2PS_BEGIN_BOUNDARY_TOKEN 3 |
◆ GL2PS_BEGIN_OFFSET_TOKEN
#define GL2PS_BEGIN_OFFSET_TOKEN 1 |
◆ GL2PS_BEGIN_STIPPLE_TOKEN
#define GL2PS_BEGIN_STIPPLE_TOKEN 5 |
◆ GL2PS_COINCIDENT
#define GL2PS_COINCIDENT 1 |
◆ GL2PS_DRAW_PIXELS_TOKEN
#define GL2PS_DRAW_PIXELS_TOKEN 14 |
◆ GL2PS_DST_BLEND_TOKEN
#define GL2PS_DST_BLEND_TOKEN 12 |
◆ GL2PS_END_BLEND_TOKEN
#define GL2PS_END_BLEND_TOKEN 10 |
◆ GL2PS_END_BOUNDARY_TOKEN
#define GL2PS_END_BOUNDARY_TOKEN 4 |
◆ GL2PS_END_OFFSET_TOKEN
#define GL2PS_END_OFFSET_TOKEN 2 |
◆ GL2PS_END_STIPPLE_TOKEN
#define GL2PS_END_STIPPLE_TOKEN 6 |
◆ GL2PS_EPSILON
#define GL2PS_EPSILON 5.0e-3F |
◆ GL2PS_IMAGEMAP
◆ GL2PS_IMAGEMAP_TOKEN
#define GL2PS_IMAGEMAP_TOKEN 13 |
◆ GL2PS_IMAGEMAP_VISIBLE
#define GL2PS_IMAGEMAP_VISIBLE 9 |
◆ GL2PS_IMAGEMAP_WRITTEN
#define GL2PS_IMAGEMAP_WRITTEN 8 |
◆ GL2PS_IN_BACK_OF
#define GL2PS_IN_BACK_OF 3 |
◆ GL2PS_IN_FRONT_OF
#define GL2PS_IN_FRONT_OF 2 |
◆ GL2PS_LINE
◆ GL2PS_LINE_WIDTH_TOKEN
#define GL2PS_LINE_WIDTH_TOKEN 8 |
◆ GL2PS_NO_TYPE
◆ GL2PS_PIXMAP
◆ GL2PS_POINT
◆ GL2PS_POINT_BACK
#define GL2PS_POINT_BACK 2 |
◆ GL2PS_POINT_COINCIDENT
#define GL2PS_POINT_COINCIDENT 0 |
◆ GL2PS_POINT_INFRONT
#define GL2PS_POINT_INFRONT 1 |
◆ GL2PS_POINT_SIZE_TOKEN
#define GL2PS_POINT_SIZE_TOKEN 7 |
◆ GL2PS_QUADRANGLE
#define GL2PS_QUADRANGLE 4 |
◆ GL2PS_SPANNING
◆ GL2PS_SPECIAL
◆ GL2PS_SRC_BLEND_TOKEN
#define GL2PS_SRC_BLEND_TOKEN 11 |
◆ GL2PS_TEXT
◆ GL2PS_TEXT_TOKEN
#define GL2PS_TEXT_TOKEN 15 |
◆ GL2PS_TRIANGLE
◆ GL2PS_ZERO
#define GL2PS_ZERO |
( |
|
arg | ) |
(fabs(arg) < 1.e-20) |
◆ GL2PS_ZOFFSET
#define GL2PS_ZOFFSET 5.0e-2F |
◆ GL2PS_ZOFFSET_LARGE
#define GL2PS_ZOFFSET_LARGE 20.0F |
◆ GL2PS_ZSCALE
#define GL2PS_ZSCALE 1000.0F |
◆ GL2PSbsptree
◆ GL2PSbsptree2d
◆ GL2PSimagemap
◆ GL2PSplane
typedef GLfloat GL2PSplane[4] |
◆ GL2PSxyz
typedef GLfloat GL2PSxyz[3] |
◆ GL2PS_TRIANGLE_PROPERTY
Enumerator |
---|
T_UNDEFINED | |
T_CONST_COLOR | |
T_VAR_COLOR | |
T_ALPHA_1 | |
T_ALPHA_LESS_1 | |
T_VAR_ALPHA | |
Definition at line 117 of file gl2ps.cxx.
◆ gl2psBeginPage()
GL2PSDLL_API GLint gl2psBeginPage |
( |
const char * |
title, |
|
|
const char * |
producer, |
|
|
GLint |
viewport[4], |
|
|
GLint |
format, |
|
|
GLint |
sort, |
|
|
GLint |
options, |
|
|
GLint |
colormode, |
|
|
GLint |
colorsize, |
|
|
GL2PSrgba * |
colormap, |
|
|
GLint |
nr, |
|
|
GLint |
ng, |
|
|
GLint |
nb, |
|
|
GLint |
buffersize, |
|
|
FILE * |
stream, |
|
|
const char * |
filename |
|
) |
| |
Definition at line 5582 of file gl2ps.cxx.
5593 gl2psMsg(
GL2PS_ERROR,
"gl2psBeginPage called in wrong program state");
5599 if(
format >= 0 &&
format < (GLint)(
sizeof(gl2psbackends) /
sizeof(gl2psbackends[0]))){
5616 gl2psMsg(
GL2PS_ERROR,
"Unknown sorting algorithm: %d", sort);
5640 glGetIntegerv(GL_VIEWPORT, gl2ps->
viewport);
5643 for(
i = 0;
i < 4;
i++){
5649 gl2psMsg(
GL2PS_ERROR,
"Incorrect viewport (x=%d, y=%d, width=%d, height=%d)",
5657 gl2ps->
threshold[0] = nr ? 1.0F / (GLfloat)nr : 0.064
F;
5661 gl2ps->
buffersize = buffersize > 0 ? buffersize : 2048 * 2048;
5662 for(
i = 0;
i < 3;
i++){
5665 for(
i = 0;
i < 4;
i++){
5682 glGetIntegerv(GL_BLEND_SRC, &gl2ps->
blendfunc[0]);
5683 glGetIntegerv(GL_BLEND_DST, &gl2ps->
blendfunc[1]);
5688 glGetFloatv(GL_COLOR_CLEAR_VALUE, gl2ps->
bgcolor);
5690 else if(gl2ps->
colormode == GL_COLOR_INDEX){
5691 if(!colorsize || !colormap){
5692 gl2psMsg(
GL2PS_ERROR,
"Missing colormap for GL_COLOR_INDEX rendering");
5700 glGetIntegerv(GL_INDEX_CLEAR_VALUE, &
index);
5707 gl2psMsg(
GL2PS_ERROR,
"Unknown color mode in gl2psBeginPage");
5714 gl2ps->
title = (
char*)gl2psMalloc(
sizeof(
char));
5715 gl2ps->
title[0] =
'\0';
5718 gl2ps->
title = (
char*)gl2psMalloc((strlen(
title)+1)*
sizeof(
char));
5723 gl2ps->
producer = (
char*)gl2psMalloc(
sizeof(
char));
5727 gl2ps->
producer = (
char*)gl2psMalloc((strlen(producer)+1)*
sizeof(
char));
5732 gl2ps->
filename = (
char*)gl2psMalloc(
sizeof(
char));
5744 glRenderMode(GL_FEEDBACK);
◆ gl2psBeginViewport()
◆ gl2psBlendFunc()
GL2PSDLL_API GLint gl2psBlendFunc |
( |
GLenum |
sfactor, |
|
|
GLenum |
dfactor |
|
) |
| |
Definition at line 6000 of file gl2ps.cxx.
6004 if(GL_FALSE == gl2psSupportedBlendMode(sfactor, dfactor))
6008 glPassThrough((GLfloat)sfactor);
6010 glPassThrough((GLfloat)dfactor);
◆ gl2psDisable()
◆ gl2psDrawImageMap()
GL2PSDLL_API GLint gl2psDrawImageMap |
( |
GLsizei |
width, |
|
|
GLsizei |
height, |
|
|
const GLfloat |
position[3], |
|
|
const unsigned char * |
imagemap |
|
) |
| |
Definition at line 5896 of file gl2ps.cxx.
5900 int sizeoffloat =
sizeof(GLfloat);
5906 size = height + height * ((
width - 1) / 8);
5909 glVertex3f(position[0], position[1],position[2]);
5911 glPassThrough((GLfloat)
width);
5912 glPassThrough((GLfloat)height);
5913 for(
i = 0;
i <
size;
i += sizeoffloat){
5915 const float *
value =
reinterpret_cast<const float*
>(imagemap);
5916 glPassThrough(*
value);
5917 imagemap += sizeoffloat;
◆ gl2psDrawPixels()
GL2PSDLL_API GLint gl2psDrawPixels |
( |
GLsizei |
width, |
|
|
GLsizei |
height, |
|
|
GLint |
xorig, |
|
|
GLint |
yorig, |
|
|
GLenum |
format, |
|
|
GLenum |
type, |
|
|
const void * |
pixels |
|
) |
| |
Definition at line 5815 of file gl2ps.cxx.
5821 GLfloat
pos[4], *piv;
5832 gl2psMsg(
GL2PS_ERROR,
"gl2psDrawPixels only implemented for "
5833 "GL_RGB/GL_RGBA, GL_FLOAT pixels");
5837 glGetBooleanv(GL_CURRENT_RASTER_POSITION_VALID, &
valid);
5840 glGetFloatv(GL_CURRENT_RASTER_POSITION,
pos);
5855 glGetFloatv(GL_CURRENT_RASTER_COLOR, prim->
verts[0].
rgba);
5869 piv = (GLfloat*)pixels;
5870 for(
i = 0;
i <
size; ++
i, ++piv){
◆ gl2psEnable()
Definition at line 5922 of file gl2ps.cxx.
5931 glGetFloatv(GL_POLYGON_OFFSET_FACTOR, &gl2ps->
offset[0]);
5932 glGetFloatv(GL_POLYGON_OFFSET_UNITS, &gl2ps->
offset[1]);
5939 glGetIntegerv(GL_LINE_STIPPLE_PATTERN, &
tmp);
5940 glPassThrough((GLfloat)
tmp);
5941 glGetIntegerv(GL_LINE_STIPPLE_REPEAT, &
tmp);
5942 glPassThrough((GLfloat)
tmp);
◆ gl2psEndPage()
Definition at line 5749 of file gl2ps.cxx.
5755 res = gl2psPrintPrimitives();
5766 gl2psFree(gl2ps->
title);
◆ gl2psEndViewport()
◆ gl2psGetFileExtension()
Definition at line 6036 of file gl2ps.cxx.
6038 if(
format >= 0 &&
format < (GLint)(
sizeof(gl2psbackends) /
sizeof(gl2psbackends[0])))
6041 return "Unknown format";
◆ gl2psGetFormatDescription()
Definition at line 6044 of file gl2ps.cxx.
6046 if(
format >= 0 &&
format < (GLint)(
sizeof(gl2psbackends) /
sizeof(gl2psbackends[0])))
6049 return "Unknown format";
◆ gl2psGetOptions()
◆ gl2psLineWidth()
◆ gl2psPointSize()
◆ gl2psSetOptions()
◆ gl2psSpecial()
◆ gl2psText()
◆ gl2psTextOpt()
GL2PSDLL_API GLint gl2psTextOpt |
( |
const char * |
str, |
|
|
const char * |
fontname, |
|
|
GLshort |
fontsize, |
|
|
GLint |
alignment, |
|
|
GLfloat |
angle |
|
) |
| |
#define GL2PS_DRAW_PIXELS_TOKEN
GL2PSbsptree2d * imagetree
#define GL2PS_LINE_WIDTH_TOKEN
GL2PSimagemap * imagemap_tail
#define GL2PS_DST_BLEND_TOKEN
void(* printFooter)(void)
GLint(* endViewport)(void)
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
void(* beginViewport)(GLint viewport[4])
#define GL2PS_BEGIN_BOUNDARY_TOKEN
#define GL2PS_NO_BLENDING
double angle(const GeoTrf::Vector2D &a, const GeoTrf::Vector2D &b)
std::pair< std::vector< unsigned int >, bool > res
union GL2PSprimitive::@64 data
#define GL2PS_END_BOUNDARY_TOKEN
#define GL2PS_BEGIN_STIPPLE_TOKEN
#define GL2PS_BEGIN_OFFSET_TOKEN
GL2PSlist * auxprimitives
constexpr size_t alignment
#define GL2PS_LINE_STIPPLE
#define GL2PS_BEGIN_BLEND_TOKEN
#define GL2PS_POINT_SIZE_TOKEN
#define GL2PS_END_STIPPLE_TOKEN
#define GL2PS_SIMPLE_SORT
#define GL2PS_POLYGON_BOUNDARY
#define GL2PS_SRC_BLEND_TOKEN
#define GL2PS_IMAGEMAP_TOKEN
#define GL2PS_UNINITIALIZED
#define GL2PS_END_OFFSET_TOKEN
const char * file_extension
#define GL2PS_USE_CURRENT_VIEWPORT
#define GL2PS_END_BLEND_TOKEN
GL2PSprimitive * primitivetoadd
GLboolean zerosurfacearea
GL2PSimagemap * imagemap_head
#define GL2PS_POLYGON_OFFSET_FILL