![]() |
OpenGI 2.1
Easy parameterization and Geometry Image creation
|
The main header file of the OpenGI library. More...
Defines | |
Standard constants | |
#define | GI_TRUE 1 |
Boolean value true. | |
#define | GI_FALSE 0 |
Boolean value false. | |
#define | GI_NULL 0 |
Zero value. | |
#define | GI_NONE 0 |
Zero identifier. | |
#define | GI_ALL_PATCHES -1 |
Whole mesh. | |
Data types (OpenGL compatible) | |
#define | GI_BYTE 0x1400 |
Signed byte. | |
#define | GI_UNSIGNED_BYTE 0x1401 |
Unsigned byte. | |
#define | GI_SHORT 0x1402 |
Signed short integer. | |
#define | GI_UNSIGNED_SHORT 0x1403 |
Unsigned short integer. | |
#define | GI_INT 0x1404 |
Signed integer. | |
#define | GI_UNSIGNED_INT 0x1405 |
Unsigned integer. | |
#define | GI_FLOAT 0x1406 |
Single precision float. | |
#define | GI_DOUBLE 0x140A |
Double precision float. | |
#define | GI_HALF_FLOAT 0x140B |
Half precision float. | |
Enable flags | |
#define | GI_MULTITHREADING 0x0100 |
Use multithreading. | |
#define | GI_EXACT_MAPPING_SUBSET 0x0110 |
Vertices mapped to exact texels. | |
#define | GI_PARAM_CORNER_SUBSET 0x0111 |
Vertices mapped to parameter domain corners. | |
State parameters | |
#define | GI_VERSION 0x0200 |
OpenGI version. | |
#define | GI_MAX_ATTRIBS 0x0201 |
Number of supported custom attributes. | |
#define | GI_MESH_BINDING 0x0202 |
Current bound mesh. | |
#define | GI_IMAGE_BINDING 0x0203 |
Current bound image for active texture unit. | |
#define | GI_SAMPLED_ATTRIB_COUNT 0x0204 |
Number of sampled attributes. | |
#define | GI_SAMPLED_ATTRIBS 0x0205 |
Flags indicating sampled attributes. | |
#define | GI_EXACT_MAPPING_SUBSET_COUNT 0x0210 |
Number of elements in exact mapping subset. | |
#define | GI_PARAM_CORNER_SUBSET_COUNT 0x0211 |
Number of elements in corner subset. | |
#define | GI_EXACT_MAPPING_SUBSET_SORTED 0x0220 |
Sorted flag for exact mapping subset. | |
#define | GI_PARAM_CORNER_SUBSET_SORTED 0x0221 |
Sorted flag for corner subset. | |
Special attribute semantics | |
#define | GI_POSITION_ATTRIB 0x0300 |
Vertex position. | |
#define | GI_PARAM_ATTRIB 0x0301 |
Parameter coordinates. | |
#define | GI_PARAM_STRETCH_ATTRIB 0x0302 |
Per-param stretch values. | |
Attribute state | |
#define | GI_ATTRIB_ARRAY_ENABLED 0x0400 |
Enabled flag. | |
#define | GI_ATTRIB_ARRAY_SIZE 0x0401 |
Number of components. | |
#define | GI_ATTRIB_ARRAY_STRIDE 0x0402 |
Stride value. | |
#define | GI_ATTRIB_ARRAY_NORMALIZED 0x0403 |
Normalization flag. | |
#define | GI_ATTRIB_ARRAY_SEMANTIC 0x0404 |
Semantic if bound to any. | |
#define | GI_ATTRIB_IMAGE 0x0405 |
Currently bound image. | |
Mesh and patch properties | |
#define | GI_HAS_CUT 0x0500 |
Mesh has valid cut. | |
#define | GI_HAS_PARAMS 0x0501 |
Mesh has UVs. | |
#define | GI_PATCH_COUNT 0x0502 |
Number of patches. | |
#define | GI_FACE_COUNT 0x0503 |
Number of faces. | |
#define | GI_EDGE_COUNT 0x0504 |
Number of edges. | |
#define | GI_VERTEX_COUNT 0x0505 |
Number of vertices. | |
#define | GI_PARAM_COUNT 0x0506 |
Number of UVs. | |
#define | GI_AABB_MIN 0x0507 |
Minimal vertex of AABB. | |
#define | GI_AABB_MAX 0x0508 |
Maximal vertex of AABB. | |
#define | GI_RADIUS 0x0509 |
Radius of bounding sphere around origin. | |
#define | GI_ACTIVE_PATCH 0x050A |
Active patch. | |
#define | GI_MIN_PARAM_STRETCH 0x050B |
Minimum param stretch value. | |
#define | GI_MAX_PARAM_STRETCH 0x050C |
Maximum param stretch value. | |
#define | GI_PARAM_STRETCH_METRIC 0x050D |
Metric of param stretch values. | |
#define | GI_TOPOLOGICAL_SIDEBAND_LENGTH 0x050E |
Length of topological sideband. | |
#define | GI_TOPOLOGICAL_SIDEBAND 0x050F |
Topological sideband (cut path information). | |
Per-mesh attribute state | |
#define | GI_HAS_ATTRIB 0x0600 |
Mesh has attrib. | |
#define | GI_ATTRIB_SIZE 0x0601 |
Number of components. | |
#define | GI_ATTRIB_NORMALIZED 0x0602 |
Normalization flag. | |
#define | GI_ATTRIB_SEMANTIC 0x0603 |
Attribute semantic. | |
Cutting parameters | |
#define | GI_CUTTER 0x0700 |
Cutting algorithm. | |
#define | GI_SUBDIVISION_ITERATIONS 0x0701 |
Iterations for subdivision algorithms. | |
#define | GI_INITIAL_GIM 0x0710 |
Initial cut of original GIM algorithm. | |
#define | GI_CATMULL_CLARK_SUBDIVISION 0x0711 |
Catmull-Clark subdivision patchification. | |
#define | GI_LOOP_SUBDIVISION 0x0712 |
Loop subdivision patchification. | |
Parameterization parameters | |
#define | GI_PARAMETERIZER 0x0800 |
Parameterization algorithm. | |
#define | GI_INITIAL_PARAMETERIZATION 0x0801 |
Initial parameterization for stretch minimizer. | |
#define | GI_STRETCH_METRIC 0x0802 |
Stretch metric to minimize. | |
#define | GI_CONFORMAL_WEIGHT 0x0803 |
Conformal weight for intrinsic parameterization. | |
#define | GI_AUTHALIC_WEIGHT 0x0804 |
Authalic weight for intrinsic parameterization. | |
#define | GI_STRETCH_WEIGHT 0x0805 |
Eta parameter for stretch minimizer. | |
#define | GI_PARAM_RESOLUTION 0x0806 |
Desired minimal resolution for sampling. | |
#define | GI_UNSYMMETRIC_SOLVER 0x0807 |
Solver for unsymmetric systems. | |
#define | GI_AREA_WEIGHT 0x0808 |
Theta parameter for combined energy. | |
#define | GI_PARAM_SOURCE_ATTRIB 0x0809 |
Attribute to use as parameter coords. | |
#define | GI_PARAM_DOMAIN 0x080A |
Domain of parameter coordinates. | |
#define | GI_FROM_ATTRIB 0x0810 |
Set attrib as parameter coordinates. | |
#define | GI_TUTTE_BARYCENTRIC 0x0811 |
Tutte's Barycentric parameterization. | |
#define | GI_SHAPE_PRESERVING 0x0812 |
Floater's Shape Preserving parameterization. | |
#define | GI_DISCRETE_HARMONIC 0x0813 |
Eck's Discrete Harmonic parameterization. | |
#define | GI_MEAN_VALUE 0x0814 |
Floater's Mean Value parameterization. | |
#define | GI_DISCRETE_AUTHALIC 0x0815 |
Desbrun's Discrete Authalic parameterization. | |
#define | GI_INTRINSIC 0x0816 |
Desbrun's Intrinsic parameterization. | |
#define | GI_STRETCH_MINIMIZING 0x0817 |
Yoshizawa's stretch minimizing parameterization. | |
#define | GI_GIM 0x0818 |
Gu's original Geometry Image parameterization. | |
#define | GI_SOLVER_BICGSTAB 0x0820 |
BiCGStab solver. | |
#define | GI_SOLVER_GMRES 0x0821 |
GMRES(m) solver. | |
#define | GI_PARAM_STARTED 0x0830 |
Callback for parameterization start. | |
#define | GI_PARAM_CHANGED 0x0831 |
Callback for parameterization change. | |
#define | GI_PARAM_FINISHED 0x0832 |
Callback for parameterization end. | |
#define | GI_UNKNOWN_DOMAIN 0x0000 |
Unknown parameterization domain. | |
#define | GI_SQUARE_DOMAIN 0x0840 |
Unit square. | |
#define | GI_TRIANGLE_DOMAIN 0x0841 |
Unit triangle. | |
Stretch metrics | |
#define | GI_MAX_GEOMETRIC_STRETCH 0x0900 |
Linf stretch as defined by Sander et al. | |
#define | GI_RMS_GEOMETRIC_STRETCH 0x0901 |
L2 stretch as defined by Sander et al. | |
#define | GI_COMBINED_STRETCH 0x0902 |
Combined energy as defined by Degener et al. | |
Image properties | |
#define | GI_IMAGE_WIDTH 0x0A00 |
Width of image. | |
#define | GI_IMAGE_HEIGHT 0x0A01 |
Height of image. | |
#define | GI_IMAGE_COMPONENTS 0x0A02 |
Number of components. | |
#define | GI_IMAGE_TYPE 0x0A03 |
Data type of image elements. | |
#define | GI_GL_IMAGE_TEXTURE 0x0A04 |
OpenGL texture object of image (if texture storage). | |
#define | GI_GL_IMAGE_BUFFER 0x0A05 |
OpenGL buffer object of image (if buffer storage). | |
#define | GI_IMAGE_DATA 0x0A06 |
RAM address of image data (if RAM storage). | |
#define | GI_IMAGE_STORAGE 0x0A07 |
Storage mode of image. | |
#define | GI_SUBIMAGE_X 0x0A08 |
X-offset of sub-image. | |
#define | GI_SUBIMAGE_Y 0x0A09 |
X-offset of sub-image. | |
#define | GI_SUBIMAGE_WIDTH 0x0A0A |
Width of sub-image. | |
#define | GI_SUBIMAGE_HEIGHT 0x0A0B |
Height of sub-image. | |
#define | GI_SUBIMAGE 0x0A0C |
Sub-image rectangle as 4 ints. | |
#define | GI_EXTERNAL_DATA 0x0A10 |
Image stored in user-owned RAM. | |
#define | GI_GL_TEXTURE_DATA 0x0A11 |
Image stored in user-owned GL texture. | |
#define | GI_GL_BUFFER_DATA 0x0A12 |
Image stored in user-owned GL buffer. | |
#define | GI_NO_IMAGE_DATA 0x0A13 |
Image data not yet specified. | |
Sampling parameters | |
#define | GI_SAMPLER 0x0B00 |
Sampler to use. | |
#define | GI_SAMPLER_USE_SHADER 0x0B01 |
Use GLSL if supported. | |
#define | GI_SAMPLER_USE_RENDER_TO_TEXTURE 0x0B02 |
Use framebuffer objects if supported. | |
#define | GI_SAMPLER_SOFTWARE 0x0B10 |
Software sampling. | |
#define | GI_SAMPLER_OPENGL 0x0B11 |
Hardware accelerated sampling using OpenGL. | |
Per-attribute sampling parameters | |
#define | GI_SAMPLING_MODE 0x0C00 |
Sampling style. | |
#define | GI_SAMPLING_TRANSFORM 0x0C01 |
Transformation matrix. | |
#define | GI_TEXTURE_DIMENSION 0x0C02 |
Dimension of OpenGL texture. | |
#define | GI_GL_SAMPLE_TEXTURE 0x0C03 |
OpenGL texture to resample. | |
#define | GI_SAMPLE_DIAGONAL_CORRECTION 0x0C04 |
Adjust upper subdiagonal for correct triangular interpolation. | |
#define | GI_SAMPLE_DEFAULT 0x0000 |
Standard sampling. | |
#define | GI_SAMPLE_NORMALIZED 0x0C10 |
Normalize after interpolation. | |
#define | GI_SAMPLE_TEXTURED 0x0C11 |
Resample texture. | |
Render parameters | |
#define | GI_GL_USE_VERTEX_TEXTURE 0x0001 |
Use vertex texturing for GIM rendering. | |
#define | GI_GL_USE_GEOMETRY_SHADER 0x0002 |
Use geometry shader for GIM rendering. | |
#define | GI_GL_PER_VERTEX_ATTRIBS 0x0004 |
Use per vertex color and normal. | |
#define | GI_RENDER_RESOLUTION_U 0x0D03 |
U-resolution of base mesh for GIM rendering. | |
#define | GI_RENDER_RESOLUTION_V 0x0D04 |
V-resolution of base mesh for GIM rendering. | |
#define | GI_RENDER_CACHE_SIZE 0x0D05 |
Size of cache for geometry image rendering. | |
#define | GI_GIM_TYPE 0x0D06 |
Shape of geometry image. | |
#define | GI_RECTANGULAR_GIM 0x0D10 |
Rectangular geometry image. | |
#define | GI_TRIANGULAR_GIM 0x0D11 |
Triangular geometry image. | |
Per-attribute render parameters | |
#define | GI_GL_RENDER_SEMANTIC 0x0E00 |
Render semantic. | |
#define | GI_GL_RENDER_CHANNEL 0x0E01 |
Render channel (for attribs and texCoords). | |
#define | GI_TEXTURE_COORD_DOMAIN 0x0E02 |
TexCoord domain for images. | |
#define | GI_GL_VERTEX 0x0E10 |
Use attribute as glVertex. | |
#define | GI_GL_NORMAL 0x0E11 |
Use attribute as glNormal. | |
#define | GI_GL_COLOR 0x0E12 |
Use attribute as glColor. | |
#define | GI_GL_SECONDARY_COLOR 0x0E13 |
Use attribute as glSecondaryColor. | |
#define | GI_GL_FOG_COORD 0x0E14 |
Use attribute as glFogCoord. | |
#define | GI_GL_EVAL_COORD 0x0E15 |
Use attribute as glEvalCoord. | |
#define | GI_GL_TEXTURE_COORD 0x0E16 |
Use attribute as gl[Multi]TexCoord. | |
#define | GI_GL_VERTEX_ATTRIB 0x0E17 |
Use attribute as glVertexAttrib. | |
#define | GI_UNIT_SQUARE 0x0E20 |
0-1-square. | |
#define | GI_HALF_TEXEL_INDENT 0x0E21 |
0-1-square indented by half a texel. | |
Error codes | |
#define | GI_NO_ERROR 0x0000 |
No error encountered. | |
#define | GI_INVALID_ENUM 0x1000 |
Wrong enum value. | |
#define | GI_INVALID_OPERATION 0x1001 |
Wrong operation in current state. | |
#define | GI_INVALID_VALUE 0x1002 |
Numeric value out of range. | |
#define | GI_INVALID_ID 0x1003 |
Object ID not existent. | |
#define | GI_INVALID_MESH 0x1004 |
Non-manifold mesh. | |
#define | GI_INVALID_CUT 0x1005 |
Cut incomplete. | |
#define | GI_NUMERICAL_ERROR 0x1006 |
Error in numerical routine. | |
#define | GI_UNSUPPORTED_OPERATION 0x1007 |
Feature not supported. | |
#define | GI_INVALID_PARAMETERIZATION 0x1008 |
No unit square. | |
Typedefs | |
typedef unsigned int | GIenum |
Enumaration type. | |
typedef unsigned char | GIboolean |
Boolean type. | |
typedef unsigned int | GIbitfield |
Bitfield type. | |
typedef char | GIchar |
Character type. | |
typedef signed char | GIbyte |
1 byte signed integer type. | |
typedef short | GIshort |
2 byte signed integer type. | |
typedef int | GIint |
4 byte signed integer type. | |
typedef int | GIsizei |
Size type. | |
typedef unsigned char | GIubyte |
1 byte unsigned integer type. | |
typedef unsigned short | GIushort |
2 byte unsigned integer type. | |
typedef unsigned int | GIuint |
4 byte unsigned integer type. | |
typedef float | GIfloat |
Single precission floating point type. | |
typedef double | GIdouble |
Double precission floating point type. | |
typedef unsigned short | GIhalf |
Half precission floating point type. | |
typedef void | GIvoid |
Void type. | |
typedef void * | GIcontext |
Context type. | |
typedef GIboolean(GICALLBACK * | GIparamcb )(GIvoid *) |
Parameterization callback. | |
typedef void(GICALLBACK * | GIsamplercb )(GIdouble *, const GIdouble *, GIvoid *) |
Sampler callback. | |
typedef void(GICALLBACK * | GIerrorcb )(GIenum, GIvoid *) |
Error callback. | |
Functions | |
Context management | |
GIAPI GIcontext GIAPIENTRY | giCreateContext () |
Create new context. | |
GIAPI void GIAPIENTRY | giMakeCurrent (GIcontext context) |
Set active Context. | |
GIAPI GIcontext GIAPIENTRY | giGetCurrent () |
Get active context. | |
GIAPI void GIAPIENTRY | giDestroyContext (GIcontext context) |
Delete context and all associated data. | |
State management | |
GIAPI GIenum GIAPIENTRY | giGetEnumValue (const GIchar *name) |
Get enum value by name. | |
GIAPI void GIAPIENTRY | giGetBooleanv (GIenum pname, GIboolean *params) |
Retrieve boolean state value. | |
GIAPI void GIAPIENTRY | giGetIntegerv (GIenum pname, GIint *params) |
Retrieve integer state value. | |
GIAPI void GIAPIENTRY | giGetFloatv (GIenum pname, GIfloat *params) |
Retrieve floating point state value. | |
GIAPI void GIAPIENTRY | giEnable (GIenum pname) |
Enable feature. | |
GIAPI void GIAPIENTRY | giDisable (GIenum pname) |
Disable feture. | |
GIAPI GIboolean GIAPIENTRY | giIsEnabled (GIenum pname) |
Check if feature is enabled. | |
GIAPI void GIAPIENTRY | giVertexSubset (GIenum subset, GIsizei count, GIboolean sorted, const GIuint *indices) |
Set vertex subset. | |
GIAPI void GIAPIENTRY | giGetPointerv (GIenum pname, GIvoid **params) |
Get pointer to attribute array or vertex subset. | |
GIAPI void GIAPIENTRY | giAttribImage (GIuint attrib, GIuint image) |
Bind image to attribute channel. | |
GIAPI void GIAPIENTRY | giBindAttrib (GIenum semantic, GIuint attrib) |
Bind attribute to special semantic. | |
GIAPI void GIAPIENTRY | giEnableAttribArray (GIuint attrib) |
Enable attribute array. | |
GIAPI void GIAPIENTRY | giDisableAttribArray (GIuint attrib) |
Disable attribute array. | |
GIAPI void GIAPIENTRY | giAttribPointer (GIuint attrib, GIint size, GIboolean normalized, GIsizei stride, GIfloat *pointer) |
Set attribute array to use during mesh creation and retrieval. | |
GIAPI void GIAPIENTRY | giGetAttribbv (GIuint attrib, GIenum pname, GIboolean *params) |
Retrieve boolean attribute state. | |
GIAPI void GIAPIENTRY | giGetAttribiv (GIuint attrib, GIenum pname, GIint *params) |
Retrieve integer attribute state. | |
GIAPI void GIAPIENTRY | giGetAttribfv (GIuint attrib, GIenum pname, GIfloat *params) |
Retrieve floating point attribute state. | |
GIAPI void GIAPIENTRY | giGetAttribPointerv (GIuint attrib, GIvoid **params) |
Get pointer to attribute array. | |
Mesh handling | |
GIAPI GIuint GIAPIENTRY | giGenMesh () |
Create new mesh object. | |
GIAPI void GIAPIENTRY | giGenMeshes (GIsizei n, GIuint *meshes) |
Create new mesh objects. | |
GIAPI void GIAPIENTRY | giBindMesh (GIuint mesh) |
Bind mesh to use for further processing. | |
GIAPI void GIAPIENTRY | giDeleteMesh (GIuint mesh) |
Delete mesh and all associated data. | |
GIAPI void GIAPIENTRY | giDeleteMeshes (GIsizei n, const GIuint *meshes) |
Delete mesh objects. | |
GIAPI void GIAPIENTRY | giIndexedMesh (GIuint start, GIuint end, GIsizei count, const GIuint *indices) |
Create mesh from indices into current attribute arrays. | |
GIAPI void GIAPIENTRY | giNonIndexedMesh (GIint first, GIsizei count) |
Create mesh from current attribute arrays. | |
GIAPI void GIAPIENTRY | giCopyMesh (GIuint mesh) |
Copy mesh from existing mesh. | |
GIAPI void GIAPIENTRY | giComputeParamStretch (GIenum metric) |
Recompute per param stretch values. | |
GIAPI void GIAPIENTRY | giMeshActivePatch (GIint patch) |
Set active patch. | |
GIAPI void GIAPIENTRY | giGetMeshbv (GIenum pname, GIboolean *params) |
Retrieve boolean mesh or patch property. | |
GIAPI void GIAPIENTRY | giGetMeshiv (GIenum pname, GIint *params) |
Retrieve integer mesh or patch property. | |
GIAPI void GIAPIENTRY | giGetMeshfv (GIenum pname, GIfloat *params) |
Retrieve floating point mesh property. | |
GIAPI void GIAPIENTRY | giGetMeshAttribbv (GIuint attrib, GIenum pname, GIboolean *params) |
Retrieve boolean mesh or patch attribute property. | |
GIAPI void GIAPIENTRY | giGetMeshAttribiv (GIuint attrib, GIenum pname, GIint *params) |
Retrieve integer mesh or patch attribute property. | |
GIAPI void GIAPIENTRY | giGetIndexedMesh (GIuint *vcount, GIuint *icount, GIuint *indices) |
Extract mesh data as indexed vertex arrays. | |
GIAPI void GIAPIENTRY | giGetNonIndexedMesh (GIuint *vcount) |
Extract mesh data as non-indexed vertex arrays. | |
Cutting | |
GIAPI void GIAPIENTRY | giCutterParameteri (GIenum pname, GIint param) |
Set integer configuration parameter for cutting. | |
GIAPI void GIAPIENTRY | giCut () |
Cut current mesh. | |
Parameterization | |
GIAPI void GIAPIENTRY | giParameterizerParameterb (GIenum pname, GIboolean param) |
Set boolean configuration parameter for parameterization. | |
GIAPI void GIAPIENTRY | giParameterizerParameteri (GIenum pname, GIint param) |
Set integer configuration parameter for parameterization. | |
GIAPI void GIAPIENTRY | giParameterizerParameterf (GIenum pname, GIfloat param) |
Set floating point configuration parameter for parameterization. | |
GIAPI void GIAPIENTRY | giParameterizerCallback (GIenum which, GIparamcb fn, GIvoid *data) |
Set callback function for parameterization. | |
GIAPI void GIAPIENTRY | giParameterize () |
Parameterize current mesh. | |
Image handling | |
GIAPI GIuint GIAPIENTRY | giGenImage () |
Create new image object. | |
GIAPI void GIAPIENTRY | giGenImages (GIsizei n, GIuint *images) |
Create new image objects. | |
GIAPI void GIAPIENTRY | giBindImage (GIuint image) |
Bind image to a specified attribute type. | |
GIAPI void GIAPIENTRY | giDeleteImage (GIuint image) |
Delete image and all associated data. | |
GIAPI void GIAPIENTRY | giDeleteImages (GIsizei n, const GIuint *images) |
Delete image objects. | |
GIAPI void GIAPIENTRY | giImageExternalData (GIsizei width, GIsizei height, GIsizei components, GIenum type, GIvoid *data) |
Set image to work on external data. | |
GIAPI void GIAPIENTRY | giImageGLTextureData (GIsizei width, GIsizei height, GIsizei components, GIenum type, GIuint texture) |
Set image to work on OpenGL texture. | |
GIAPI void GIAPIENTRY | giImageGLBufferData (GIsizei width, GIsizei height, GIsizei components, GIenum type, GIuint buffer) |
Set image to work on OpenGL buffer. | |
GIAPI void GIAPIENTRY | giSubImage (GIuint x, GIuint y, GIsizei width, GIsizei height) |
Set sub-image to work on. | |
GIAPI void GIAPIENTRY | giGetImageiv (GIenum pname, GIint *param) |
Retrieve integer property of current attribute image. | |
Sampling | |
GIAPI void GIAPIENTRY | giSamplerParameterb (GIenum pname, GIboolean param) |
Set boolean configuration parameter for sampling. | |
GIAPI void GIAPIENTRY | giSamplerParameteri (GIenum pname, GIint param) |
Set integer configuration parameter for sampling. | |
GIAPI void GIAPIENTRY | giAttribSamplerParameterb (GIuint attrib, GIenum pname, GIboolean param) |
Set boolean attribute sampling parameter. | |
GIAPI void GIAPIENTRY | giAttribSamplerParameteri (GIuint attrib, GIenum pname, GIint param) |
Set integer attribute sampling parameter. | |
GIAPI void GIAPIENTRY | giAttribSamplerParameterfv (GIuint attrib, GIenum pname, const GIfloat *params) |
Set floating point array attribute sampling parameter. | |
GIAPI void GIAPIENTRY | giSample () |
Sample attributes of current mesh (with UVs) to according images. | |
Error handling | |
GIAPI GIenum GIAPIENTRY | giGetError () |
Retrieve and clear last error. | |
GIAPI const GIchar *GIAPIENTRY | giErrorString (GIenum error) |
Get descriptive error string. | |
GIAPI void GIAPIENTRY | giErrorCallback (GIerrorcb fn, GIvoid *data) |
Set error callback function. | |
OpenGL communication | |
GIAPI void GIAPIENTRY | giGLRenderParameterb (GIenum pname, GIboolean param) |
Set boolean render parameter. | |
GIAPI void GIAPIENTRY | giGLRenderParameteri (GIenum pname, GIint param) |
Set integer render parameter. | |
GIAPI void GIAPIENTRY | giGLAttribRenderParameteri (GIuint attrib, GIenum pname, GIint param) |
Set integer attribute render parameter. | |
GIAPI void GIAPIENTRY | giGLDrawMesh () |
Render current mesh immediately. | |
GIAPI void GIAPIENTRY | giGLDrawCut () |
Render current cut of current mesh immediately. | |
GIAPI void GIAPIENTRY | giGLDrawGIM () |
Draw Geometry Images as triangular mesh. | |
GIAPI void GIAPIENTRY | giGLCleanUp () |
Clean up OpenGL context specific data. |
The main header file of the OpenGI library.
#define GI_TRUE 1 |
Boolean value true.
#define GI_FALSE 0 |
Boolean value false.
#define GI_NULL 0 |
Zero value.
#define GI_NONE 0 |
Zero identifier.
#define GI_ALL_PATCHES -1 |
Whole mesh.
#define GI_BYTE 0x1400 |
Signed byte.
#define GI_UNSIGNED_BYTE 0x1401 |
Unsigned byte.
#define GI_SHORT 0x1402 |
Signed short integer.
#define GI_UNSIGNED_SHORT 0x1403 |
Unsigned short integer.
#define GI_INT 0x1404 |
Signed integer.
#define GI_UNSIGNED_INT 0x1405 |
Unsigned integer.
#define GI_FLOAT 0x1406 |
Single precision float.
#define GI_DOUBLE 0x140A |
Double precision float.
#define GI_HALF_FLOAT 0x140B |
Half precision float.
#define GI_MULTITHREADING 0x0100 |
Use multithreading.
#define GI_EXACT_MAPPING_SUBSET 0x0110 |
Vertices mapped to exact texels.
#define GI_PARAM_CORNER_SUBSET 0x0111 |
Vertices mapped to parameter domain corners.
#define GI_VERSION 0x0200 |
OpenGI version.
#define GI_MAX_ATTRIBS 0x0201 |
Number of supported custom attributes.
#define GI_MESH_BINDING 0x0202 |
Current bound mesh.
#define GI_IMAGE_BINDING 0x0203 |
Current bound image for active texture unit.
#define GI_SAMPLED_ATTRIB_COUNT 0x0204 |
Number of sampled attributes.
#define GI_SAMPLED_ATTRIBS 0x0205 |
Flags indicating sampled attributes.
#define GI_EXACT_MAPPING_SUBSET_COUNT 0x0210 |
Number of elements in exact mapping subset.
#define GI_PARAM_CORNER_SUBSET_COUNT 0x0211 |
Number of elements in corner subset.
#define GI_EXACT_MAPPING_SUBSET_SORTED 0x0220 |
Sorted flag for exact mapping subset.
#define GI_PARAM_CORNER_SUBSET_SORTED 0x0221 |
Sorted flag for corner subset.
#define GI_POSITION_ATTRIB 0x0300 |
Vertex position.
#define GI_PARAM_ATTRIB 0x0301 |
Parameter coordinates.
#define GI_PARAM_STRETCH_ATTRIB 0x0302 |
Per-param stretch values.
#define GI_ATTRIB_ARRAY_ENABLED 0x0400 |
Enabled flag.
#define GI_ATTRIB_ARRAY_SIZE 0x0401 |
Number of components.
#define GI_ATTRIB_ARRAY_STRIDE 0x0402 |
Stride value.
#define GI_ATTRIB_ARRAY_NORMALIZED 0x0403 |
Normalization flag.
#define GI_ATTRIB_ARRAY_SEMANTIC 0x0404 |
Semantic if bound to any.
#define GI_ATTRIB_IMAGE 0x0405 |
Currently bound image.
#define GI_HAS_CUT 0x0500 |
Mesh has valid cut.
#define GI_HAS_PARAMS 0x0501 |
Mesh has UVs.
#define GI_PATCH_COUNT 0x0502 |
Number of patches.
#define GI_FACE_COUNT 0x0503 |
Number of faces.
#define GI_EDGE_COUNT 0x0504 |
Number of edges.
#define GI_VERTEX_COUNT 0x0505 |
Number of vertices.
#define GI_PARAM_COUNT 0x0506 |
Number of UVs.
#define GI_AABB_MIN 0x0507 |
Minimal vertex of AABB.
#define GI_AABB_MAX 0x0508 |
Maximal vertex of AABB.
#define GI_RADIUS 0x0509 |
Radius of bounding sphere around origin.
#define GI_ACTIVE_PATCH 0x050A |
Active patch.
#define GI_MIN_PARAM_STRETCH 0x050B |
Minimum param stretch value.
#define GI_MAX_PARAM_STRETCH 0x050C |
Maximum param stretch value.
#define GI_PARAM_STRETCH_METRIC 0x050D |
Metric of param stretch values.
#define GI_TOPOLOGICAL_SIDEBAND_LENGTH 0x050E |
Length of topological sideband.
#define GI_TOPOLOGICAL_SIDEBAND 0x050F |
Topological sideband (cut path information).
#define GI_HAS_ATTRIB 0x0600 |
Mesh has attrib.
#define GI_ATTRIB_SIZE 0x0601 |
Number of components.
#define GI_ATTRIB_NORMALIZED 0x0602 |
Normalization flag.
#define GI_ATTRIB_SEMANTIC 0x0603 |
Attribute semantic.
#define GI_CUTTER 0x0700 |
Cutting algorithm.
#define GI_SUBDIVISION_ITERATIONS 0x0701 |
Iterations for subdivision algorithms.
#define GI_INITIAL_GIM 0x0710 |
Initial cut of original GIM algorithm.
#define GI_CATMULL_CLARK_SUBDIVISION 0x0711 |
Catmull-Clark subdivision patchification.
#define GI_LOOP_SUBDIVISION 0x0712 |
Loop subdivision patchification.
#define GI_PARAMETERIZER 0x0800 |
Parameterization algorithm.
#define GI_INITIAL_PARAMETERIZATION 0x0801 |
Initial parameterization for stretch minimizer.
#define GI_STRETCH_METRIC 0x0802 |
Stretch metric to minimize.
#define GI_CONFORMAL_WEIGHT 0x0803 |
Conformal weight for intrinsic parameterization.
#define GI_AUTHALIC_WEIGHT 0x0804 |
Authalic weight for intrinsic parameterization.
#define GI_STRETCH_WEIGHT 0x0805 |
Eta parameter for stretch minimizer.
#define GI_PARAM_RESOLUTION 0x0806 |
Desired minimal resolution for sampling.
#define GI_UNSYMMETRIC_SOLVER 0x0807 |
Solver for unsymmetric systems.
#define GI_AREA_WEIGHT 0x0808 |
Theta parameter for combined energy.
#define GI_PARAM_SOURCE_ATTRIB 0x0809 |
Attribute to use as parameter coords.
#define GI_PARAM_DOMAIN 0x080A |
Domain of parameter coordinates.
#define GI_FROM_ATTRIB 0x0810 |
Set attrib as parameter coordinates.
#define GI_TUTTE_BARYCENTRIC 0x0811 |
Tutte's Barycentric parameterization.
#define GI_SHAPE_PRESERVING 0x0812 |
Floater's Shape Preserving parameterization.
#define GI_DISCRETE_HARMONIC 0x0813 |
Eck's Discrete Harmonic parameterization.
#define GI_MEAN_VALUE 0x0814 |
Floater's Mean Value parameterization.
#define GI_DISCRETE_AUTHALIC 0x0815 |
Desbrun's Discrete Authalic parameterization.
#define GI_INTRINSIC 0x0816 |
Desbrun's Intrinsic parameterization.
#define GI_STRETCH_MINIMIZING 0x0817 |
Yoshizawa's stretch minimizing parameterization.
#define GI_GIM 0x0818 |
Gu's original Geometry Image parameterization.
#define GI_SOLVER_BICGSTAB 0x0820 |
BiCGStab solver.
#define GI_SOLVER_GMRES 0x0821 |
GMRES(m) solver.
#define GI_PARAM_STARTED 0x0830 |
Callback for parameterization start.
#define GI_PARAM_CHANGED 0x0831 |
Callback for parameterization change.
#define GI_PARAM_FINISHED 0x0832 |
Callback for parameterization end.
#define GI_UNKNOWN_DOMAIN 0x0000 |
Unknown parameterization domain.
#define GI_SQUARE_DOMAIN 0x0840 |
Unit square.
#define GI_TRIANGLE_DOMAIN 0x0841 |
Unit triangle.
#define GI_MAX_GEOMETRIC_STRETCH 0x0900 |
Linf stretch as defined by Sander et al.
#define GI_RMS_GEOMETRIC_STRETCH 0x0901 |
L2 stretch as defined by Sander et al.
#define GI_COMBINED_STRETCH 0x0902 |
Combined energy as defined by Degener et al.
#define GI_IMAGE_WIDTH 0x0A00 |
Width of image.
#define GI_IMAGE_HEIGHT 0x0A01 |
Height of image.
#define GI_IMAGE_COMPONENTS 0x0A02 |
Number of components.
#define GI_IMAGE_TYPE 0x0A03 |
Data type of image elements.
#define GI_GL_IMAGE_TEXTURE 0x0A04 |
OpenGL texture object of image (if texture storage).
#define GI_GL_IMAGE_BUFFER 0x0A05 |
OpenGL buffer object of image (if buffer storage).
#define GI_IMAGE_DATA 0x0A06 |
RAM address of image data (if RAM storage).
#define GI_IMAGE_STORAGE 0x0A07 |
Storage mode of image.
#define GI_SUBIMAGE_X 0x0A08 |
X-offset of sub-image.
#define GI_SUBIMAGE_Y 0x0A09 |
X-offset of sub-image.
#define GI_SUBIMAGE_WIDTH 0x0A0A |
Width of sub-image.
#define GI_SUBIMAGE_HEIGHT 0x0A0B |
Height of sub-image.
#define GI_SUBIMAGE 0x0A0C |
Sub-image rectangle as 4 ints.
#define GI_EXTERNAL_DATA 0x0A10 |
Image stored in user-owned RAM.
#define GI_GL_TEXTURE_DATA 0x0A11 |
Image stored in user-owned GL texture.
#define GI_GL_BUFFER_DATA 0x0A12 |
Image stored in user-owned GL buffer.
#define GI_NO_IMAGE_DATA 0x0A13 |
Image data not yet specified.
#define GI_SAMPLER 0x0B00 |
Sampler to use.
#define GI_SAMPLER_USE_SHADER 0x0B01 |
Use GLSL if supported.
#define GI_SAMPLER_USE_RENDER_TO_TEXTURE 0x0B02 |
Use framebuffer objects if supported.
#define GI_SAMPLER_SOFTWARE 0x0B10 |
Software sampling.
#define GI_SAMPLER_OPENGL 0x0B11 |
Hardware accelerated sampling using OpenGL.
#define GI_SAMPLING_MODE 0x0C00 |
Sampling style.
#define GI_SAMPLING_TRANSFORM 0x0C01 |
Transformation matrix.
#define GI_TEXTURE_DIMENSION 0x0C02 |
Dimension of OpenGL texture.
#define GI_GL_SAMPLE_TEXTURE 0x0C03 |
OpenGL texture to resample.
#define GI_SAMPLE_DIAGONAL_CORRECTION 0x0C04 |
Adjust upper subdiagonal for correct triangular interpolation.
#define GI_SAMPLE_DEFAULT 0x0000 |
Standard sampling.
#define GI_SAMPLE_NORMALIZED 0x0C10 |
Normalize after interpolation.
#define GI_SAMPLE_TEXTURED 0x0C11 |
Resample texture.
#define GI_GL_USE_VERTEX_TEXTURE 0x0001 |
Use vertex texturing for GIM rendering.
#define GI_GL_USE_GEOMETRY_SHADER 0x0002 |
Use geometry shader for GIM rendering.
#define GI_GL_PER_VERTEX_ATTRIBS 0x0004 |
Use per vertex color and normal.
#define GI_RENDER_RESOLUTION_U 0x0D03 |
U-resolution of base mesh for GIM rendering.
#define GI_RENDER_RESOLUTION_V 0x0D04 |
V-resolution of base mesh for GIM rendering.
#define GI_RENDER_CACHE_SIZE 0x0D05 |
Size of cache for geometry image rendering.
#define GI_GIM_TYPE 0x0D06 |
Shape of geometry image.
#define GI_RECTANGULAR_GIM 0x0D10 |
Rectangular geometry image.
#define GI_TRIANGULAR_GIM 0x0D11 |
Triangular geometry image.
#define GI_GL_RENDER_SEMANTIC 0x0E00 |
Render semantic.
#define GI_GL_RENDER_CHANNEL 0x0E01 |
Render channel (for attribs and texCoords).
#define GI_TEXTURE_COORD_DOMAIN 0x0E02 |
TexCoord domain for images.
#define GI_GL_VERTEX 0x0E10 |
Use attribute as glVertex.
#define GI_GL_NORMAL 0x0E11 |
Use attribute as glNormal.
#define GI_GL_COLOR 0x0E12 |
Use attribute as glColor.
#define GI_GL_SECONDARY_COLOR 0x0E13 |
Use attribute as glSecondaryColor.
#define GI_GL_FOG_COORD 0x0E14 |
Use attribute as glFogCoord.
#define GI_GL_EVAL_COORD 0x0E15 |
Use attribute as glEvalCoord.
#define GI_GL_TEXTURE_COORD 0x0E16 |
Use attribute as gl[Multi]TexCoord.
#define GI_GL_VERTEX_ATTRIB 0x0E17 |
Use attribute as glVertexAttrib.
#define GI_UNIT_SQUARE 0x0E20 |
0-1-square.
#define GI_HALF_TEXEL_INDENT 0x0E21 |
0-1-square indented by half a texel.
#define GI_NO_ERROR 0x0000 |
No error encountered.
#define GI_INVALID_ENUM 0x1000 |
Wrong enum value.
#define GI_INVALID_OPERATION 0x1001 |
Wrong operation in current state.
#define GI_INVALID_VALUE 0x1002 |
Numeric value out of range.
#define GI_INVALID_ID 0x1003 |
Object ID not existent.
#define GI_INVALID_MESH 0x1004 |
Non-manifold mesh.
#define GI_INVALID_CUT 0x1005 |
Cut incomplete.
#define GI_NUMERICAL_ERROR 0x1006 |
Error in numerical routine.
#define GI_UNSUPPORTED_OPERATION 0x1007 |
Feature not supported.
#define GI_INVALID_PARAMETERIZATION 0x1008 |
No unit square.
typedef unsigned int GIenum |
Enumaration type.
typedef unsigned char GIboolean |
Boolean type.
typedef unsigned int GIbitfield |
Bitfield type.
typedef char GIchar |
Character type.
typedef signed char GIbyte |
1 byte signed integer type.
typedef short GIshort |
2 byte signed integer type.
typedef int GIint |
4 byte signed integer type.
typedef int GIsizei |
Size type.
typedef unsigned char GIubyte |
1 byte unsigned integer type.
typedef unsigned short GIushort |
2 byte unsigned integer type.
typedef unsigned int GIuint |
4 byte unsigned integer type.
typedef float GIfloat |
Single precission floating point type.
typedef double GIdouble |
Double precission floating point type.
typedef unsigned short GIhalf |
Half precission floating point type.
typedef void GIvoid |
Void type.
typedef void* GIcontext |
Context type.
typedef void(GICALLBACK * GIsamplercb)(GIdouble *, const GIdouble *, GIvoid *) |
Sampler callback.