Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-06-24 14:29:26 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-06-24 14:29:26 +0400
commit1f7ae143a29b090ed97cdd7eb47a9c2dbd7f72a2 (patch)
treefff560080a8bbf37ee087653df1b8a30173537b1 /intern
parentd38ba6b5d25ca42f76b6d1b746217a565f26228f (diff)
parent74c9c24d273863319a55c18234e03b7d27a43a87 (diff)
Merged changes in the trunk up to revision 48227.
Conflicts resolved: source/blender/blenloader/intern/readfile.c source/blender/editors/space_file/filelist.c
Diffstat (limited to 'intern')
-rw-r--r--intern/audaspace/Python/AUD_PyAPI.cpp2
-rw-r--r--intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp16
-rw-r--r--intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp10
-rw-r--r--intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp12
-rw-r--r--intern/bsp/test/BSP_GhostTest/main.cpp4
-rw-r--r--intern/bsp/test/BSP_GhostTest/plyfile.c3777
-rw-r--r--intern/container/CTR_UHeap.h174
-rw-r--r--intern/cycles/app/cycles_xml.cpp12
-rw-r--r--intern/cycles/blender/addon/properties.py2
-rw-r--r--intern/cycles/blender/addon/ui.py3
-rw-r--r--intern/cycles/blender/blender_session.cpp2
-rw-r--r--intern/cycles/cmake/external_libs.cmake6
-rw-r--r--intern/cycles/render/film.cpp11
-rw-r--r--intern/cycles/render/film.h1
-rw-r--r--intern/elbeem/intern/controlparticles.cpp8
-rw-r--r--intern/ffmpeg/ffmpeg_compat.h15
-rw-r--r--intern/ghost/intern/GHOST_SystemPathsX11.cpp6
-rw-r--r--intern/ghost/intern/GHOST_SystemWin32.cpp4
-rw-r--r--intern/ghost/test/gears/GHOST_C-Test.c1
-rw-r--r--intern/ghost/test/gears/GHOST_Test.cpp2
-rw-r--r--intern/memutil/intern/MEM_CacheLimiterC-Api.cpp10
-rw-r--r--intern/raskter/raskter.c21
22 files changed, 2074 insertions, 2025 deletions
diff --git a/intern/audaspace/Python/AUD_PyAPI.cpp b/intern/audaspace/Python/AUD_PyAPI.cpp
index bbc7a0ca52e..238249bc7c8 100644
--- a/intern/audaspace/Python/AUD_PyAPI.cpp
+++ b/intern/audaspace/Python/AUD_PyAPI.cpp
@@ -28,7 +28,7 @@
#include "AUD_PyAPI.h"
-#include "structmember.h"
+#include <structmember.h>
#include "AUD_I3DDevice.h"
#include "AUD_I3DHandle.h"
diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
index 6553073c54e..28a14a9cfc7 100644
--- a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
@@ -143,23 +143,23 @@ void AUD_FFMPEGReader::init()
switch(m_codecCtx->sample_fmt)
{
- case SAMPLE_FMT_U8:
+ case AV_SAMPLE_FMT_U8:
m_convert = AUD_convert_u8_float;
m_specs.format = AUD_FORMAT_U8;
break;
- case SAMPLE_FMT_S16:
+ case AV_SAMPLE_FMT_S16:
m_convert = AUD_convert_s16_float;
m_specs.format = AUD_FORMAT_S16;
break;
- case SAMPLE_FMT_S32:
+ case AV_SAMPLE_FMT_S32:
m_convert = AUD_convert_s32_float;
m_specs.format = AUD_FORMAT_S32;
break;
- case SAMPLE_FMT_FLT:
+ case AV_SAMPLE_FMT_FLT:
m_convert = AUD_convert_copy<float>;
m_specs.format = AUD_FORMAT_FLOAT32;
break;
- case SAMPLE_FMT_DBL:
+ case AV_SAMPLE_FMT_DBL:
m_convert = AUD_convert_double_float;
m_specs.format = AUD_FORMAT_FLOAT64;
break;
@@ -189,7 +189,7 @@ AUD_FFMPEGReader::AUD_FFMPEGReader(std::string filename) :
}
catch(AUD_Exception&)
{
- av_close_input_file(m_formatCtx);
+ avformat_close_input(&m_formatCtx);
throw;
}
}
@@ -227,7 +227,7 @@ AUD_FFMPEGReader::AUD_FFMPEGReader(AUD_Reference<AUD_Buffer> buffer) :
}
catch(AUD_Exception&)
{
- av_close_input_stream(m_formatCtx);
+ avformat_close_input(&m_formatCtx);
av_free(m_aviocontext);
throw;
}
@@ -239,7 +239,7 @@ AUD_FFMPEGReader::~AUD_FFMPEGReader()
if(m_aviocontext)
{
- av_close_input_stream(m_formatCtx);
+ avformat_close_input(&m_formatCtx);
av_free(m_aviocontext);
}
else
diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
index 702c366c4df..2b34348da81 100644
--- a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
@@ -133,23 +133,23 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, AUD_DeviceSpecs specs,
{
case AUD_FORMAT_U8:
m_convert = AUD_convert_float_u8;
- m_codecCtx->sample_fmt = SAMPLE_FMT_U8;
+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_U8;
break;
case AUD_FORMAT_S16:
m_convert = AUD_convert_float_s16;
- m_codecCtx->sample_fmt = SAMPLE_FMT_S16;
+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_S16;
break;
case AUD_FORMAT_S32:
m_convert = AUD_convert_float_s32;
- m_codecCtx->sample_fmt = SAMPLE_FMT_S32;
+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_S32;
break;
case AUD_FORMAT_FLOAT32:
m_convert = AUD_convert_copy<float>;
- m_codecCtx->sample_fmt = SAMPLE_FMT_FLT;
+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_FLT;
break;
case AUD_FORMAT_FLOAT64:
m_convert = AUD_convert_float_double;
- m_codecCtx->sample_fmt = SAMPLE_FMT_DBL;
+ m_codecCtx->sample_fmt = AV_SAMPLE_FMT_DBL;
break;
default:
AUD_THROW(AUD_ERROR_FFMPEG, format_error);
diff --git a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp
index 543e7e087b1..46cde625cf2 100644
--- a/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp
+++ b/intern/bsp/test/BSP_GhostTest/BSP_GhostTest3D.cpp
@@ -205,15 +205,15 @@ Operate(
void
BSP_GhostTestApp3D::
UpdateFrame(
-){
-if (m_window) {
+) {
+ if (m_window) {
- GHOST_Rect v_rect;
- m_window->getClientBounds(v_rect);
+ GHOST_Rect v_rect;
+ m_window->getClientBounds(v_rect);
- glViewport(0,0,v_rect.getWidth(),v_rect.getHeight());
+ glViewport(0,0,v_rect.getWidth(),v_rect.getHeight());
-}
+ }
}
diff --git a/intern/bsp/test/BSP_GhostTest/main.cpp b/intern/bsp/test/BSP_GhostTest/main.cpp
index d5fa884afa1..25185f40192 100644
--- a/intern/bsp/test/BSP_GhostTest/main.cpp
+++ b/intern/bsp/test/BSP_GhostTest/main.cpp
@@ -93,8 +93,8 @@ NewTestMesh(
#endif
-int main() {
-
+int main()
+{
MT_Vector3 min,max;
MT_Vector3 min2,max2;
diff --git a/intern/bsp/test/BSP_GhostTest/plyfile.c b/intern/bsp/test/BSP_GhostTest/plyfile.c
index 9cb9d81da22..b0134f06557 100644
--- a/intern/bsp/test/BSP_GhostTest/plyfile.c
+++ b/intern/bsp/test/BSP_GhostTest/plyfile.c
@@ -28,37 +28,37 @@
/*
-The interface routines for reading and writing PLY polygon files.
+ The interface routines for reading and writing PLY polygon files.
-Greg Turk, February 1994
+ Greg Turk, February 1994
----------------------------------------------------------------
+ ---------------------------------------------------------------
-A PLY file contains a single polygonal _object_.
+ A PLY file contains a single polygonal _object_.
-An object is composed of lists of _elements_. Typical elements are
-vertices, faces, edges and materials.
+ An object is composed of lists of _elements_. Typical elements are
+ vertices, faces, edges and materials.
-Each type of element for a given object has one or more _properties_
-associated with the element type. For instance, a vertex element may
-have as properties the floating-point values x,y,z and the three unsigned
-chars representing red, green and blue.
+ Each type of element for a given object has one or more _properties_
+ associated with the element type. For instance, a vertex element may
+ have as properties the floating-point values x,y,z and the three unsigned
+ chars representing red, green and blue.
----------------------------------------------------------------
+ ---------------------------------------------------------------
-Copyright (c) 1994 The Board of Trustees of The Leland Stanford
-Junior University. All rights reserved.
+ Copyright (c) 1994 The Board of Trustees of The Leland Stanford
+ Junior University. All rights reserved.
-Permission to use, copy, modify and distribute this software and its
-documentation for any purpose is hereby granted without fee, provided
-that the above copyright notice and this permission notice appear in
-all copies of this software and that you do not sell the software.
+ Permission to use, copy, modify and distribute this software and its
+ documentation for any purpose is hereby granted without fee, provided
+ that the above copyright notice and this permission notice appear in
+ all copies of this software and that you do not sell the software.
-THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
-EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
-WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-*/
+ */
#include <stdio.h>
#include <stdlib.h>
@@ -67,14 +67,14 @@ WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
#include "ply.h"
char *type_names[] = {
-"invalid",
-"char", "short", "int",
-"uchar", "ushort", "uint",
-"float", "double",
+ "invalid",
+ "char", "short", "int",
+ "uchar", "ushort", "uint",
+ "float", "double",
};
int ply_type_size[] = {
- 0, 1, 2, 4, 1, 2, 4, 4, 8
+ 0, 1, 2, 4, 1, 2, 4, 4, 8
};
#define NO_OTHER_PROPS -1
@@ -96,7 +96,7 @@ PlyElement *find_element(PlyFile *, char *);
PlyProperty *find_property(PlyElement *, char *, int *);
/* write to a file the word describing a PLY file data type */
-void write_scalar_type (FILE *, int);
+void write_scalar_type(FILE *, int);
/* read a line from a file and break it up into separate words */
char **get_words(FILE *, int *, char **);
@@ -120,7 +120,7 @@ void copy_property(PlyProperty *, PlyProperty *);
void store_item(char *, int, int, unsigned int, double);
/* return the value of a stored item */
-void get_stored_item( void *, int, int *, unsigned int *, double *);
+void get_stored_item(void *, int, int *, unsigned int *, double *);
/* return the value stored in an item, given ptr to it and its type */
double get_item_value(char *, int);
@@ -143,551 +143,551 @@ char *my_alloc(int, int, char *);
/******************************************************************************
-Given a file pointer, get ready to write PLY data to the file.
+ Given a file pointer, get ready to write PLY data to the file.
-Entry:
- fp - the given file pointer
- nelems - number of elements in object
- elem_names - list of element names
- file_type - file type, either ascii or binary
+ Entry:
+ fp - the given file pointer
+ nelems - number of elements in object
+ elem_names - list of element names
+ file_type - file type, either ascii or binary
-Exit:
- returns a pointer to a PlyFile, used to refer to this file, or NULL if error
+ Exit:
+ returns a pointer to a PlyFile, used to refer to this file, or NULL if error
******************************************************************************/
PlyFile *ply_write(
- FILE *fp,
- int nelems,
- char **elem_names,
- int file_type
-)
+ FILE *fp,
+ int nelems,
+ char **elem_names,
+ int file_type
+ )
{
- int i;
- PlyFile *plyfile;
- PlyElement *elem;
-
- /* check for NULL file pointer */
- if (fp == NULL)
- return (NULL);
-
- /* create a record for this object */
-
- plyfile = (PlyFile *) myalloc (sizeof (PlyFile));
- plyfile->file_type = file_type;
- plyfile->num_comments = 0;
- plyfile->num_obj_info = 0;
- plyfile->nelems = nelems;
- plyfile->version = 1.0;
- plyfile->fp = fp;
- plyfile->other_elems = NULL;
-
- /* tuck aside the names of the elements */
-
- plyfile->elems = (PlyElement **) myalloc (sizeof (PlyElement *) * nelems);
- for (i = 0; i < nelems; i++) {
- elem = (PlyElement *) myalloc (sizeof (PlyElement));
- plyfile->elems[i] = elem;
- elem->name = strdup (elem_names[i]);
- elem->num = 0;
- elem->nprops = 0;
- }
-
- /* return pointer to the file descriptor */
- return (plyfile);
+ int i;
+ PlyFile *plyfile;
+ PlyElement *elem;
+
+ /* check for NULL file pointer */
+ if (fp == NULL)
+ return (NULL);
+
+ /* create a record for this object */
+
+ plyfile = (PlyFile *) myalloc(sizeof(PlyFile));
+ plyfile->file_type = file_type;
+ plyfile->num_comments = 0;
+ plyfile->num_obj_info = 0;
+ plyfile->nelems = nelems;
+ plyfile->version = 1.0;
+ plyfile->fp = fp;
+ plyfile->other_elems = NULL;
+
+ /* tuck aside the names of the elements */
+
+ plyfile->elems = (PlyElement **) myalloc(sizeof(PlyElement *) * nelems);
+ for (i = 0; i < nelems; i++) {
+ elem = (PlyElement *) myalloc(sizeof(PlyElement));
+ plyfile->elems[i] = elem;
+ elem->name = strdup(elem_names[i]);
+ elem->num = 0;
+ elem->nprops = 0;
+ }
+
+ /* return pointer to the file descriptor */
+ return (plyfile);
}
/******************************************************************************
-Open a polygon file for writing.
+ Open a polygon file for writing.
-Entry:
- filename - name of file to read from
- nelems - number of elements in object
- elem_names - list of element names
- file_type - file type, either ascii or binary
+ Entry:
+ filename - name of file to read from
+ nelems - number of elements in object
+ elem_names - list of element names
+ file_type - file type, either ascii or binary
-Exit:
- version - version number of PLY file
- returns a file identifier, used to refer to this file, or NULL if error
+ Exit:
+ version - version number of PLY file
+ returns a file identifier, used to refer to this file, or NULL if error
******************************************************************************/
PlyFile *ply_open_for_writing(
- char *filename,
- int nelems,
- char **elem_names,
- int file_type,
- float *version
-)
+ char *filename,
+ int nelems,
+ char **elem_names,
+ int file_type,
+ float *version
+ )
{
- PlyFile *plyfile;
- char *name;
- FILE *fp;
+ PlyFile *plyfile;
+ char *name;
+ FILE *fp;
- /* tack on the extension .ply, if necessary */
+ /* tack on the extension .ply, if necessary */
- name = (char *) myalloc (sizeof (char) * (strlen (filename) + 5));
- strcpy (name, filename);
- if (strlen (name) < 4 ||
- strcmp (name + strlen (name) - 4, ".ply") != 0)
- strcat (name, ".ply");
+ name = (char *) myalloc(sizeof(char) * (strlen(filename) + 5));
+ strcpy(name, filename);
+ if (strlen(name) < 4 ||
+ strcmp(name + strlen(name) - 4, ".ply") != 0)
+ strcat(name, ".ply");
- /* open the file for writing */
+ /* open the file for writing */
- fp = fopen (name, "w");
- if (fp == NULL) {
- return (NULL);
- }
+ fp = fopen(name, "w");
+ if (fp == NULL) {
+ return (NULL);
+ }
- /* create the actual PlyFile structure */
+ /* create the actual PlyFile structure */
- plyfile = ply_write (fp, nelems, elem_names, file_type);
- if (plyfile == NULL)
- return (NULL);
+ plyfile = ply_write(fp, nelems, elem_names, file_type);
+ if (plyfile == NULL)
+ return (NULL);
- /* say what PLY file version number we're writing */
- *version = plyfile->version;
+ /* say what PLY file version number we're writing */
+ *version = plyfile->version;
- /* return pointer to the file descriptor */
- return (plyfile);
+ /* return pointer to the file descriptor */
+ return (plyfile);
}
/******************************************************************************
-Describe an element, including its properties and how many will be written
-to the file.
-
-Entry:
- plyfile - file identifier
- elem_name - name of element that information is being specified about
- nelems - number of elements of this type to be written
- nprops - number of properties contained in the element
- prop_list - list of properties
+ Describe an element, including its properties and how many will be written
+ to the file.
+
+ Entry:
+ plyfile - file identifier
+ elem_name - name of element that information is being specified about
+ nelems - number of elements of this type to be written
+ nprops - number of properties contained in the element
+ prop_list - list of properties
******************************************************************************/
void ply_describe_element(
- PlyFile *plyfile,
- char *elem_name,
- int nelems,
- int nprops,
- PlyProperty *prop_list
-)
+ PlyFile *plyfile,
+ char *elem_name,
+ int nelems,
+ int nprops,
+ PlyProperty *prop_list
+ )
{
- int i;
- PlyElement *elem;
- PlyProperty *prop;
-
- /* look for appropriate element */
- elem = find_element (plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr,"ply_describe_element: can't find element '%s'\n",elem_name);
- exit (-1);
- }
-
- elem->num = nelems;
-
- /* copy the list of properties */
-
- elem->nprops = nprops;
- elem->props = (PlyProperty **) myalloc (sizeof (PlyProperty *) * nprops);
- elem->store_prop = (char *) myalloc (sizeof (char) * nprops);
-
- for (i = 0; i < nprops; i++) {
- prop = (PlyProperty *) myalloc (sizeof (PlyProperty));
- elem->props[i] = prop;
- elem->store_prop[i] = NAMED_PROP;
- copy_property (prop, &prop_list[i]);
- }
+ int i;
+ PlyElement *elem;
+ PlyProperty *prop;
+
+ /* look for appropriate element */
+ elem = find_element(plyfile, elem_name);
+ if (elem == NULL) {
+ fprintf(stderr, "ply_describe_element: can't find element '%s'\n", elem_name);
+ exit(-1);
+ }
+
+ elem->num = nelems;
+
+ /* copy the list of properties */
+
+ elem->nprops = nprops;
+ elem->props = (PlyProperty **) myalloc(sizeof(PlyProperty *) * nprops);
+ elem->store_prop = (char *) myalloc(sizeof(char) * nprops);
+
+ for (i = 0; i < nprops; i++) {
+ prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
+ elem->props[i] = prop;
+ elem->store_prop[i] = NAMED_PROP;
+ copy_property(prop, &prop_list[i]);
+ }
}
/******************************************************************************
-Describe a property of an element.
+ Describe a property of an element.
-Entry:
- plyfile - file identifier
- elem_name - name of element that information is being specified about
- prop - the new property
+ Entry:
+ plyfile - file identifier
+ elem_name - name of element that information is being specified about
+ prop - the new property
******************************************************************************/
void ply_describe_property(
- PlyFile *plyfile,
- char *elem_name,
- PlyProperty *prop
-)
+ PlyFile *plyfile,
+ char *elem_name,
+ PlyProperty *prop
+ )
{
- PlyElement *elem;
- PlyProperty *elem_prop;
-
- /* look for appropriate element */
- elem = find_element (plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr, "ply_describe_property: can't find element '%s'\n",
- elem_name);
- return;
- }
-
- /* create room for new property */
-
- if (elem->nprops == 0) {
- elem->props = (PlyProperty **) myalloc (sizeof (PlyProperty *));
- elem->store_prop = (char *) myalloc (sizeof (char));
- elem->nprops = 1;
- }
- else {
- elem->nprops++;
- elem->props = (PlyProperty **)
- realloc (elem->props, sizeof (PlyProperty *) * elem->nprops);
- elem->store_prop = (char *)
- realloc (elem->store_prop, sizeof (char) * elem->nprops);
- }
-
- /* copy the new property */
-
- elem_prop = (PlyProperty *) myalloc (sizeof (PlyProperty));
- elem->props[elem->nprops - 1] = elem_prop;
- elem->store_prop[elem->nprops - 1] = NAMED_PROP;
- copy_property (elem_prop, prop);
+ PlyElement *elem;
+ PlyProperty *elem_prop;
+
+ /* look for appropriate element */
+ elem = find_element(plyfile, elem_name);
+ if (elem == NULL) {
+ fprintf(stderr, "ply_describe_property: can't find element '%s'\n",
+ elem_name);
+ return;
+ }
+
+ /* create room for new property */
+
+ if (elem->nprops == 0) {
+ elem->props = (PlyProperty **) myalloc(sizeof(PlyProperty *));
+ elem->store_prop = (char *) myalloc(sizeof(char));
+ elem->nprops = 1;
+ }
+ else {
+ elem->nprops++;
+ elem->props = (PlyProperty **)
+ realloc(elem->props, sizeof(PlyProperty *) * elem->nprops);
+ elem->store_prop = (char *)
+ realloc(elem->store_prop, sizeof(char) * elem->nprops);
+ }
+
+ /* copy the new property */
+
+ elem_prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
+ elem->props[elem->nprops - 1] = elem_prop;
+ elem->store_prop[elem->nprops - 1] = NAMED_PROP;
+ copy_property(elem_prop, prop);
}
/******************************************************************************
-Describe what the "other" properties are that are to be stored, and where
-they are in an element.
+ Describe what the "other" properties are that are to be stored, and where
+ they are in an element.
******************************************************************************/
void ply_describe_other_properties(
- PlyFile *plyfile,
- PlyOtherProp *other,
- int offset
-)
+ PlyFile *plyfile,
+ PlyOtherProp *other,
+ int offset
+ )
{
- int i;
- PlyElement *elem;
- PlyProperty *prop;
-
- /* look for appropriate element */
- elem = find_element (plyfile, other->name);
- if (elem == NULL) {
- fprintf(stderr, "ply_describe_other_properties: can't find element '%s'\n",
- other->name);
- return;
- }
-
- /* create room for other properties */
-
- if (elem->nprops == 0) {
- elem->props = (PlyProperty **)
- myalloc (sizeof (PlyProperty *) * other->nprops);
- elem->store_prop = (char *) myalloc (sizeof (char) * other->nprops);
- elem->nprops = 0;
- }
- else {
- int newsize;
- newsize = elem->nprops + other->nprops;
- elem->props = (PlyProperty **)
- realloc (elem->props, sizeof (PlyProperty *) * newsize);
- elem->store_prop = (char *)
- realloc (elem->store_prop, sizeof (char) * newsize);
- }
-
- /* copy the other properties */
-
- for (i = 0; i < other->nprops; i++) {
- prop = (PlyProperty *) myalloc (sizeof (PlyProperty));
- copy_property (prop, other->props[i]);
- elem->props[elem->nprops] = prop;
- elem->store_prop[elem->nprops] = OTHER_PROP;
- elem->nprops++;
- }
-
- /* save other info about other properties */
- elem->other_size = other->size;
- elem->other_offset = offset;
+ int i;
+ PlyElement *elem;
+ PlyProperty *prop;
+
+ /* look for appropriate element */
+ elem = find_element(plyfile, other->name);
+ if (elem == NULL) {
+ fprintf(stderr, "ply_describe_other_properties: can't find element '%s'\n",
+ other->name);
+ return;
+ }
+
+ /* create room for other properties */
+
+ if (elem->nprops == 0) {
+ elem->props = (PlyProperty **)
+ myalloc(sizeof(PlyProperty *) * other->nprops);
+ elem->store_prop = (char *) myalloc(sizeof(char) * other->nprops);
+ elem->nprops = 0;
+ }
+ else {
+ int newsize;
+ newsize = elem->nprops + other->nprops;
+ elem->props = (PlyProperty **)
+ realloc(elem->props, sizeof(PlyProperty *) * newsize);
+ elem->store_prop = (char *)
+ realloc(elem->store_prop, sizeof(char) * newsize);
+ }
+
+ /* copy the other properties */
+
+ for (i = 0; i < other->nprops; i++) {
+ prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
+ copy_property(prop, other->props[i]);
+ elem->props[elem->nprops] = prop;
+ elem->store_prop[elem->nprops] = OTHER_PROP;
+ elem->nprops++;
+ }
+
+ /* save other info about other properties */
+ elem->other_size = other->size;
+ elem->other_offset = offset;
}
/******************************************************************************
-State how many of a given element will be written.
+ State how many of a given element will be written.
-Entry:
- plyfile - file identifier
- elem_name - name of element that information is being specified about
- nelems - number of elements of this type to be written
+ Entry:
+ plyfile - file identifier
+ elem_name - name of element that information is being specified about
+ nelems - number of elements of this type to be written
******************************************************************************/
void ply_element_count(
- PlyFile *plyfile,
- char *elem_name,
- int nelems
-)
+ PlyFile *plyfile,
+ char *elem_name,
+ int nelems
+ )
{
- PlyElement *elem;
+ PlyElement *elem;
- /* look for appropriate element */
- elem = find_element (plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr,"ply_element_count: can't find element '%s'\n",elem_name);
- exit (-1);
- }
+ /* look for appropriate element */
+ elem = find_element(plyfile, elem_name);
+ if (elem == NULL) {
+ fprintf(stderr, "ply_element_count: can't find element '%s'\n", elem_name);
+ exit(-1);
+ }
- elem->num = nelems;
+ elem->num = nelems;
}
/******************************************************************************
-Signal that we've described everything a PLY file's header and that the
-header should be written to the file.
+ Signal that we've described everything a PLY file's header and that the
+ header should be written to the file.
-Entry:
- plyfile - file identifier
+ Entry:
+ plyfile - file identifier
******************************************************************************/
void ply_header_complete(PlyFile *plyfile)
{
- int i,j;
- FILE *fp = plyfile->fp;
- PlyElement *elem;
- PlyProperty *prop;
-
- fprintf (fp, "ply\n");
-
- switch (plyfile->file_type) {
- case PLY_ASCII:
- fprintf (fp, "format ascii 1.0\n");
- break;
- case PLY_BINARY_BE:
- fprintf (fp, "format binary_big_endian 1.0\n");
- break;
- case PLY_BINARY_LE:
- fprintf (fp, "format binary_little_endian 1.0\n");
- break;
- default:
- fprintf (stderr, "ply_header_complete: bad file type = %d\n",
- plyfile->file_type);
- exit (-1);
- }
-
- /* write out the comments */
-
- for (i = 0; i < plyfile->num_comments; i++)
- fprintf (fp, "comment %s\n", plyfile->comments[i]);
-
- /* write out object information */
-
- for (i = 0; i < plyfile->num_obj_info; i++)
- fprintf (fp, "obj_info %s\n", plyfile->obj_info[i]);
-
- /* write out information about each element */
-
- for (i = 0; i < plyfile->nelems; i++) {
-
- elem = plyfile->elems[i];
- fprintf (fp, "element %s %d\n", elem->name, elem->num);
-
- /* write out each property */
- for (j = 0; j < elem->nprops; j++) {
- prop = elem->props[j];
- if (prop->is_list) {
- fprintf (fp, "property list ");
- write_scalar_type (fp, prop->count_external);
- fprintf (fp, " ");
- write_scalar_type (fp, prop->external_type);
- fprintf (fp, " %s\n", prop->name);
- }
- else {
- fprintf (fp, "property ");
- write_scalar_type (fp, prop->external_type);
- fprintf (fp, " %s\n", prop->name);
- }
- }
- }
-
- fprintf (fp, "end_header\n");
+ int i, j;
+ FILE *fp = plyfile->fp;
+ PlyElement *elem;
+ PlyProperty *prop;
+
+ fprintf(fp, "ply\n");
+
+ switch (plyfile->file_type) {
+ case PLY_ASCII:
+ fprintf(fp, "format ascii 1.0\n");
+ break;
+ case PLY_BINARY_BE:
+ fprintf(fp, "format binary_big_endian 1.0\n");
+ break;
+ case PLY_BINARY_LE:
+ fprintf(fp, "format binary_little_endian 1.0\n");
+ break;
+ default:
+ fprintf(stderr, "ply_header_complete: bad file type = %d\n",
+ plyfile->file_type);
+ exit(-1);
+ }
+
+ /* write out the comments */
+
+ for (i = 0; i < plyfile->num_comments; i++)
+ fprintf(fp, "comment %s\n", plyfile->comments[i]);
+
+ /* write out object information */
+
+ for (i = 0; i < plyfile->num_obj_info; i++)
+ fprintf(fp, "obj_info %s\n", plyfile->obj_info[i]);
+
+ /* write out information about each element */
+
+ for (i = 0; i < plyfile->nelems; i++) {
+
+ elem = plyfile->elems[i];
+ fprintf(fp, "element %s %d\n", elem->name, elem->num);
+
+ /* write out each property */
+ for (j = 0; j < elem->nprops; j++) {
+ prop = elem->props[j];
+ if (prop->is_list) {
+ fprintf(fp, "property list ");
+ write_scalar_type(fp, prop->count_external);
+ fprintf(fp, " ");
+ write_scalar_type(fp, prop->external_type);
+ fprintf(fp, " %s\n", prop->name);
+ }
+ else {
+ fprintf(fp, "property ");
+ write_scalar_type(fp, prop->external_type);
+ fprintf(fp, " %s\n", prop->name);
+ }
+ }
+ }
+
+ fprintf(fp, "end_header\n");
}
/******************************************************************************
-Specify which elements are going to be written. This should be called
-before a call to the routine ply_put_element().
+ Specify which elements are going to be written. This should be called
+ before a call to the routine ply_put_element().
-Entry:
- plyfile - file identifier
- elem_name - name of element we're talking about
+ Entry:
+ plyfile - file identifier
+ elem_name - name of element we're talking about
******************************************************************************/
void ply_put_element_setup(PlyFile *plyfile, char *elem_name)
{
- PlyElement *elem;
+ PlyElement *elem;
- elem = find_element (plyfile, elem_name);
- if (elem == NULL) {
- fprintf(stderr, "ply_elements_setup: can't find element '%s'\n", elem_name);
- exit (-1);
- }
+ elem = find_element(plyfile, elem_name);
+ if (elem == NULL) {
+ fprintf(stderr, "ply_elements_setup: can't find element '%s'\n", elem_name);
+ exit(-1);
+ }
- plyfile->which_elem = elem;
+ plyfile->which_elem = elem;
}
/******************************************************************************
-Write an element to the file. This routine assumes that we're
-writing the type of element specified in the last call to the routine
-ply_put_element_setup().
+ Write an element to the file. This routine assumes that we're
+ writing the type of element specified in the last call to the routine
+ ply_put_element_setup().
-Entry:
- plyfile - file identifier
- elem_ptr - pointer to the element
+ Entry:
+ plyfile - file identifier
+ elem_ptr - pointer to the element
******************************************************************************/
void ply_put_element(PlyFile *plyfile, void *elem_ptr)
{
- int j,k;
- FILE *fp = plyfile->fp;
- PlyElement *elem;
- PlyProperty *prop;
- char *elem_data,*item;
- char **item_ptr;
- int list_count;
- int item_size;
- int int_val;
- unsigned int uint_val;
- double double_val;
- char **other_ptr;
-
- elem = plyfile->which_elem;
- elem_data = elem_ptr;
- other_ptr = (char **) (((char *) elem_ptr) + elem->other_offset);
-
- /* write out either to an ascii or binary file */
-
- if (plyfile->file_type == PLY_ASCII) {
-
- /* write an ascii file */
-
- /* write out each property of the element */
- for (j = 0; j < elem->nprops; j++) {
- prop = elem->props[j];
- if (elem->store_prop[j] == OTHER_PROP)
- elem_data = *other_ptr;
- else
- elem_data = elem_ptr;
- if (prop->is_list) {
- item = elem_data + prop->count_offset;
- get_stored_item ((void *) item, prop->count_internal,
- &int_val, &uint_val, &double_val);
- write_ascii_item (fp, int_val, uint_val, double_val,
- prop->count_external);
- list_count = uint_val;
- item_ptr = (char **) (elem_data + prop->offset);
- item = item_ptr[0];
- item_size = ply_type_size[prop->internal_type];
- for (k = 0; k < list_count; k++) {
- get_stored_item ((void *) item, prop->internal_type,
- &int_val, &uint_val, &double_val);
- write_ascii_item (fp, int_val, uint_val, double_val,
- prop->external_type);
- item += item_size;
- }
- }
- else {
- item = elem_data + prop->offset;
- get_stored_item ((void *) item, prop->internal_type,
- &int_val, &uint_val, &double_val);
- write_ascii_item (fp, int_val, uint_val, double_val,
- prop->external_type);
- }
- }
-
- fprintf (fp, "\n");
- }
- else {
-
- /* write a binary file */
-
- /* write out each property of the element */
- for (j = 0; j < elem->nprops; j++) {
- prop = elem->props[j];
- if (elem->store_prop[j] == OTHER_PROP)
- elem_data = *other_ptr;
- else
- elem_data = elem_ptr;
- if (prop->is_list) {
- item = elem_data + prop->count_offset;
- item_size = ply_type_size[prop->count_internal];
- get_stored_item ((void *) item, prop->count_internal,
- &int_val, &uint_val, &double_val);
- write_binary_item (fp, int_val, uint_val, double_val,
- prop->count_external);
- list_count = uint_val;
- item_ptr = (char **) (elem_data + prop->offset);
- item = item_ptr[0];
- item_size = ply_type_size[prop->internal_type];
- for (k = 0; k < list_count; k++) {
- get_stored_item ((void *) item, prop->internal_type,
- &int_val, &uint_val, &double_val);
- write_binary_item (fp, int_val, uint_val, double_val,
- prop->external_type);
- item += item_size;
- }
- }
- else {
- item = elem_data + prop->offset;
- item_size = ply_type_size[prop->internal_type];
- get_stored_item ((void *) item, prop->internal_type,
- &int_val, &uint_val, &double_val);
- write_binary_item (fp, int_val, uint_val, double_val,
- prop->external_type);
- }
- }
-
- }
+ int j, k;
+ FILE *fp = plyfile->fp;
+ PlyElement *elem;
+ PlyProperty *prop;
+ char *elem_data, *item;
+ char **item_ptr;
+ int list_count;
+ int item_size;
+ int int_val;
+ unsigned int uint_val;
+ double double_val;
+ char **other_ptr;
+
+ elem = plyfile->which_elem;
+ elem_data = elem_ptr;
+ other_ptr = (char **) (((char *) elem_ptr) + elem->other_offset);
+
+ /* write out either to an ascii or binary file */
+
+ if (plyfile->file_type == PLY_ASCII) {
+
+ /* write an ascii file */
+
+ /* write out each property of the element */
+ for (j = 0; j < elem->nprops; j++) {
+ prop = elem->props[j];
+ if (elem->store_prop[j] == OTHER_PROP)
+ elem_data = *other_ptr;
+ else
+ elem_data = elem_ptr;
+ if (prop->is_list) {
+ item = elem_data + prop->count_offset;
+ get_stored_item((void *) item, prop->count_internal,
+ &int_val, &uint_val, &double_val);
+ write_ascii_item(fp, int_val, uint_val, double_val,
+ prop->count_external);
+ list_count = uint_val;
+ item_ptr = (char **) (elem_data + prop->offset);
+ item = item_ptr[0];
+ item_size = ply_type_size[prop->internal_type];
+ for (k = 0; k < list_count; k++) {
+ get_stored_item((void *) item, prop->internal_type,
+ &int_val, &uint_val, &double_val);
+ write_ascii_item(fp, int_val, uint_val, double_val,
+ prop->external_type);
+ item += item_size;
+ }
+ }
+ else {
+ item = elem_data + prop->offset;
+ get_stored_item((void *) item, prop->internal_type,
+ &int_val, &uint_val, &double_val);
+ write_ascii_item(fp, int_val, uint_val, double_val,
+ prop->external_type);
+ }
+ }
+
+ fprintf(fp, "\n");
+ }
+ else {
+
+ /* write a binary file */
+
+ /* write out each property of the element */
+ for (j = 0; j < elem->nprops; j++) {
+ prop = elem->props[j];
+ if (elem->store_prop[j] == OTHER_PROP)
+ elem_data = *other_ptr;
+ else
+ elem_data = elem_ptr;
+ if (prop->is_list) {
+ item = elem_data + prop->count_offset;
+ item_size = ply_type_size[prop->count_internal];
+ get_stored_item((void *) item, prop->count_internal,
+ &int_val, &uint_val, &double_val);
+ write_binary_item(fp, int_val, uint_val, double_val,
+ prop->count_external);
+ list_count = uint_val;
+ item_ptr = (char **) (elem_data + prop->offset);
+ item = item_ptr[0];
+ item_size = ply_type_size[prop->internal_type];
+ for (k = 0; k < list_count; k++) {
+ get_stored_item((void *) item, prop->internal_type,
+ &int_val, &uint_val, &double_val);
+ write_binary_item(fp, int_val, uint_val, double_val,
+ prop->external_type);
+ item += item_size;
+ }
+ }
+ else {
+ item = elem_data + prop->offset;
+ item_size = ply_type_size[prop->internal_type];
+ get_stored_item((void *) item, prop->internal_type,
+ &int_val, &uint_val, &double_val);
+ write_binary_item(fp, int_val, uint_val, double_val,
+ prop->external_type);
+ }
+ }
+
+ }
}
/******************************************************************************
-Specify a comment that will be written in the header.
+ Specify a comment that will be written in the header.
-Entry:
- plyfile - file identifier
- comment - the comment to be written
+ Entry:
+ plyfile - file identifier
+ comment - the comment to be written
******************************************************************************/
void ply_put_comment(PlyFile *plyfile, char *comment)
{
- /* (re)allocate space for new comment */
- if (plyfile->num_comments == 0)
- plyfile->comments = (char **) myalloc (sizeof (char *));
- else
- plyfile->comments = (char **) realloc (plyfile->comments,
- sizeof (char *) * (plyfile->num_comments + 1));
-
- /* add comment to list */
- plyfile->comments[plyfile->num_comments] = strdup (comment);
- plyfile->num_comments++;
+ /* (re)allocate space for new comment */
+ if (plyfile->num_comments == 0)
+ plyfile->comments = (char **) myalloc(sizeof(char *));
+ else
+ plyfile->comments = (char **) realloc(plyfile->comments,
+ sizeof(char *) * (plyfile->num_comments + 1));
+
+ /* add comment to list */
+ plyfile->comments[plyfile->num_comments] = strdup(comment);
+ plyfile->num_comments++;
}
/******************************************************************************
-Specify a piece of object information (arbitrary text) that will be written
-in the header.
+ Specify a piece of object information (arbitrary text) that will be written
+ in the header.
-Entry:
- plyfile - file identifier
- obj_info - the text information to be written
+ Entry:
+ plyfile - file identifier
+ obj_info - the text information to be written
******************************************************************************/
void ply_put_obj_info(PlyFile *plyfile, char *obj_info)
{
- /* (re)allocate space for new info */
- if (plyfile->num_obj_info == 0)
- plyfile->obj_info = (char **) myalloc (sizeof (char *));
- else
- plyfile->obj_info = (char **) realloc (plyfile->obj_info,
- sizeof (char *) * (plyfile->num_obj_info + 1));
-
- /* add info to list */
- plyfile->obj_info[plyfile->num_obj_info] = strdup (obj_info);
- plyfile->num_obj_info++;
+ /* (re)allocate space for new info */
+ if (plyfile->num_obj_info == 0)
+ plyfile->obj_info = (char **) myalloc(sizeof(char *));
+ else
+ plyfile->obj_info = (char **) realloc(plyfile->obj_info,
+ sizeof(char *) * (plyfile->num_obj_info + 1));
+
+ /* add info to list */
+ plyfile->obj_info[plyfile->num_obj_info] = strdup(obj_info);
+ plyfile->num_obj_info++;
}
@@ -703,507 +703,507 @@ void ply_put_obj_info(PlyFile *plyfile, char *obj_info)
/******************************************************************************
-Given a file pointer, get ready to read PLY data from the file.
+ Given a file pointer, get ready to read PLY data from the file.
-Entry:
- fp - the given file pointer
+ Entry:
+ fp - the given file pointer
-Exit:
- nelems - number of elements in object
- elem_names - list of element names
- returns a pointer to a PlyFile, used to refer to this file, or NULL if error
+ Exit:
+ nelems - number of elements in object
+ elem_names - list of element names
+ returns a pointer to a PlyFile, used to refer to this file, or NULL if error
******************************************************************************/
PlyFile *ply_read(FILE *fp, int *nelems, char ***elem_names)
{
- int i,j;
- PlyFile *plyfile;
- int nwords;
- char **words;
- int found_format = 0;
- char **elist;
- PlyElement *elem;
- char *orig_line;
-
- /* check for NULL file pointer */
- if (fp == NULL)
- return (NULL);
-
- /* create record for this object */
-
- plyfile = (PlyFile *) myalloc (sizeof (PlyFile));
- plyfile->nelems = 0;
- plyfile->comments = NULL;
- plyfile->num_comments = 0;
- plyfile->obj_info = NULL;
- plyfile->num_obj_info = 0;
- plyfile->fp = fp;
- plyfile->other_elems = NULL;
-
- /* read and parse the file's header */
-
- words = get_words (plyfile->fp, &nwords, &orig_line);
- if (!words || !equal_strings (words[0], "ply"))
- return (NULL);
-
- while (words) {
-
- /* parse words */
-
- if (equal_strings (words[0], "format")) {
- if (nwords != 3)
- return (NULL);
- if (equal_strings (words[1], "ascii"))
- plyfile->file_type = PLY_ASCII;
- else if (equal_strings (words[1], "binary_big_endian"))
- plyfile->file_type = PLY_BINARY_BE;
- else if (equal_strings (words[1], "binary_little_endian"))
- plyfile->file_type = PLY_BINARY_LE;
- else
- return (NULL);
- plyfile->version = (float)atof (words[2]);
- found_format = 1;
- }
- else if (equal_strings (words[0], "element"))
- add_element (plyfile, words);
- else if (equal_strings (words[0], "property"))
- add_property (plyfile, words);
- else if (equal_strings (words[0], "comment"))
- add_comment (plyfile, orig_line);
- else if (equal_strings (words[0], "obj_info"))
- add_obj_info (plyfile, orig_line);
- else if (equal_strings (words[0], "end_header"))
- break;
-
- /* free up words space */
- free (words);
-
- words = get_words (plyfile->fp, &nwords, &orig_line);
- }
-
- /* create tags for each property of each element, to be used */
- /* later to say whether or not to store each property for the user */
-
- for (i = 0; i < plyfile->nelems; i++) {
- elem = plyfile->elems[i];
- elem->store_prop = (char *) myalloc (sizeof (char) * elem->nprops);
- for (j = 0; j < elem->nprops; j++)
- elem->store_prop[j] = DONT_STORE_PROP;
- elem->other_offset = NO_OTHER_PROPS; /* no "other" props by default */
- }
-
- /* set return values about the elements */
-
- elist = (char **) myalloc (sizeof (char *) * plyfile->nelems);
- for (i = 0; i < plyfile->nelems; i++)
- elist[i] = strdup (plyfile->elems[i]->name);
-
- *elem_names = elist;
- *nelems = plyfile->nelems;
-
- /* return a pointer to the file's information */
-
- return (plyfile);
+ int i, j;
+ PlyFile *plyfile;
+ int nwords;
+ char **words;
+ int found_format = 0;
+ char **elist;
+ PlyElement *elem;
+ char *orig_line;
+
+ /* check for NULL file pointer */
+ if (fp == NULL)
+ return (NULL);
+
+ /* create record for this object */
+
+ plyfile = (PlyFile *) myalloc(sizeof(PlyFile));
+ plyfile->nelems = 0;
+ plyfile->comments = NULL;
+ plyfile->num_comments = 0;
+ plyfile->obj_info = NULL;
+ plyfile->num_obj_info = 0;
+ plyfile->fp = fp;
+ plyfile->other_elems = NULL;
+
+ /* read and parse the file's header */
+
+ words = get_words(plyfile->fp, &nwords, &orig_line);
+ if (!words || !equal_strings(words[0], "ply"))
+ return (NULL);
+
+ while (words) {
+
+ /* parse words */
+
+ if (equal_strings(words[0], "format")) {
+ if (nwords != 3)
+ return (NULL);
+ if (equal_strings(words[1], "ascii"))
+ plyfile->file_type = PLY_ASCII;
+ else if (equal_strings(words[1], "binary_big_endian"))
+ plyfile->file_type = PLY_BINARY_BE;
+ else if (equal_strings(words[1], "binary_little_endian"))
+ plyfile->file_type = PLY_BINARY_LE;
+ else
+ return (NULL);
+ plyfile->version = (float)atof(words[2]);
+ found_format = 1;
+ }
+ else if (equal_strings(words[0], "element"))
+ add_element(plyfile, words);
+ else if (equal_strings(words[0], "property"))
+ add_property(plyfile, words);
+ else if (equal_strings(words[0], "comment"))
+ add_comment(plyfile, orig_line);
+ else if (equal_strings(words[0], "obj_info"))
+ add_obj_info(plyfile, orig_line);
+ else if (equal_strings(words[0], "end_header"))
+ break;
+
+ /* free up words space */
+ free(words);
+
+ words = get_words(plyfile->fp, &nwords, &orig_line);
+ }
+
+ /* create tags for each property of each element, to be used */
+ /* later to say whether or not to store each property for the user */
+
+ for (i = 0; i < plyfile->nelems; i++) {
+ elem = plyfile->elems[i];
+ elem->store_prop = (char *) myalloc(sizeof(char) * elem->nprops);
+ for (j = 0; j < elem->nprops; j++)
+ elem->store_prop[j] = DONT_STORE_PROP;
+ elem->other_offset = NO_OTHER_PROPS; /* no "other" props by default */
+ }
+
+ /* set return values about the elements */
+
+ elist = (char **) myalloc(sizeof(char *) * plyfile->nelems);
+ for (i = 0; i < plyfile->nelems; i++)
+ elist[i] = strdup(plyfile->elems[i]->name);
+
+ *elem_names = elist;
+ *nelems = plyfile->nelems;
+
+ /* return a pointer to the file's information */
+
+ return (plyfile);
}
/******************************************************************************
-Open a polygon file for reading.
+ Open a polygon file for reading.
-Entry:
- filename - name of file to read from
+ Entry:
+ filename - name of file to read from
-Exit:
- nelems - number of elements in object
- elem_names - list of element names
- file_type - file type, either ascii or binary
- version - version number of PLY file
- returns a file identifier, used to refer to this file, or NULL if error
+ Exit:
+ nelems - number of elements in object
+ elem_names - list of element names
+ file_type - file type, either ascii or binary
+ version - version number of PLY file
+ returns a file identifier, used to refer to this file, or NULL if error
******************************************************************************/
PlyFile *ply_open_for_reading(
- char *filename,
- int *nelems,
- char ***elem_names,
- int *file_type,
- float *version
-)
+ char *filename,
+ int *nelems,
+ char ***elem_names,
+ int *file_type,
+ float *version
+ )
{
- FILE *fp;
- PlyFile *plyfile;
- char *name;
+ FILE *fp;
+ PlyFile *plyfile;
+ char *name;
- /* tack on the extension .ply, if necessary */
+ /* tack on the extension .ply, if necessary */
- name = (char *) myalloc (sizeof (char) * (strlen (filename) + 5));
- strcpy (name, filename);
- if (strlen (name) < 4 ||
- strcmp (name + strlen (name) - 4, ".ply") != 0)
- strcat (name, ".ply");
+ name = (char *) myalloc(sizeof(char) * (strlen(filename) + 5));
+ strcpy(name, filename);
+ if (strlen(name) < 4 ||
+ strcmp(name + strlen(name) - 4, ".ply") != 0)
+ strcat(name, ".ply");
- /* open the file for reading */
+ /* open the file for reading */
- fp = fopen (name, "r");
- if (fp == NULL)
- return (NULL);
+ fp = fopen(name, "r");
+ if (fp == NULL)
+ return (NULL);
- /* create the PlyFile data structure */
+ /* create the PlyFile data structure */
- plyfile = ply_read (fp, nelems, elem_names);
+ plyfile = ply_read(fp, nelems, elem_names);
- /* determine the file type and version */
+ /* determine the file type and version */
- *file_type = plyfile->file_type;
- *version = plyfile->version;
+ *file_type = plyfile->file_type;
+ *version = plyfile->version;
- /* return a pointer to the file's information */
+ /* return a pointer to the file's information */
- return (plyfile);
+ return (plyfile);
}
/******************************************************************************
-Get information about a particular element.
+ Get information about a particular element.
-Entry:
- plyfile - file identifier
- elem_name - name of element to get information about
+ Entry:
+ plyfile - file identifier
+ elem_name - name of element to get information about
-Exit:
- nelems - number of elements of this type in the file
- nprops - number of properties
- returns a list of properties, or NULL if the file doesn't contain that elem
+ Exit:
+ nelems - number of elements of this type in the file
+ nprops - number of properties
+ returns a list of properties, or NULL if the file doesn't contain that elem
******************************************************************************/
PlyProperty **ply_get_element_description(
- PlyFile *plyfile,
- char *elem_name,
- int *nelems,
- int *nprops
-)
+ PlyFile *plyfile,
+ char *elem_name,
+ int *nelems,
+ int *nprops
+ )
{
- int i;
- PlyElement *elem;
- PlyProperty *prop;
- PlyProperty **prop_list;
-
- /* find information about the element */
- elem = find_element (plyfile, elem_name);
- if (elem == NULL)
- return (NULL);
-
- *nelems = elem->num;
- *nprops = elem->nprops;
-
- /* make a copy of the element's property list */
- prop_list = (PlyProperty **) myalloc (sizeof (PlyProperty *) * elem->nprops);
- for (i = 0; i < elem->nprops; i++) {
- prop = (PlyProperty *) myalloc (sizeof (PlyProperty));
- copy_property (prop, elem->props[i]);
- prop_list[i] = prop;
- }
-
- /* return this duplicate property list */
- return (prop_list);
+ int i;
+ PlyElement *elem;
+ PlyProperty *prop;
+ PlyProperty **prop_list;
+
+ /* find information about the element */
+ elem = find_element(plyfile, elem_name);
+ if (elem == NULL)
+ return (NULL);
+
+ *nelems = elem->num;
+ *nprops = elem->nprops;
+
+ /* make a copy of the element's property list */
+ prop_list = (PlyProperty **) myalloc(sizeof(PlyProperty *) * elem->nprops);
+ for (i = 0; i < elem->nprops; i++) {
+ prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
+ copy_property(prop, elem->props[i]);
+ prop_list[i] = prop;
+ }
+
+ /* return this duplicate property list */
+ return (prop_list);
}
/******************************************************************************
-Specify which properties of an element are to be returned. This should be
-called before a call to the routine ply_get_element().
-
-Entry:
- plyfile - file identifier
- elem_name - which element we're talking about
- nprops - number of properties
- prop_list - list of properties
+ Specify which properties of an element are to be returned. This should be
+ called before a call to the routine ply_get_element().
+
+ Entry:
+ plyfile - file identifier
+ elem_name - which element we're talking about
+ nprops - number of properties
+ prop_list - list of properties
******************************************************************************/
void ply_get_element_setup(
- PlyFile *plyfile,
- char *elem_name,
- int nprops,
- PlyProperty *prop_list
-)
+ PlyFile *plyfile,
+ char *elem_name,
+ int nprops,
+ PlyProperty *prop_list
+ )
{
- int i;
- PlyElement *elem;
- PlyProperty *prop;
- int index;
-
- /* find information about the element */
- elem = find_element (plyfile, elem_name);
- plyfile->which_elem = elem;
-
- /* deposit the property information into the element's description */
- for (i = 0; i < nprops; i++) {
-
- /* look for actual property */
- prop = find_property (elem, prop_list[i].name, &index);
- if (prop == NULL) {
- fprintf (stderr, "Warning: Can't find property '%s' in element '%s'\n",
- prop_list[i].name, elem_name);
- continue;
- }
-
- /* store its description */
- prop->internal_type = prop_list[i].internal_type;
- prop->offset = prop_list[i].offset;
- prop->count_internal = prop_list[i].count_internal;
- prop->count_offset = prop_list[i].count_offset;
-
- /* specify that the user wants this property */
- elem->store_prop[index] = STORE_PROP;
- }
+ int i;
+ PlyElement *elem;
+ PlyProperty *prop;
+ int index;
+
+ /* find information about the element */
+ elem = find_element(plyfile, elem_name);
+ plyfile->which_elem = elem;
+
+ /* deposit the property information into the element's description */
+ for (i = 0; i < nprops; i++) {
+
+ /* look for actual property */
+ prop = find_property(elem, prop_list[i].name, &index);
+ if (prop == NULL) {
+ fprintf(stderr, "Warning: Can't find property '%s' in element '%s'\n",
+ prop_list[i].name, elem_name);
+ continue;
+ }
+
+ /* store its description */
+ prop->internal_type = prop_list[i].internal_type;
+ prop->offset = prop_list[i].offset;
+ prop->count_internal = prop_list[i].count_internal;
+ prop->count_offset = prop_list[i].count_offset;
+
+ /* specify that the user wants this property */
+ elem->store_prop[index] = STORE_PROP;
+ }
}
/******************************************************************************
-Specify a property of an element that is to be returned. This should be
-called (usually multiple times) before a call to the routine ply_get_element().
-This routine should be used in preference to the less flexible old routine
-called ply_get_element_setup().
-
-Entry:
- plyfile - file identifier
- elem_name - which element we're talking about
- prop - property to add to those that will be returned
+ Specify a property of an element that is to be returned. This should be
+ called (usually multiple times) before a call to the routine ply_get_element().
+ This routine should be used in preference to the less flexible old routine
+ called ply_get_element_setup().
+
+ Entry:
+ plyfile - file identifier
+ elem_name - which element we're talking about
+ prop - property to add to those that will be returned
******************************************************************************/
void ply_get_property(
- PlyFile *plyfile,
- char *elem_name,
- PlyProperty *prop
-)
+ PlyFile *plyfile,
+ char *elem_name,
+ PlyProperty *prop
+ )
{
- PlyElement *elem;
- PlyProperty *prop_ptr;
- int index;
-
- /* find information about the element */
- elem = find_element (plyfile, elem_name);
- plyfile->which_elem = elem;
-
- /* deposit the property information into the element's description */
-
- prop_ptr = find_property (elem, prop->name, &index);
- if (prop_ptr == NULL) {
- fprintf (stderr, "Warning: Can't find property '%s' in element '%s'\n",
- prop->name, elem_name);
- return;
- }
- prop_ptr->internal_type = prop->internal_type;
- prop_ptr->offset = prop->offset;
- prop_ptr->count_internal = prop->count_internal;
- prop_ptr->count_offset = prop->count_offset;
-
- /* specify that the user wants this property */
- elem->store_prop[index] = STORE_PROP;
+ PlyElement *elem;
+ PlyProperty *prop_ptr;
+ int index;
+
+ /* find information about the element */
+ elem = find_element(plyfile, elem_name);
+ plyfile->which_elem = elem;
+
+ /* deposit the property information into the element's description */
+
+ prop_ptr = find_property(elem, prop->name, &index);
+ if (prop_ptr == NULL) {
+ fprintf(stderr, "Warning: Can't find property '%s' in element '%s'\n",
+ prop->name, elem_name);
+ return;
+ }
+ prop_ptr->internal_type = prop->internal_type;
+ prop_ptr->offset = prop->offset;
+ prop_ptr->count_internal = prop->count_internal;
+ prop_ptr->count_offset = prop->count_offset;
+
+ /* specify that the user wants this property */
+ elem->store_prop[index] = STORE_PROP;
}
/******************************************************************************
-Read one element from the file. This routine assumes that we're reading
-the type of element specified in the last call to the routine
-ply_get_element_setup().
+ Read one element from the file. This routine assumes that we're reading
+ the type of element specified in the last call to the routine
+ ply_get_element_setup().
-Entry:
- plyfile - file identifier
- elem_ptr - pointer to location where the element information should be put
+ Entry:
+ plyfile - file identifier
+ elem_ptr - pointer to location where the element information should be put
******************************************************************************/
void ply_get_element(PlyFile *plyfile, void *elem_ptr)
{
- if (plyfile->file_type == PLY_ASCII)
- ascii_get_element (plyfile, (char *) elem_ptr);
- else
- binary_get_element (plyfile, (char *) elem_ptr);
+ if (plyfile->file_type == PLY_ASCII)
+ ascii_get_element(plyfile, (char *) elem_ptr);
+ else
+ binary_get_element(plyfile, (char *) elem_ptr);
}
/******************************************************************************
-Extract the comments from the header information of a PLY file.
+ Extract the comments from the header information of a PLY file.
-Entry:
- plyfile - file identifier
+ Entry:
+ plyfile - file identifier
-Exit:
- num_comments - number of comments returned
- returns a pointer to a list of comments
+ Exit:
+ num_comments - number of comments returned
+ returns a pointer to a list of comments
******************************************************************************/
char **ply_get_comments(PlyFile *plyfile, int *num_comments)
{
- *num_comments = plyfile->num_comments;
- return (plyfile->comments);
+ *num_comments = plyfile->num_comments;
+ return (plyfile->comments);
}
/******************************************************************************
-Extract the object information (arbitrary text) from the header information
-of a PLY file.
+ Extract the object information (arbitrary text) from the header information
+ of a PLY file.
-Entry:
- plyfile - file identifier
+ Entry:
+ plyfile - file identifier
-Exit:
- num_obj_info - number of lines of text information returned
- returns a pointer to a list of object info lines
+ Exit:
+ num_obj_info - number of lines of text information returned
+ returns a pointer to a list of object info lines
******************************************************************************/
char **ply_get_obj_info(PlyFile *plyfile, int *num_obj_info)
{
- *num_obj_info = plyfile->num_obj_info;
- return (plyfile->obj_info);
+ *num_obj_info = plyfile->num_obj_info;
+ return (plyfile->obj_info);
}
/******************************************************************************
-Make ready for "other" properties of an element-- those properties that
-the user has not explicitly asked for, but that are to be stashed away
-in a special structure to be carried along with the element's other
-information.
-
-Entry:
- plyfile - file identifier
- elem - element for which we want to save away other properties
+ Make ready for "other" properties of an element-- those properties that
+ the user has not explicitly asked for, but that are to be stashed away
+ in a special structure to be carried along with the element's other
+ information.
+
+ Entry:
+ plyfile - file identifier
+ elem - element for which we want to save away other properties
******************************************************************************/
void setup_other_props(PlyElement *elem)
{
- int i;
- PlyProperty *prop;
- int size = 0;
- int type_size;
-
- /* Examine each property in decreasing order of size. */
- /* We do this so that all data types will be aligned by */
- /* word, half-word, or whatever within the structure. */
-
- for (type_size = 8; type_size > 0; type_size /= 2) {
-
- /* add up the space taken by each property, and save this information */
- /* away in the property descriptor */
-
- for (i = 0; i < elem->nprops; i++) {
-
- /* don't bother with properties we've been asked to store explicitly */
- if (elem->store_prop[i])
- continue;
-
- prop = elem->props[i];
-
- /* internal types will be same as external */
- prop->internal_type = prop->external_type;
- prop->count_internal = prop->count_external;
-
- /* check list case */
- if (prop->is_list) {
-
- /* pointer to list */
- if (type_size == sizeof (void *)) {
- prop->offset = size;
- size += sizeof (void *); /* always use size of a pointer here */
- }
-
- /* count of number of list elements */
- if (type_size == ply_type_size[prop->count_external]) {
- prop->count_offset = size;
- size += ply_type_size[prop->count_external];
- }
- }
- /* not list */
- else if (type_size == ply_type_size[prop->external_type]) {
- prop->offset = size;
- size += ply_type_size[prop->external_type];
- }
- }
-
- }
-
- /* save the size for the other_props structure */
- elem->other_size = size;
+ int i;
+ PlyProperty *prop;
+ int size = 0;
+ int type_size;
+
+ /* Examine each property in decreasing order of size. */
+ /* We do this so that all data types will be aligned by */
+ /* word, half-word, or whatever within the structure. */
+
+ for (type_size = 8; type_size > 0; type_size /= 2) {
+
+ /* add up the space taken by each property, and save this information */
+ /* away in the property descriptor */
+
+ for (i = 0; i < elem->nprops; i++) {
+
+ /* don't bother with properties we've been asked to store explicitly */
+ if (elem->store_prop[i])
+ continue;
+
+ prop = elem->props[i];
+
+ /* internal types will be same as external */
+ prop->internal_type = prop->external_type;
+ prop->count_internal = prop->count_external;
+
+ /* check list case */
+ if (prop->is_list) {
+
+ /* pointer to list */
+ if (type_size == sizeof(void *)) {
+ prop->offset = size;
+ size += sizeof(void *); /* always use size of a pointer here */
+ }
+
+ /* count of number of list elements */
+ if (type_size == ply_type_size[prop->count_external]) {
+ prop->count_offset = size;
+ size += ply_type_size[prop->count_external];
+ }
+ }
+ /* not list */
+ else if (type_size == ply_type_size[prop->external_type]) {
+ prop->offset = size;
+ size += ply_type_size[prop->external_type];
+ }
+ }
+
+ }
+
+ /* save the size for the other_props structure */
+ elem->other_size = size;
}
/******************************************************************************
-Specify that we want the "other" properties of an element to be tucked
-away within the user's structure. The user needn't be concerned for how
-these properties are stored.
+ Specify that we want the "other" properties of an element to be tucked
+ away within the user's structure. The user needn't be concerned for how
+ these properties are stored.
-Entry:
- plyfile - file identifier
- elem_name - name of element that we want to store other_props in
- offset - offset to where other_props will be stored inside user's structure
+ Entry:
+ plyfile - file identifier
+ elem_name - name of element that we want to store other_props in
+ offset - offset to where other_props will be stored inside user's structure
-Exit:
- returns pointer to structure containing description of other_props
+ Exit:
+ returns pointer to structure containing description of other_props
******************************************************************************/
PlyOtherProp *ply_get_other_properties(
- PlyFile *plyfile,
- char *elem_name,
- int offset
-)
+ PlyFile *plyfile,
+ char *elem_name,
+ int offset
+ )
{
- int i;
- PlyElement *elem;
- PlyOtherProp *other;
- PlyProperty *prop;
- int nprops;
-
- /* find information about the element */
- elem = find_element (plyfile, elem_name);
- if (elem == NULL) {
- fprintf (stderr, "ply_get_other_properties: Can't find element '%s'\n",
- elem_name);
- return (NULL);
- }
-
- /* remember that this is the "current" element */
- plyfile->which_elem = elem;
-
- /* save the offset to where to store the other_props */
- elem->other_offset = offset;
-
- /* place the appropriate pointers, etc. in the element's property list */
- setup_other_props (elem);
-
- /* create structure for describing other_props */
- other = (PlyOtherProp *) myalloc (sizeof (PlyOtherProp));
- other->name = strdup (elem_name);
+ int i;
+ PlyElement *elem;
+ PlyOtherProp *other;
+ PlyProperty *prop;
+ int nprops;
+
+ /* find information about the element */
+ elem = find_element(plyfile, elem_name);
+ if (elem == NULL) {
+ fprintf(stderr, "ply_get_other_properties: Can't find element '%s'\n",
+ elem_name);
+ return (NULL);
+ }
+
+ /* remember that this is the "current" element */
+ plyfile->which_elem = elem;
+
+ /* save the offset to where to store the other_props */
+ elem->other_offset = offset;
+
+ /* place the appropriate pointers, etc. in the element's property list */
+ setup_other_props(elem);
+
+ /* create structure for describing other_props */
+ other = (PlyOtherProp *) myalloc(sizeof(PlyOtherProp));
+ other->name = strdup(elem_name);
#if 0
- if (elem->other_offset == NO_OTHER_PROPS) {
- other->size = 0;
- other->props = NULL;
- other->nprops = 0;
- return (other);
- }
+ if (elem->other_offset == NO_OTHER_PROPS) {
+ other->size = 0;
+ other->props = NULL;
+ other->nprops = 0;
+ return (other);
+ }
#endif
- other->size = elem->other_size;
- other->props = (PlyProperty **) myalloc (sizeof(PlyProperty) * elem->nprops);
+ other->size = elem->other_size;
+ other->props = (PlyProperty **) myalloc(sizeof(PlyProperty) * elem->nprops);
- /* save descriptions of each "other" property */
- nprops = 0;
- for (i = 0; i < elem->nprops; i++) {
- if (elem->store_prop[i])
- continue;
- prop = (PlyProperty *) myalloc (sizeof (PlyProperty));
- copy_property (prop, elem->props[i]);
- other->props[nprops] = prop;
- nprops++;
- }
- other->nprops = nprops;
+ /* save descriptions of each "other" property */
+ nprops = 0;
+ for (i = 0; i < elem->nprops; i++) {
+ if (elem->store_prop[i])
+ continue;
+ prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
+ copy_property(prop, elem->props[i]);
+ other->props[nprops] = prop;
+ nprops++;
+ }
+ other->nprops = nprops;
#if 1
- /* set other_offset pointer appropriately if there are NO other properties */
- if (other->nprops == 0) {
- elem->other_offset = NO_OTHER_PROPS;
- }
+ /* set other_offset pointer appropriately if there are NO other properties */
+ if (other->nprops == 0) {
+ elem->other_offset = NO_OTHER_PROPS;
+ }
#endif
- /* return structure */
- return (other);
+ /* return structure */
+ return (other);
}
@@ -1217,151 +1217,151 @@ PlyOtherProp *ply_get_other_properties(
/******************************************************************************
-Grab all the data for an element that a user does not want to explicitly
-read in.
+ Grab all the data for an element that a user does not want to explicitly
+ read in.
-Entry:
- plyfile - pointer to file
- elem_name - name of element whose data is to be read in
- elem_count - number of instances of this element stored in the file
+ Entry:
+ plyfile - pointer to file
+ elem_name - name of element whose data is to be read in
+ elem_count - number of instances of this element stored in the file
-Exit:
- returns pointer to ALL the "other" element data for this PLY file
+ Exit:
+ returns pointer to ALL the "other" element data for this PLY file
******************************************************************************/
-PlyOtherElems *ply_get_other_element (
- PlyFile *plyfile,
- char *elem_name,
- int elem_count
-)
+PlyOtherElems *ply_get_other_element(
+ PlyFile *plyfile,
+ char *elem_name,
+ int elem_count
+ )
{
- int i;
- PlyElement *elem;
- PlyOtherElems *other_elems;
- OtherElem *other;
-
- /* look for appropriate element */
- elem = find_element (plyfile, elem_name);
- if (elem == NULL) {
- fprintf (stderr,
- "ply_get_other_element: can't find element '%s'\n", elem_name);
- exit (-1);
- }
-
- /* create room for the new "other" element, initializing the */
- /* other data structure if necessary */
-
- if (plyfile->other_elems == NULL) {
- plyfile->other_elems = (PlyOtherElems *) myalloc (sizeof (PlyOtherElems));
- other_elems = plyfile->other_elems;
- other_elems->other_list = (OtherElem *) myalloc (sizeof (OtherElem));
- other = &(other_elems->other_list[0]);
- other_elems->num_elems = 1;
- }
- else {
- other_elems = plyfile->other_elems;
- other_elems->other_list = (OtherElem *) realloc (other_elems->other_list,
- sizeof (OtherElem) * other_elems->num_elems + 1);
- other = &(other_elems->other_list[other_elems->num_elems]);
- other_elems->num_elems++;
- }
-
- /* count of element instances in file */
- other->elem_count = elem_count;
-
- /* save name of element */
- other->elem_name = strdup (elem_name);
-
- /* create a list to hold all the current elements */
- other->other_data = (OtherData **)
- malloc (sizeof (OtherData *) * other->elem_count);
-
- /* set up for getting elements */
- other->other_props = ply_get_other_properties (plyfile, elem_name,
- offsetof(OtherData,other_props));
-
- /* grab all these elements */
- for (i = 0; i < other->elem_count; i++) {
- /* grab and element from the file */
- other->other_data[i] = (OtherData *) malloc (sizeof (OtherData));
- ply_get_element (plyfile, (void *) other->other_data[i]);
- }
-
- /* return pointer to the other elements data */
- return (other_elems);
+ int i;
+ PlyElement *elem;
+ PlyOtherElems *other_elems;
+ OtherElem *other;
+
+ /* look for appropriate element */
+ elem = find_element(plyfile, elem_name);
+ if (elem == NULL) {
+ fprintf(stderr,
+ "ply_get_other_element: can't find element '%s'\n", elem_name);
+ exit(-1);
+ }
+
+ /* create room for the new "other" element, initializing the */
+ /* other data structure if necessary */
+
+ if (plyfile->other_elems == NULL) {
+ plyfile->other_elems = (PlyOtherElems *) myalloc(sizeof(PlyOtherElems));
+ other_elems = plyfile->other_elems;
+ other_elems->other_list = (OtherElem *) myalloc(sizeof(OtherElem));
+ other = &(other_elems->other_list[0]);
+ other_elems->num_elems = 1;
+ }
+ else {
+ other_elems = plyfile->other_elems;
+ other_elems->other_list = (OtherElem *) realloc(other_elems->other_list,
+ sizeof(OtherElem) * other_elems->num_elems + 1);
+ other = &(other_elems->other_list[other_elems->num_elems]);
+ other_elems->num_elems++;
+ }
+
+ /* count of element instances in file */
+ other->elem_count = elem_count;
+
+ /* save name of element */
+ other->elem_name = strdup(elem_name);
+
+ /* create a list to hold all the current elements */
+ other->other_data = (OtherData **)
+ malloc(sizeof(OtherData *) * other->elem_count);
+
+ /* set up for getting elements */
+ other->other_props = ply_get_other_properties(plyfile, elem_name,
+ offsetof(OtherData, other_props));
+
+ /* grab all these elements */
+ for (i = 0; i < other->elem_count; i++) {
+ /* grab and element from the file */
+ other->other_data[i] = (OtherData *) malloc(sizeof(OtherData));
+ ply_get_element(plyfile, (void *) other->other_data[i]);
+ }
+
+ /* return pointer to the other elements data */
+ return (other_elems);
}
/******************************************************************************
-Pass along a pointer to "other" elements that we want to save in a given
-PLY file. These other elements were presumably read from another PLY file.
+ Pass along a pointer to "other" elements that we want to save in a given
+ PLY file. These other elements were presumably read from another PLY file.
-Entry:
- plyfile - file pointer in which to store this other element info
- other_elems - info about other elements that we want to store
+ Entry:
+ plyfile - file pointer in which to store this other element info
+ other_elems - info about other elements that we want to store
******************************************************************************/
-void ply_describe_other_elements (
- PlyFile *plyfile,
- PlyOtherElems *other_elems
-)
+void ply_describe_other_elements(
+ PlyFile *plyfile,
+ PlyOtherElems *other_elems
+ )
{
- int i;
- OtherElem *other;
+ int i;
+ OtherElem *other;
- /* ignore this call if there is no other element */
- if (other_elems == NULL)
- return;
+ /* ignore this call if there is no other element */
+ if (other_elems == NULL)
+ return;
- /* save pointer to this information */
- plyfile->other_elems = other_elems;
+ /* save pointer to this information */
+ plyfile->other_elems = other_elems;
- /* describe the other properties of this element */
+ /* describe the other properties of this element */
- for (i = 0; i < other_elems->num_elems; i++) {
- other = &(other_elems->other_list[i]);
- ply_element_count (plyfile, other->elem_name, other->elem_count);
- ply_describe_other_properties (plyfile, other->other_props,
- offsetof(OtherData,other_props));
- }
+ for (i = 0; i < other_elems->num_elems; i++) {
+ other = &(other_elems->other_list[i]);
+ ply_element_count(plyfile, other->elem_name, other->elem_count);
+ ply_describe_other_properties(plyfile, other->other_props,
+ offsetof(OtherData, other_props));
+ }
}
/******************************************************************************
-Write out the "other" elements specified for this PLY file.
+ Write out the "other" elements specified for this PLY file.
-Entry:
- plyfile - pointer to PLY file to write out other elements for
+ Entry:
+ plyfile - pointer to PLY file to write out other elements for
******************************************************************************/
-void ply_put_other_elements (PlyFile *plyfile)
+void ply_put_other_elements(PlyFile *plyfile)
{
- int i,j;
- OtherElem *other;
+ int i, j;
+ OtherElem *other;
- /* make sure we have other elements to write */
- if (plyfile->other_elems == NULL)
- return;
+ /* make sure we have other elements to write */
+ if (plyfile->other_elems == NULL)
+ return;
- /* write out the data for each "other" element */
+ /* write out the data for each "other" element */
- for (i = 0; i < plyfile->other_elems->num_elems; i++) {
+ for (i = 0; i < plyfile->other_elems->num_elems; i++) {
- other = &(plyfile->other_elems->other_list[i]);
- ply_put_element_setup (plyfile, other->elem_name);
+ other = &(plyfile->other_elems->other_list[i]);
+ ply_put_element_setup(plyfile, other->elem_name);
- /* write out each instance of the current element */
- for (j = 0; j < other->elem_count; j++)
- ply_put_element (plyfile, (void *) other->other_data[j]);
- }
+ /* write out each instance of the current element */
+ for (j = 0; j < other->elem_count; j++)
+ ply_put_element(plyfile, (void *) other->other_data[j]);
+ }
}
/******************************************************************************
-Free up storage used by an "other" elements data structure.
+ Free up storage used by an "other" elements data structure.
-Entry:
- other_elems - data structure to free up
+ Entry:
+ other_elems - data structure to free up
******************************************************************************/
@@ -1374,1171 +1374,1172 @@ Entry:
/******************************************************************************
-Close a PLY file.
+ Close a PLY file.
-Entry:
- plyfile - identifier of file to close
+ Entry:
+ plyfile - identifier of file to close
******************************************************************************/
void ply_close(PlyFile *plyfile)
{
- fclose (plyfile->fp);
+ fclose(plyfile->fp);
- /* free up memory associated with the PLY file */
- free (plyfile);
+ /* free up memory associated with the PLY file */
+ free(plyfile);
}
/******************************************************************************
-Get version number and file type of a PlyFile.
+ Get version number and file type of a PlyFile.
-Entry:
- ply - pointer to PLY file
+ Entry:
+ ply - pointer to PLY file
-Exit:
- version - version of the file
- file_type - PLY_ASCII, PLY_BINARY_BE, or PLY_BINARY_LE
+ Exit:
+ version - version of the file
+ file_type - PLY_ASCII, PLY_BINARY_BE, or PLY_BINARY_LE
******************************************************************************/
void ply_get_info(PlyFile *ply, float *version, int *file_type)
{
- if (ply == NULL)
- return;
+ if (ply == NULL)
+ return;
- *version = ply->version;
- *file_type = ply->file_type;
+ *version = ply->version;
+ *file_type = ply->file_type;
}
/******************************************************************************
-Compare two strings. Returns 1 if they are the same, 0 if not.
+ Compare two strings. Returns 1 if they are the same, 0 if not.
******************************************************************************/
int equal_strings(char *s1, char *s2)
{
- while (*s1 && *s2)
- if (*s1++ != *s2++)
- return (0);
+ while (*s1 && *s2)
+ if (*s1++ != *s2++)
+ return (0);
- if (*s1 != *s2)
- return (0);
- else
- return (1);
+ if (*s1 != *s2)
+ return (0);
+ else
+ return (1);
}
/******************************************************************************
-Find an element from the element list of a given PLY object.
+ Find an element from the element list of a given PLY object.
-Entry:
- plyfile - file id for PLY file
- element - name of element we're looking for
+ Entry:
+ plyfile - file id for PLY file
+ element - name of element we're looking for
-Exit:
- returns the element, or NULL if not found
+ Exit:
+ returns the element, or NULL if not found
******************************************************************************/
PlyElement *find_element(PlyFile *plyfile, char *element)
{
- int i;
+ int i;
- for (i = 0; i < plyfile->nelems; i++)
- if (equal_strings (element, plyfile->elems[i]->name))
- return (plyfile->elems[i]);
+ for (i = 0; i < plyfile->nelems; i++)
+ if (equal_strings(element, plyfile->elems[i]->name))
+ return (plyfile->elems[i]);
- return (NULL);
+ return (NULL);
}
/******************************************************************************
-Find a property in the list of properties of a given element.
+ Find a property in the list of properties of a given element.
-Entry:
- elem - pointer to element in which we want to find the property
- prop_name - name of property to find
+ Entry:
+ elem - pointer to element in which we want to find the property
+ prop_name - name of property to find
-Exit:
- index - index to position in list
- returns a pointer to the property, or NULL if not found
+ Exit:
+ index - index to position in list
+ returns a pointer to the property, or NULL if not found
******************************************************************************/
PlyProperty *find_property(PlyElement *elem, char *prop_name, int *index)
{
- int i;
+ int i;
- for (i = 0; i < elem->nprops; i++)
- if (equal_strings (prop_name, elem->props[i]->name)) {
- *index = i;
- return (elem->props[i]);
- }
+ for (i = 0; i < elem->nprops; i++)
+ if (equal_strings(prop_name, elem->props[i]->name)) {
+ *index = i;
+ return (elem->props[i]);
+ }
- *index = -1;
- return (NULL);
+ *index = -1;
+ return (NULL);
}
/******************************************************************************
-Read an element from an ascii file.
+ Read an element from an ascii file.
-Entry:
- plyfile - file identifier
- elem_ptr - pointer to element
+ Entry:
+ plyfile - file identifier
+ elem_ptr - pointer to element
******************************************************************************/
void ascii_get_element(PlyFile *plyfile, char *elem_ptr)
{
- int j,k;
- PlyElement *elem;
- PlyProperty *prop;
- char **words;
- int nwords;
- int which_word;
- char *elem_data,*item;
- char *item_ptr;
- int item_size;
- int int_val;
- unsigned int uint_val;
- double double_val;
- int list_count;
- int store_it;
- char **store_array;
- char *orig_line;
- char *other_data;
- int other_flag;
-
- other_flag = 0;
+ int j, k;
+ PlyElement *elem;
+ PlyProperty *prop;
+ char **words;
+ int nwords;
+ int which_word;
+ char *elem_data, *item;
+ char *item_ptr;
+ int item_size;
+ int int_val;
+ unsigned int uint_val;
+ double double_val;
+ int list_count;
+ int store_it;
+ char **store_array;
+ char *orig_line;
+ char *other_data;
+ int other_flag;
+
+ other_flag = 0;
other_data = NULL;
item = NULL;
item_size = 0;
- /* the kind of element we're reading currently */
- elem = plyfile->which_elem;
-
- /* do we need to setup for other_props? */
-
- if (elem->other_offset != NO_OTHER_PROPS) {
- char **ptr;
- other_flag = 1;
- /* make room for other_props */
- other_data = (char *) myalloc (elem->other_size);
- /* store pointer in user's structure to the other_props */
- ptr = (char **) (elem_ptr + elem->other_offset);
- *ptr = other_data;
- } else {
- other_flag = 0;
- other_data = NULL;
- item = NULL;
- item_size = 0;
- }
-
- /* read in the element */
-
- words = get_words (plyfile->fp, &nwords, &orig_line);
- if (words == NULL) {
- fprintf (stderr, "ply_get_element: unexpected end of file\n");
- exit (-1);
- }
-
- which_word = 0;
-
- for (j = 0; j < elem->nprops; j++) {
-
- prop = elem->props[j];
- store_it = (elem->store_prop[j] | other_flag);
-
- /* store either in the user's structure or in other_props */
- if (elem->store_prop[j])
- elem_data = elem_ptr;
- else
- elem_data = other_data;
-
- if (prop->is_list) { /* a list */
-
- /* get and store the number of items in the list */
- get_ascii_item (words[which_word++], prop->count_external,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- item = elem_data + prop->count_offset;
- store_item(item, prop->count_internal, int_val, uint_val, double_val);
- }
-
- /* allocate space for an array of items and store a ptr to the array */
- list_count = int_val;
- item_size = ply_type_size[prop->internal_type];
- store_array = (char **) (elem_data + prop->offset);
-
- if (list_count == 0) {
- if (store_it)
- *store_array = NULL;
- }
- else {
- if (store_it) {
- item_ptr = (char *) myalloc (sizeof (char) * item_size * list_count);
- item = item_ptr;
- *store_array = item_ptr;
- }
-
- /* read items and store them into the array */
- for (k = 0; k < list_count; k++) {
- get_ascii_item (words[which_word++], prop->external_type,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- store_item (item, prop->internal_type,
- int_val, uint_val, double_val);
- item += item_size;
- }
- }
- }
-
- }
- else { /* not a list */
- get_ascii_item (words[which_word++], prop->external_type,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- item = elem_data + prop->offset;
- store_item (item, prop->internal_type, int_val, uint_val, double_val);
- }
- }
-
- }
-
- free (words);
+ /* the kind of element we're reading currently */
+ elem = plyfile->which_elem;
+
+ /* do we need to setup for other_props? */
+
+ if (elem->other_offset != NO_OTHER_PROPS) {
+ char **ptr;
+ other_flag = 1;
+ /* make room for other_props */
+ other_data = (char *) myalloc(elem->other_size);
+ /* store pointer in user's structure to the other_props */
+ ptr = (char **) (elem_ptr + elem->other_offset);
+ *ptr = other_data;
+ }
+ else {
+ other_flag = 0;
+ other_data = NULL;
+ item = NULL;
+ item_size = 0;
+ }
+
+ /* read in the element */
+
+ words = get_words(plyfile->fp, &nwords, &orig_line);
+ if (words == NULL) {
+ fprintf(stderr, "ply_get_element: unexpected end of file\n");
+ exit(-1);
+ }
+
+ which_word = 0;
+
+ for (j = 0; j < elem->nprops; j++) {
+
+ prop = elem->props[j];
+ store_it = (elem->store_prop[j] | other_flag);
+
+ /* store either in the user's structure or in other_props */
+ if (elem->store_prop[j])
+ elem_data = elem_ptr;
+ else
+ elem_data = other_data;
+
+ if (prop->is_list) { /* a list */
+
+ /* get and store the number of items in the list */
+ get_ascii_item(words[which_word++], prop->count_external,
+ &int_val, &uint_val, &double_val);
+ if (store_it) {
+ item = elem_data + prop->count_offset;
+ store_item(item, prop->count_internal, int_val, uint_val, double_val);
+ }
+
+ /* allocate space for an array of items and store a ptr to the array */
+ list_count = int_val;
+ item_size = ply_type_size[prop->internal_type];
+ store_array = (char **) (elem_data + prop->offset);
+
+ if (list_count == 0) {
+ if (store_it)
+ *store_array = NULL;
+ }
+ else {
+ if (store_it) {
+ item_ptr = (char *) myalloc(sizeof(char) * item_size * list_count);
+ item = item_ptr;
+ *store_array = item_ptr;
+ }
+
+ /* read items and store them into the array */
+ for (k = 0; k < list_count; k++) {
+ get_ascii_item(words[which_word++], prop->external_type,
+ &int_val, &uint_val, &double_val);
+ if (store_it) {
+ store_item(item, prop->internal_type,
+ int_val, uint_val, double_val);
+ item += item_size;
+ }
+ }
+ }
+
+ }
+ else { /* not a list */
+ get_ascii_item(words[which_word++], prop->external_type,
+ &int_val, &uint_val, &double_val);
+ if (store_it) {
+ item = elem_data + prop->offset;
+ store_item(item, prop->internal_type, int_val, uint_val, double_val);
+ }
+ }
+
+ }
+
+ free(words);
}
/******************************************************************************
-Read an element from a binary file.
+ Read an element from a binary file.
-Entry:
- plyfile - file identifier
- elem_ptr - pointer to an element
+ Entry:
+ plyfile - file identifier
+ elem_ptr - pointer to an element
******************************************************************************/
void binary_get_element(PlyFile *plyfile, char *elem_ptr)
{
- int j,k;
- PlyElement *elem;
- PlyProperty *prop;
- FILE *fp = plyfile->fp;
- char *elem_data,*item;
- char *item_ptr;
- int item_size;
- int int_val;
- unsigned int uint_val;
- double double_val;
- int list_count;
- int store_it;
- char **store_array;
- char *other_data;
- int other_flag;
-
-
- other_flag = 0;
- other_data = NULL;
- item = NULL;
- item_size = 0;
-
- /* the kind of element we're reading currently */
- elem = plyfile->which_elem;
-
- /* do we need to setup for other_props? */
-
- if (elem->other_offset != NO_OTHER_PROPS) {
- char **ptr;
- other_flag = 1;
- /* make room for other_props */
- other_data = (char *) myalloc (elem->other_size);
- /* store pointer in user's structure to the other_props */
- ptr = (char **) (elem_ptr + elem->other_offset);
- *ptr = other_data;
- }
- else {
- other_flag = 0;
+ int j, k;
+ PlyElement *elem;
+ PlyProperty *prop;
+ FILE *fp = plyfile->fp;
+ char *elem_data, *item;
+ char *item_ptr;
+ int item_size;
+ int int_val;
+ unsigned int uint_val;
+ double double_val;
+ int list_count;
+ int store_it;
+ char **store_array;
+ char *other_data;
+ int other_flag;
+
+
+ other_flag = 0;
other_data = NULL;
item = NULL;
item_size = 0;
- }
- /* read in a number of elements */
-
- for (j = 0; j < elem->nprops; j++) {
-
- prop = elem->props[j];
- store_it = (elem->store_prop[j] | other_flag);
-
- /* store either in the user's structure or in other_props */
- if (elem->store_prop[j])
- elem_data = elem_ptr;
- else
- elem_data = other_data;
-
- if (prop->is_list) { /* a list */
-
- /* get and store the number of items in the list */
- get_binary_item (fp, prop->count_external,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- item = elem_data + prop->count_offset;
- store_item(item, prop->count_internal, int_val, uint_val, double_val);
- }
-
- /* allocate space for an array of items and store a ptr to the array */
- list_count = int_val;
- /* The "if" was added by Afra Zomorodian 8/22/95
- * so that zipper won't crash reading plies that have additional
- * properties.
- */
- if (store_it) {
- item_size = ply_type_size[prop->internal_type];
- }
- store_array = (char **) (elem_data + prop->offset);
- if (list_count == 0) {
- if (store_it)
- *store_array = NULL;
- }
- else {
- if (store_it) {
- item_ptr = (char *) myalloc (sizeof (char) * item_size * list_count);
- item = item_ptr;
- *store_array = item_ptr;
- }
-
- /* read items and store them into the array */
- for (k = 0; k < list_count; k++) {
- get_binary_item (fp, prop->external_type,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- store_item (item, prop->internal_type,
- int_val, uint_val, double_val);
- item += item_size;
- }
- }
- }
-
- }
- else { /* not a list */
- get_binary_item (fp, prop->external_type,
- &int_val, &uint_val, &double_val);
- if (store_it) {
- item = elem_data + prop->offset;
- store_item (item, prop->internal_type, int_val, uint_val, double_val);
- }
- }
-
- }
+
+ /* the kind of element we're reading currently */
+ elem = plyfile->which_elem;
+
+ /* do we need to setup for other_props? */
+
+ if (elem->other_offset != NO_OTHER_PROPS) {
+ char **ptr;
+ other_flag = 1;
+ /* make room for other_props */
+ other_data = (char *) myalloc(elem->other_size);
+ /* store pointer in user's structure to the other_props */
+ ptr = (char **) (elem_ptr + elem->other_offset);
+ *ptr = other_data;
+ }
+ else {
+ other_flag = 0;
+ other_data = NULL;
+ item = NULL;
+ item_size = 0;
+ }
+ /* read in a number of elements */
+
+ for (j = 0; j < elem->nprops; j++) {
+
+ prop = elem->props[j];
+ store_it = (elem->store_prop[j] | other_flag);
+
+ /* store either in the user's structure or in other_props */
+ if (elem->store_prop[j])
+ elem_data = elem_ptr;
+ else
+ elem_data = other_data;
+
+ if (prop->is_list) { /* a list */
+
+ /* get and store the number of items in the list */
+ get_binary_item(fp, prop->count_external,
+ &int_val, &uint_val, &double_val);
+ if (store_it) {
+ item = elem_data + prop->count_offset;
+ store_item(item, prop->count_internal, int_val, uint_val, double_val);
+ }
+
+ /* allocate space for an array of items and store a ptr to the array */
+ list_count = int_val;
+ /* The "if" was added by Afra Zomorodian 8/22/95
+ * so that zipper won't crash reading plies that have additional
+ * properties.
+ */
+ if (store_it) {
+ item_size = ply_type_size[prop->internal_type];
+ }
+ store_array = (char **) (elem_data + prop->offset);
+ if (list_count == 0) {
+ if (store_it)
+ *store_array = NULL;
+ }
+ else {
+ if (store_it) {
+ item_ptr = (char *) myalloc(sizeof(char) * item_size * list_count);
+ item = item_ptr;
+ *store_array = item_ptr;
+ }
+
+ /* read items and store them into the array */
+ for (k = 0; k < list_count; k++) {
+ get_binary_item(fp, prop->external_type,
+ &int_val, &uint_val, &double_val);
+ if (store_it) {
+ store_item(item, prop->internal_type,
+ int_val, uint_val, double_val);
+ item += item_size;
+ }
+ }
+ }
+
+ }
+ else { /* not a list */
+ get_binary_item(fp, prop->external_type,
+ &int_val, &uint_val, &double_val);
+ if (store_it) {
+ item = elem_data + prop->offset;
+ store_item(item, prop->internal_type, int_val, uint_val, double_val);
+ }
+ }
+
+ }
}
/******************************************************************************
-Write to a file the word that represents a PLY data type.
+ Write to a file the word that represents a PLY data type.
-Entry:
- fp - file pointer
- code - code for type
+ Entry:
+ fp - file pointer
+ code - code for type
******************************************************************************/
-void write_scalar_type (FILE *fp, int code)
+void write_scalar_type(FILE *fp, int code)
{
- /* make sure this is a valid code */
+ /* make sure this is a valid code */
- if (code <= PLY_START_TYPE || code >= PLY_END_TYPE) {
- fprintf (stderr, "write_scalar_type: bad data code = %d\n", code);
- exit (-1);
- }
+ if (code <= PLY_START_TYPE || code >= PLY_END_TYPE) {
+ fprintf(stderr, "write_scalar_type: bad data code = %d\n", code);
+ exit(-1);
+ }
- /* write the code to a file */
+ /* write the code to a file */
- fprintf (fp, "%s", type_names[code]);
+ fprintf(fp, "%s", type_names[code]);
}
/******************************************************************************
-Get a text line from a file and break it up into words.
+ Get a text line from a file and break it up into words.
-IMPORTANT: The calling routine call "free" on the returned pointer once
-finished with it.
+ IMPORTANT: The calling routine call "free" on the returned pointer once
+ finished with it.
-Entry:
- fp - file to read from
+ Entry:
+ fp - file to read from
-Exit:
- nwords - number of words returned
- orig_line - the original line of characters
- returns a list of words from the line, or NULL if end-of-file
+ Exit:
+ nwords - number of words returned
+ orig_line - the original line of characters
+ returns a list of words from the line, or NULL if end-of-file
******************************************************************************/
char **get_words(FILE *fp, int *nwords, char **orig_line)
{
#define BIG_STRING 4096
- static char str[BIG_STRING];
- static char str_copy[BIG_STRING];
- char **words;
- int max_words = 10;
- int num_words = 0;
- char *ptr,*ptr2;
- char *result;
-
- words = (char **) myalloc (sizeof (char *) * max_words);
-
- /* read in a line */
- result = fgets (str, BIG_STRING, fp);
- if (result == NULL) {
- *nwords = 0;
- *orig_line = NULL;
- return (NULL);
- }
-
- /* convert line-feed and tabs into spaces */
- /* (this guarentees that there will be a space before the */
- /* null character at the end of the string) */
-
- str[BIG_STRING-2] = ' ';
- str[BIG_STRING-1] = '\0';
-
- for (ptr = str, ptr2 = str_copy; *ptr != '\0'; ptr++, ptr2++) {
- *ptr2 = *ptr;
- if (*ptr == '\t') {
- *ptr = ' ';
- *ptr2 = ' ';
- }
- else if (*ptr == '\n') {
- *ptr = ' ';
- *ptr2 = '\0';
- break;
- }
- }
-
- /* find the words in the line */
-
- ptr = str;
- while (*ptr != '\0') {
-
- /* jump over leading spaces */
- while (*ptr == ' ')
- ptr++;
-
- /* break if we reach the end */
- if (*ptr == '\0')
- break;
-
- /* save pointer to beginning of word */
- if (num_words >= max_words) {
- max_words += 10;
- words = (char **) realloc (words, sizeof (char *) * max_words);
- }
- words[num_words++] = ptr;
-
- /* jump over non-spaces */
- while (*ptr != ' ')
- ptr++;
-
- /* place a null character here to mark the end of the word */
- *ptr++ = '\0';
- }
-
- /* return the list of words */
- *nwords = num_words;
- *orig_line = str_copy;
- return (words);
+ static char str[BIG_STRING];
+ static char str_copy[BIG_STRING];
+ char **words;
+ int max_words = 10;
+ int num_words = 0;
+ char *ptr, *ptr2;
+ char *result;
+
+ words = (char **) myalloc(sizeof(char *) * max_words);
+
+ /* read in a line */
+ result = fgets(str, BIG_STRING, fp);
+ if (result == NULL) {
+ *nwords = 0;
+ *orig_line = NULL;
+ return (NULL);
+ }
+
+ /* convert line-feed and tabs into spaces */
+ /* (this guarentees that there will be a space before the */
+ /* null character at the end of the string) */
+
+ str[BIG_STRING - 2] = ' ';
+ str[BIG_STRING - 1] = '\0';
+
+ for (ptr = str, ptr2 = str_copy; *ptr != '\0'; ptr++, ptr2++) {
+ *ptr2 = *ptr;
+ if (*ptr == '\t') {
+ *ptr = ' ';
+ *ptr2 = ' ';
+ }
+ else if (*ptr == '\n') {
+ *ptr = ' ';
+ *ptr2 = '\0';
+ break;
+ }
+ }
+
+ /* find the words in the line */
+
+ ptr = str;
+ while (*ptr != '\0') {
+
+ /* jump over leading spaces */
+ while (*ptr == ' ')
+ ptr++;
+
+ /* break if we reach the end */
+ if (*ptr == '\0')
+ break;
+
+ /* save pointer to beginning of word */
+ if (num_words >= max_words) {
+ max_words += 10;
+ words = (char **) realloc(words, sizeof(char *) * max_words);
+ }
+ words[num_words++] = ptr;
+
+ /* jump over non-spaces */
+ while (*ptr != ' ')
+ ptr++;
+
+ /* place a null character here to mark the end of the word */
+ *ptr++ = '\0';
+ }
+
+ /* return the list of words */
+ *nwords = num_words;
+ *orig_line = str_copy;
+ return (words);
}
/******************************************************************************
-Return the value of an item, given a pointer to it and its type.
+ Return the value of an item, given a pointer to it and its type.
-Entry:
- item - pointer to item
- type - data type that "item" points to
+ Entry:
+ item - pointer to item
+ type - data type that "item" points to
-Exit:
- returns a double-precision float that contains the value of the item
+ Exit:
+ returns a double-precision float that contains the value of the item
******************************************************************************/
double get_item_value(char *item, int type)
{
- unsigned char *puchar;
- char *pchar;
- short int *pshort;
- unsigned short int *pushort;
- int *pint;
- unsigned int *puint;
- float *pfloat;
- double *pdouble;
- int int_value;
- unsigned int uint_value;
- double double_value;
-
- switch (type) {
- case PLY_CHAR:
- pchar = (char *) item;
- int_value = *pchar;
- return ((double) int_value);
- case PLY_UCHAR:
- puchar = (unsigned char *) item;
- int_value = *puchar;
- return ((double) int_value);
- case PLY_SHORT:
- pshort = (short int *) item;
- int_value = *pshort;
- return ((double) int_value);
- case PLY_USHORT:
- pushort = (unsigned short int *) item;
- int_value = *pushort;
- return ((double) int_value);
- case PLY_INT:
- pint = (int *) item;
- int_value = *pint;
- return ((double) int_value);
- case PLY_UINT:
- puint = (unsigned int *) item;
- uint_value = *puint;
- return ((double) uint_value);
- case PLY_FLOAT:
- pfloat = (float *) item;
- double_value = *pfloat;
- return (double_value);
- case PLY_DOUBLE:
- pdouble = (double *) item;
- double_value = *pdouble;
- return (double_value);
- default:
- fprintf (stderr, "get_item_value: bad type = %d\n", type);
- exit (-1);
- }
+ unsigned char *puchar;
+ char *pchar;
+ short int *pshort;
+ unsigned short int *pushort;
+ int *pint;
+ unsigned int *puint;
+ float *pfloat;
+ double *pdouble;
+ int int_value;
+ unsigned int uint_value;
+ double double_value;
+
+ switch (type) {
+ case PLY_CHAR:
+ pchar = (char *) item;
+ int_value = *pchar;
+ return ((double) int_value);
+ case PLY_UCHAR:
+ puchar = (unsigned char *) item;
+ int_value = *puchar;
+ return ((double) int_value);
+ case PLY_SHORT:
+ pshort = (short int *) item;
+ int_value = *pshort;
+ return ((double) int_value);
+ case PLY_USHORT:
+ pushort = (unsigned short int *) item;
+ int_value = *pushort;
+ return ((double) int_value);
+ case PLY_INT:
+ pint = (int *) item;
+ int_value = *pint;
+ return ((double) int_value);
+ case PLY_UINT:
+ puint = (unsigned int *) item;
+ uint_value = *puint;
+ return ((double) uint_value);
+ case PLY_FLOAT:
+ pfloat = (float *) item;
+ double_value = *pfloat;
+ return (double_value);
+ case PLY_DOUBLE:
+ pdouble = (double *) item;
+ double_value = *pdouble;
+ return (double_value);
+ default:
+ fprintf(stderr, "get_item_value: bad type = %d\n", type);
+ exit(-1);
+ }
}
/******************************************************************************
-Write out an item to a file as raw binary bytes.
-
-Entry:
- fp - file to write to
- int_val - integer version of item
- uint_val - unsigned integer version of item
- double_val - double-precision float version of item
- type - data type to write out
+ Write out an item to a file as raw binary bytes.
+
+ Entry:
+ fp - file to write to
+ int_val - integer version of item
+ uint_val - unsigned integer version of item
+ double_val - double-precision float version of item
+ type - data type to write out
******************************************************************************/
void write_binary_item(
- FILE *fp,
- int int_val,
- unsigned int uint_val,
- double double_val,
- int type
-)
+ FILE *fp,
+ int int_val,
+ unsigned int uint_val,
+ double double_val,
+ int type
+ )
{
- unsigned char uchar_val;
- char char_val;
- unsigned short ushort_val;
- short short_val;
- float float_val;
-
- switch (type) {
- case PLY_CHAR:
- char_val = (char)int_val;
- fwrite (&char_val, 1, 1, fp);
- break;
- case PLY_SHORT:
- short_val = (short)int_val;
- fwrite (&short_val, 2, 1, fp);
- break;
- case PLY_INT:
- fwrite (&int_val, 4, 1, fp);
- break;
- case PLY_UCHAR:
- uchar_val = (unsigned char) uint_val;
- fwrite (&uchar_val, 1, 1, fp);
- break;
- case PLY_USHORT:
- ushort_val = (unsigned short)uint_val;
- fwrite (&ushort_val, 2, 1, fp);
- break;
- case PLY_UINT:
- fwrite (&uint_val, 4, 1, fp);
- break;
- case PLY_FLOAT:
- float_val = (float) double_val;
- fwrite (&float_val, 4, 1, fp);
- break;
- case PLY_DOUBLE:
- fwrite (&double_val, 8, 1, fp);
- break;
- default:
- fprintf (stderr, "write_binary_item: bad type = %d\n", type);
- exit (-1);
- }
+ unsigned char uchar_val;
+ char char_val;
+ unsigned short ushort_val;
+ short short_val;
+ float float_val;
+
+ switch (type) {
+ case PLY_CHAR:
+ char_val = (char)int_val;
+ fwrite(&char_val, 1, 1, fp);
+ break;
+ case PLY_SHORT:
+ short_val = (short)int_val;
+ fwrite(&short_val, 2, 1, fp);
+ break;
+ case PLY_INT:
+ fwrite(&int_val, 4, 1, fp);
+ break;
+ case PLY_UCHAR:
+ uchar_val = (unsigned char) uint_val;
+ fwrite(&uchar_val, 1, 1, fp);
+ break;
+ case PLY_USHORT:
+ ushort_val = (unsigned short)uint_val;
+ fwrite(&ushort_val, 2, 1, fp);
+ break;
+ case PLY_UINT:
+ fwrite(&uint_val, 4, 1, fp);
+ break;
+ case PLY_FLOAT:
+ float_val = (float) double_val;
+ fwrite(&float_val, 4, 1, fp);
+ break;
+ case PLY_DOUBLE:
+ fwrite(&double_val, 8, 1, fp);
+ break;
+ default:
+ fprintf(stderr, "write_binary_item: bad type = %d\n", type);
+ exit(-1);
+ }
}
/******************************************************************************
-Write out an item to a file as ascii characters.
-
-Entry:
- fp - file to write to
- int_val - integer version of item
- uint_val - unsigned integer version of item
- double_val - double-precision float version of item
- type - data type to write out
+ Write out an item to a file as ascii characters.
+
+ Entry:
+ fp - file to write to
+ int_val - integer version of item
+ uint_val - unsigned integer version of item
+ double_val - double-precision float version of item
+ type - data type to write out
******************************************************************************/
void write_ascii_item(
- FILE *fp,
- int int_val,
- unsigned int uint_val,
- double double_val,
- int type
-)
+ FILE *fp,
+ int int_val,
+ unsigned int uint_val,
+ double double_val,
+ int type
+ )
{
- switch (type) {
- case PLY_CHAR:
- case PLY_SHORT:
- case PLY_INT:
- fprintf (fp, "%d ", int_val);
- break;
- case PLY_UCHAR:
- case PLY_USHORT:
- case PLY_UINT:
- fprintf (fp, "%u ", uint_val);
- break;
- case PLY_FLOAT:
- case PLY_DOUBLE:
- fprintf (fp, "%g ", double_val);
- break;
- default:
- fprintf (stderr, "write_ascii_item: bad type = %d\n", type);
- exit (-1);
- }
+ switch (type) {
+ case PLY_CHAR:
+ case PLY_SHORT:
+ case PLY_INT:
+ fprintf(fp, "%d ", int_val);
+ break;
+ case PLY_UCHAR:
+ case PLY_USHORT:
+ case PLY_UINT:
+ fprintf(fp, "%u ", uint_val);
+ break;
+ case PLY_FLOAT:
+ case PLY_DOUBLE:
+ fprintf(fp, "%g ", double_val);
+ break;
+ default:
+ fprintf(stderr, "write_ascii_item: bad type = %d\n", type);
+ exit(-1);
+ }
}
/******************************************************************************
-Write out an item to a file as ascii characters.
+ Write out an item to a file as ascii characters.
-Entry:
- fp - file to write to
- item - pointer to item to write
- type - data type that "item" points to
+ Entry:
+ fp - file to write to
+ item - pointer to item to write
+ type - data type that "item" points to
-Exit:
- returns a double-precision float that contains the value of the written item
+ Exit:
+ returns a double-precision float that contains the value of the written item
******************************************************************************/
double old_write_ascii_item(FILE *fp, char *item, int type)
{
- unsigned char *puchar;
- char *pchar;
- short int *pshort;
- unsigned short int *pushort;
- int *pint;
- unsigned int *puint;
- float *pfloat;
- double *pdouble;
- int int_value;
- unsigned int uint_value;
- double double_value;
-
- switch (type) {
- case PLY_CHAR:
- pchar = (char *) item;
- int_value = *pchar;
- fprintf (fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_UCHAR:
- puchar = (unsigned char *) item;
- int_value = *puchar;
- fprintf (fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_SHORT:
- pshort = (short int *) item;
- int_value = *pshort;
- fprintf (fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_USHORT:
- pushort = (unsigned short int *) item;
- int_value = *pushort;
- fprintf (fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_INT:
- pint = (int *) item;
- int_value = *pint;
- fprintf (fp, "%d ", int_value);
- return ((double) int_value);
- case PLY_UINT:
- puint = (unsigned int *) item;
- uint_value = *puint;
- fprintf (fp, "%u ", uint_value);
- return ((double) uint_value);
- case PLY_FLOAT:
- pfloat = (float *) item;
- double_value = *pfloat;
- fprintf (fp, "%g ", double_value);
- return (double_value);
- case PLY_DOUBLE:
- pdouble = (double *) item;
- double_value = *pdouble;
- fprintf (fp, "%g ", double_value);
- return (double_value);
- default:
- fprintf (stderr, "old_write_ascii_item: bad type = %d\n", type);
- exit (-1);
- }
+ unsigned char *puchar;
+ char *pchar;
+ short int *pshort;
+ unsigned short int *pushort;
+ int *pint;
+ unsigned int *puint;
+ float *pfloat;
+ double *pdouble;
+ int int_value;
+ unsigned int uint_value;
+ double double_value;
+
+ switch (type) {
+ case PLY_CHAR:
+ pchar = (char *) item;
+ int_value = *pchar;
+ fprintf(fp, "%d ", int_value);
+ return ((double) int_value);
+ case PLY_UCHAR:
+ puchar = (unsigned char *) item;
+ int_value = *puchar;
+ fprintf(fp, "%d ", int_value);
+ return ((double) int_value);
+ case PLY_SHORT:
+ pshort = (short int *) item;
+ int_value = *pshort;
+ fprintf(fp, "%d ", int_value);
+ return ((double) int_value);
+ case PLY_USHORT:
+ pushort = (unsigned short int *) item;
+ int_value = *pushort;
+ fprintf(fp, "%d ", int_value);
+ return ((double) int_value);
+ case PLY_INT:
+ pint = (int *) item;
+ int_value = *pint;
+ fprintf(fp, "%d ", int_value);
+ return ((double) int_value);
+ case PLY_UINT:
+ puint = (unsigned int *) item;
+ uint_value = *puint;
+ fprintf(fp, "%u ", uint_value);
+ return ((double) uint_value);
+ case PLY_FLOAT:
+ pfloat = (float *) item;
+ double_value = *pfloat;
+ fprintf(fp, "%g ", double_value);
+ return (double_value);
+ case PLY_DOUBLE:
+ pdouble = (double *) item;
+ double_value = *pdouble;
+ fprintf(fp, "%g ", double_value);
+ return (double_value);
+ default:
+ fprintf(stderr, "old_write_ascii_item: bad type = %d\n", type);
+ exit(-1);
+ }
}
/******************************************************************************
-Get the value of an item that is in memory, and place the result
-into an integer, an unsigned integer and a double.
+ Get the value of an item that is in memory, and place the result
+ into an integer, an unsigned integer and a double.
-Entry:
- ptr - pointer to the item
- type - data type supposedly in the item
+ Entry:
+ ptr - pointer to the item
+ type - data type supposedly in the item
-Exit:
- int_val - integer value
- uint_val - unsigned integer value
- double_val - double-precision floating point value
+ Exit:
+ int_val - integer value
+ uint_val - unsigned integer value
+ double_val - double-precision floating point value
******************************************************************************/
void get_stored_item(
- void *ptr,
- int type,
- int *int_val,
- unsigned int *uint_val,
- double *double_val
-)
+ void *ptr,
+ int type,
+ int *int_val,
+ unsigned int *uint_val,
+ double *double_val
+ )
{
- switch (type) {
- case PLY_CHAR:
- *int_val = *((char *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_UCHAR:
- *uint_val = *((unsigned char *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_SHORT:
- *int_val = *((short int *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_USHORT:
- *uint_val = *((unsigned short int *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_INT:
- *int_val = *((int *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_UINT:
- *uint_val = *((unsigned int *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_FLOAT:
- *double_val = *((float *) ptr);
- *int_val = (int)*double_val;
- *uint_val = (unsigned int)*double_val;
- break;
- case PLY_DOUBLE:
- *double_val = *((double *) ptr);
- *int_val = (int)*double_val;
- *uint_val =(unsigned int) *double_val;
- break;
- default:
- fprintf (stderr, "get_stored_item: bad type = %d\n", type);
- exit (-1);
- }
+ switch (type) {
+ case PLY_CHAR:
+ *int_val = *((char *) ptr);
+ *uint_val = *int_val;
+ *double_val = *int_val;
+ break;
+ case PLY_UCHAR:
+ *uint_val = *((unsigned char *) ptr);
+ *int_val = *uint_val;
+ *double_val = *uint_val;
+ break;
+ case PLY_SHORT:
+ *int_val = *((short int *) ptr);
+ *uint_val = *int_val;
+ *double_val = *int_val;
+ break;
+ case PLY_USHORT:
+ *uint_val = *((unsigned short int *) ptr);
+ *int_val = *uint_val;
+ *double_val = *uint_val;
+ break;
+ case PLY_INT:
+ *int_val = *((int *) ptr);
+ *uint_val = *int_val;
+ *double_val = *int_val;
+ break;
+ case PLY_UINT:
+ *uint_val = *((unsigned int *) ptr);
+ *int_val = *uint_val;
+ *double_val = *uint_val;
+ break;
+ case PLY_FLOAT:
+ *double_val = *((float *) ptr);
+ *int_val = (int)*double_val;
+ *uint_val = (unsigned int)*double_val;
+ break;
+ case PLY_DOUBLE:
+ *double_val = *((double *) ptr);
+ *int_val = (int)*double_val;
+ *uint_val = (unsigned int) *double_val;
+ break;
+ default:
+ fprintf(stderr, "get_stored_item: bad type = %d\n", type);
+ exit(-1);
+ }
}
/******************************************************************************
-Get the value of an item from a binary file, and place the result
-into an integer, an unsigned integer and a double.
+ Get the value of an item from a binary file, and place the result
+ into an integer, an unsigned integer and a double.
-Entry:
- fp - file to get item from
- type - data type supposedly in the word
+ Entry:
+ fp - file to get item from
+ type - data type supposedly in the word
-Exit:
- int_val - integer value
- uint_val - unsigned integer value
- double_val - double-precision floating point value
+ Exit:
+ int_val - integer value
+ uint_val - unsigned integer value
+ double_val - double-precision floating point value
******************************************************************************/
void get_binary_item(
- FILE *fp,
- int type,
- int *int_val,
- unsigned int *uint_val,
- double *double_val
-)
+ FILE *fp,
+ int type,
+ int *int_val,
+ unsigned int *uint_val,
+ double *double_val
+ )
{
- char c[8];
- void *ptr;
-
- ptr = (void *) c;
-
- switch (type) {
- case PLY_CHAR:
- fread (ptr, 1, 1, fp);
- *int_val = *((char *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_UCHAR:
- fread (ptr, 1, 1, fp);
- *uint_val = *((unsigned char *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_SHORT:
- fread (ptr, 2, 1, fp);
- *int_val = *((short int *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_USHORT:
- fread (ptr, 2, 1, fp);
- *uint_val = *((unsigned short int *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_INT:
- fread (ptr, 4, 1, fp);
- *int_val = *((int *) ptr);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
- case PLY_UINT:
- fread (ptr, 4, 1, fp);
- *uint_val = *((unsigned int *) ptr);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
- case PLY_FLOAT:
- fread (ptr, 4, 1, fp);
- *double_val = *((float *) ptr);
- *int_val = (int)*double_val;
- *uint_val =(unsigned int) *double_val;
- break;
- case PLY_DOUBLE:
- fread (ptr, 8, 1, fp);
- *double_val = *((double *) ptr);
- *int_val = (int)*double_val;
- *uint_val = (unsigned int)*double_val;
- break;
- default:
- fprintf (stderr, "get_binary_item: bad type = %d\n", type);
- exit (-1);
- }
+ char c[8];
+ void *ptr;
+
+ ptr = (void *) c;
+
+ switch (type) {
+ case PLY_CHAR:
+ fread(ptr, 1, 1, fp);
+ *int_val = *((char *) ptr);
+ *uint_val = *int_val;
+ *double_val = *int_val;
+ break;
+ case PLY_UCHAR:
+ fread(ptr, 1, 1, fp);
+ *uint_val = *((unsigned char *) ptr);
+ *int_val = *uint_val;
+ *double_val = *uint_val;
+ break;
+ case PLY_SHORT:
+ fread(ptr, 2, 1, fp);
+ *int_val = *((short int *) ptr);
+ *uint_val = *int_val;
+ *double_val = *int_val;
+ break;
+ case PLY_USHORT:
+ fread(ptr, 2, 1, fp);
+ *uint_val = *((unsigned short int *) ptr);
+ *int_val = *uint_val;
+ *double_val = *uint_val;
+ break;
+ case PLY_INT:
+ fread(ptr, 4, 1, fp);
+ *int_val = *((int *) ptr);
+ *uint_val = *int_val;
+ *double_val = *int_val;
+ break;
+ case PLY_UINT:
+ fread(ptr, 4, 1, fp);
+ *uint_val = *((unsigned int *) ptr);
+ *int_val = *uint_val;
+ *double_val = *uint_val;
+ break;
+ case PLY_FLOAT:
+ fread(ptr, 4, 1, fp);
+ *double_val = *((float *) ptr);
+ *int_val = (int)*double_val;
+ *uint_val = (unsigned int) *double_val;
+ break;
+ case PLY_DOUBLE:
+ fread(ptr, 8, 1, fp);
+ *double_val = *((double *) ptr);
+ *int_val = (int)*double_val;
+ *uint_val = (unsigned int)*double_val;
+ break;
+ default:
+ fprintf(stderr, "get_binary_item: bad type = %d\n", type);
+ exit(-1);
+ }
}
/******************************************************************************
-Extract the value of an item from an ascii word, and place the result
-into an integer, an unsigned integer and a double.
+ Extract the value of an item from an ascii word, and place the result
+ into an integer, an unsigned integer and a double.
-Entry:
- word - word to extract value from
- type - data type supposedly in the word
+ Entry:
+ word - word to extract value from
+ type - data type supposedly in the word
-Exit:
- int_val - integer value
- uint_val - unsigned integer value
- double_val - double-precision floating point value
+ Exit:
+ int_val - integer value
+ uint_val - unsigned integer value
+ double_val - double-precision floating point value
******************************************************************************/
void get_ascii_item(
- char *word,
- int type,
- int *int_val,
- unsigned int *uint_val,
- double *double_val
-)
+ char *word,
+ int type,
+ int *int_val,
+ unsigned int *uint_val,
+ double *double_val
+ )
{
- switch (type) {
- case PLY_CHAR:
- case PLY_UCHAR:
- case PLY_SHORT:
- case PLY_USHORT:
- case PLY_INT:
- *int_val = atoi (word);
- *uint_val = *int_val;
- *double_val = *int_val;
- break;
-
- case PLY_UINT:
- *uint_val = strtoul (word, (char **) NULL, 10);
- *int_val = *uint_val;
- *double_val = *uint_val;
- break;
-
- case PLY_FLOAT:
- case PLY_DOUBLE:
- *double_val = atof (word);
- *int_val = (int) *double_val;
- *uint_val = (unsigned int) *double_val;
- break;
-
- default:
- fprintf (stderr, "get_ascii_item: bad type = %d\n", type);
- exit (-1);
- }
+ switch (type) {
+ case PLY_CHAR:
+ case PLY_UCHAR:
+ case PLY_SHORT:
+ case PLY_USHORT:
+ case PLY_INT:
+ *int_val = atoi(word);
+ *uint_val = *int_val;
+ *double_val = *int_val;
+ break;
+
+ case PLY_UINT:
+ *uint_val = strtoul(word, (char **) NULL, 10);
+ *int_val = *uint_val;
+ *double_val = *uint_val;
+ break;
+
+ case PLY_FLOAT:
+ case PLY_DOUBLE:
+ *double_val = atof(word);
+ *int_val = (int) *double_val;
+ *uint_val = (unsigned int) *double_val;
+ break;
+
+ default:
+ fprintf(stderr, "get_ascii_item: bad type = %d\n", type);
+ exit(-1);
+ }
}
/******************************************************************************
-Store a value into a place being pointed to, guided by a data type.
+ Store a value into a place being pointed to, guided by a data type.
-Entry:
- item - place to store value
- type - data type
- int_val - integer version of value
- uint_val - unsigned integer version of value
- double_val - double version of value
+ Entry:
+ item - place to store value
+ type - data type
+ int_val - integer version of value
+ uint_val - unsigned integer version of value
+ double_val - double version of value
-Exit:
- item - pointer to stored value
+ Exit:
+ item - pointer to stored value
******************************************************************************/
-void store_item (
- char *item,
- int type,
- int int_val,
- unsigned int uint_val,
- double double_val
-)
+void store_item(
+ char *item,
+ int type,
+ int int_val,
+ unsigned int uint_val,
+ double double_val
+ )
{
- unsigned char *puchar;
- short int *pshort;
- unsigned short int *pushort;
- int *pint;
- unsigned int *puint;
- float *pfloat;
- double *pdouble;
-
- switch (type) {
- case PLY_CHAR:
- *item = (char) int_val;
- break;
- case PLY_UCHAR:
- puchar = (unsigned char *) item;
- *puchar = (unsigned char)uint_val;
- break;
- case PLY_SHORT:
- pshort = (short *) item;
- *pshort = (short)int_val;
- break;
- case PLY_USHORT:
- pushort = (unsigned short *) item;
- *pushort = (unsigned short)uint_val;
- break;
- case PLY_INT:
- pint = (int *) item;
- *pint = int_val;
- break;
- case PLY_UINT:
- puint = (unsigned int *) item;
- *puint = uint_val;
- break;
- case PLY_FLOAT:
- pfloat = (float *) item;
- *pfloat = (float)double_val;
- break;
- case PLY_DOUBLE:
- pdouble = (double *) item;
- *pdouble = double_val;
- break;
- default:
- fprintf (stderr, "store_item: bad type = %d\n", type);
- exit (-1);
- }
+ unsigned char *puchar;
+ short int *pshort;
+ unsigned short int *pushort;
+ int *pint;
+ unsigned int *puint;
+ float *pfloat;
+ double *pdouble;
+
+ switch (type) {
+ case PLY_CHAR:
+ *item = (char) int_val;
+ break;
+ case PLY_UCHAR:
+ puchar = (unsigned char *) item;
+ *puchar = (unsigned char)uint_val;
+ break;
+ case PLY_SHORT:
+ pshort = (short *) item;
+ *pshort = (short)int_val;
+ break;
+ case PLY_USHORT:
+ pushort = (unsigned short *) item;
+ *pushort = (unsigned short)uint_val;
+ break;
+ case PLY_INT:
+ pint = (int *) item;
+ *pint = int_val;
+ break;
+ case PLY_UINT:
+ puint = (unsigned int *) item;
+ *puint = uint_val;
+ break;
+ case PLY_FLOAT:
+ pfloat = (float *) item;
+ *pfloat = (float)double_val;
+ break;
+ case PLY_DOUBLE:
+ pdouble = (double *) item;
+ *pdouble = double_val;
+ break;
+ default:
+ fprintf(stderr, "store_item: bad type = %d\n", type);
+ exit(-1);
+ }
}
/******************************************************************************
-Add an element to a PLY file descriptor.
+ Add an element to a PLY file descriptor.
-Entry:
- plyfile - PLY file descriptor
- words - list of words describing the element
- nwords - number of words in the list
+ Entry:
+ plyfile - PLY file descriptor
+ words - list of words describing the element
+ nwords - number of words in the list
******************************************************************************/
-void add_element (PlyFile *plyfile, char **words)
+void add_element(PlyFile *plyfile, char **words)
{
- PlyElement *elem;
-
- /* create the new element */
- elem = (PlyElement *) myalloc (sizeof (PlyElement));
- elem->name = strdup (words[1]);
- elem->num = atoi (words[2]);
- elem->nprops = 0;
-
- /* make room for new element in the object's list of elements */
- if (plyfile->nelems == 0)
- plyfile->elems = (PlyElement **) myalloc (sizeof (PlyElement *));
- else
- plyfile->elems = (PlyElement **) realloc (plyfile->elems,
- sizeof (PlyElement *) * (plyfile->nelems + 1));
-
- /* add the new element to the object's list */
- plyfile->elems[plyfile->nelems] = elem;
- plyfile->nelems++;
+ PlyElement *elem;
+
+ /* create the new element */
+ elem = (PlyElement *) myalloc(sizeof(PlyElement));
+ elem->name = strdup(words[1]);
+ elem->num = atoi(words[2]);
+ elem->nprops = 0;
+
+ /* make room for new element in the object's list of elements */
+ if (plyfile->nelems == 0)
+ plyfile->elems = (PlyElement **) myalloc(sizeof(PlyElement *));
+ else
+ plyfile->elems = (PlyElement **) realloc(plyfile->elems,
+ sizeof(PlyElement *) * (plyfile->nelems + 1));
+
+ /* add the new element to the object's list */
+ plyfile->elems[plyfile->nelems] = elem;
+ plyfile->nelems++;
}
/******************************************************************************
-Return the type of a property, given the name of the property.
+ Return the type of a property, given the name of the property.
-Entry:
- name - name of property type
+ Entry:
+ name - name of property type
-Exit:
- returns integer code for property, or 0 if not found
+ Exit:
+ returns integer code for property, or 0 if not found
******************************************************************************/
int get_prop_type(char *type_name)
{
- int i;
+ int i;
- for (i = PLY_START_TYPE + 1; i < PLY_END_TYPE; i++)
- if (equal_strings (type_name, type_names[i]))
- return (i);
+ for (i = PLY_START_TYPE + 1; i < PLY_END_TYPE; i++)
+ if (equal_strings(type_name, type_names[i]))
+ return (i);
- /* if we get here, we didn't find the type */
- return (0);
+ /* if we get here, we didn't find the type */
+ return (0);
}
/******************************************************************************
-Add a property to a PLY file descriptor.
+ Add a property to a PLY file descriptor.
-Entry:
- plyfile - PLY file descriptor
- words - list of words describing the property
- nwords - number of words in the list
+ Entry:
+ plyfile - PLY file descriptor
+ words - list of words describing the property
+ nwords - number of words in the list
******************************************************************************/
-void add_property (PlyFile *plyfile, char **words)
+void add_property(PlyFile *plyfile, char **words)
{
- PlyProperty *prop;
- PlyElement *elem;
+ PlyProperty *prop;
+ PlyElement *elem;
- /* create the new property */
+ /* create the new property */
- prop = (PlyProperty *) myalloc (sizeof (PlyProperty));
+ prop = (PlyProperty *) myalloc(sizeof(PlyProperty));
- if (equal_strings (words[1], "list")) { /* is a list */
- prop->count_external = get_prop_type (words[2]);
- prop->external_type = get_prop_type (words[3]);
- prop->name = strdup (words[4]);
- prop->is_list = 1;
- }
- else { /* not a list */
- prop->external_type = get_prop_type (words[1]);
- prop->name = strdup (words[2]);
- prop->is_list = 0;
- }
+ if (equal_strings(words[1], "list")) { /* is a list */
+ prop->count_external = get_prop_type(words[2]);
+ prop->external_type = get_prop_type(words[3]);
+ prop->name = strdup(words[4]);
+ prop->is_list = 1;
+ }
+ else { /* not a list */
+ prop->external_type = get_prop_type(words[1]);
+ prop->name = strdup(words[2]);
+ prop->is_list = 0;
+ }
- /* add this property to the list of properties of the current element */
+ /* add this property to the list of properties of the current element */
- elem = plyfile->elems[plyfile->nelems - 1];
+ elem = plyfile->elems[plyfile->nelems - 1];
- if (elem->nprops == 0)
- elem->props = (PlyProperty **) myalloc (sizeof (PlyProperty *));
- else
- elem->props = (PlyProperty **) realloc (elem->props,
- sizeof (PlyProperty *) * (elem->nprops + 1));
+ if (elem->nprops == 0)
+ elem->props = (PlyProperty **) myalloc(sizeof(PlyProperty *));
+ else
+ elem->props = (PlyProperty **) realloc(elem->props,
+ sizeof(PlyProperty *) * (elem->nprops + 1));
- elem->props[elem->nprops] = prop;
- elem->nprops++;
+ elem->props[elem->nprops] = prop;
+ elem->nprops++;
}
/******************************************************************************
-Add a comment to a PLY file descriptor.
+ Add a comment to a PLY file descriptor.
-Entry:
- plyfile - PLY file descriptor
- line - line containing comment
+ Entry:
+ plyfile - PLY file descriptor
+ line - line containing comment
******************************************************************************/
-void add_comment (PlyFile *plyfile, char *line)
+void add_comment(PlyFile *plyfile, char *line)
{
- int i;
+ int i;
- /* skip over "comment" and leading spaces and tabs */
- i = 7;
- while (line[i] == ' ' || line[i] == '\t')
- i++;
+ /* skip over "comment" and leading spaces and tabs */
+ i = 7;
+ while (line[i] == ' ' || line[i] == '\t')
+ i++;
- ply_put_comment (plyfile, &line[i]);
+ ply_put_comment(plyfile, &line[i]);
}
/******************************************************************************
-Add a some object information to a PLY file descriptor.
+ Add a some object information to a PLY file descriptor.
-Entry:
- plyfile - PLY file descriptor
- line - line containing text info
+ Entry:
+ plyfile - PLY file descriptor
+ line - line containing text info
******************************************************************************/
-void add_obj_info (PlyFile *plyfile, char *line)
+void add_obj_info(PlyFile *plyfile, char *line)
{
- int i;
+ int i;
- /* skip over "obj_info" and leading spaces and tabs */
- i = 8;
- while (line[i] == ' ' || line[i] == '\t')
- i++;
+ /* skip over "obj_info" and leading spaces and tabs */
+ i = 8;
+ while (line[i] == ' ' || line[i] == '\t')
+ i++;
- ply_put_obj_info (plyfile, &line[i]);
+ ply_put_obj_info(plyfile, &line[i]);
}
/******************************************************************************
-Copy a property.
+ Copy a property.
******************************************************************************/
void copy_property(PlyProperty *dest, PlyProperty *src)
{
- dest->name = strdup (src->name);
- dest->external_type = src->external_type;
- dest->internal_type = src->internal_type;
- dest->offset = src->offset;
-
- dest->is_list = src->is_list;
- dest->count_external = src->count_external;
- dest->count_internal = src->count_internal;
- dest->count_offset = src->count_offset;
+ dest->name = strdup(src->name);
+ dest->external_type = src->external_type;
+ dest->internal_type = src->internal_type;
+ dest->offset = src->offset;
+
+ dest->is_list = src->is_list;
+ dest->count_external = src->count_external;
+ dest->count_internal = src->count_internal;
+ dest->count_offset = src->count_offset;
}
/******************************************************************************
-Allocate some memory.
+ Allocate some memory.
-Entry:
- size - amount of memory requested (in bytes)
- lnum - line number from which memory was requested
- fname - file name from which memory was requested
+ Entry:
+ size - amount of memory requested (in bytes)
+ lnum - line number from which memory was requested
+ fname - file name from which memory was requested
******************************************************************************/
static char *my_alloc(int size, int lnum, char *fname)
{
- char *ptr;
+ char *ptr;
- ptr = (char *) malloc (size);
+ ptr = (char *) malloc(size);
- if (ptr == 0) {
- fprintf(stderr, "Memory allocation bombed on line %d in %s\n", lnum, fname);
- }
+ if (ptr == 0) {
+ fprintf(stderr, "Memory allocation bombed on line %d in %s\n", lnum, fname);
+ }
- return (ptr);
+ return (ptr);
}
diff --git a/intern/container/CTR_UHeap.h b/intern/container/CTR_UHeap.h
index 8711d4375cb..8330faa2f54 100644
--- a/intern/container/CTR_UHeap.h
+++ b/intern/container/CTR_UHeap.h
@@ -53,47 +53,47 @@
class CTR_UHeapable {
-public :
- int &
+public:
+ int &
HeapPos(
- ) {
+ ) {
return m_ind;
};
- float &
+ float &
HeapKey(
- ) {
+ ) {
return m_key;
};
const
- float &
+ float &
HeapKey(
- ) const {
+ ) const {
return m_key;
};
const
- int &
+ int &
HeapPos(
- ) const {
+ ) const {
return m_ind;
};
-private :
+private:
float m_key;
int m_ind;
-protected :
+protected:
CTR_UHeapable(
- ) : m_key (0),
- m_ind (0)
+ ) : m_key(0),
+ m_ind(0)
{
};
~CTR_UHeapable(
- ) {
+ ) {
};
};
@@ -104,50 +104,50 @@ class CTR_UHeap : public MEM_NonCopyable
public:
static
- CTR_UHeap *
+ CTR_UHeap *
New(
- ) {
+ ) {
return new CTR_UHeap();
}
- void
+ void
MakeHeap(
- HeapType *base
- ) {
+ HeapType *base
+ ) {
int i;
- int start = Parent(m_vector.size()-1);
- for (i = start; i >=0; --i) {
- DownHeap(base,i);
+ int start = Parent(m_vector.size() - 1);
+ for (i = start; i >= 0; --i) {
+ DownHeap(base, i);
}
};
- void
+ void
Insert(
- HeapType *base,
- int elem
- ) {
+ HeapType *base,
+ int elem
+ ) {
// add element to vector
m_vector.push_back(elem);
- base[elem].HeapPos() = m_vector.size()-1;
+ base[elem].HeapPos() = m_vector.size() - 1;
// push the element up the heap
- UpHeap(base,m_vector.size()-1);
+ UpHeap(base, m_vector.size() - 1);
}
// access to the vector for initial loading of elements
- std::vector<int> &
+ std::vector<int> &
HeapVector(
- ) {
+ ) {
return m_vector;
};
- void
+ void
Remove(
- HeapType *base,
- int i
- ) {
+ HeapType *base,
+ int i
+ ) {
// exchange with last element - pop last
// element and move up or down the heap as appropriate
@@ -155,37 +155,38 @@ public:
assert(false);
}
- if (i != int(m_vector.size())-1) {
+ if (i != int(m_vector.size()) - 1) {
- Swap(base,i,m_vector.size() - 1);
+ Swap(base, i, m_vector.size() - 1);
m_vector.pop_back();
if (!m_vector.empty()) {
- UpHeap(base,i);
- DownHeap(base,i);
+ UpHeap(base, i);
+ DownHeap(base, i);
}
- } else {
+ }
+ else {
m_vector.pop_back();
}
}
- int
+ int
Top(
- ) const {
+ ) const {
if (m_vector.empty()) return -1;
return m_vector[0];
}
- void
+ void
SC_Heap(
- HeapType *base
- ) {
+ HeapType *base
+ ) {
int i;
- for (i = 1; i < int(m_vector.size()) ; i++) {
+ for (i = 1; i < int(m_vector.size()); i++) {
- CTR_UHeapable * elem = base + m_vector[i];
- CTR_UHeapable * p_elem = base + m_vector[Parent(i)];
+ CTR_UHeapable *elem = base + m_vector[i];
+ CTR_UHeapable *p_elem = base + m_vector[Parent(i)];
assert(p_elem->HeapKey() >= elem->HeapKey());
assert(elem->HeapPos() == i);
@@ -195,27 +196,27 @@ public:
~CTR_UHeap(
- ) {
+ ) {
};
private:
CTR_UHeap(
- ) {
+ ) {
};
std::vector<int> m_vector;
private:
- void
+ void
Swap(
- HeapType *base,
- int i,
- int j
- ) {
- std::swap(m_vector[i],m_vector[j]);
+ HeapType *base,
+ int i,
+ int j
+ ) {
+ std::swap(m_vector[i], m_vector[j]);
CTR_UHeapable *heap_i = base + m_vector[i];
CTR_UHeapable *heap_j = base + m_vector[j];
@@ -225,77 +226,78 @@ private:
heap_j->HeapPos() = j;
}
- int
+ int
Parent(
- unsigned int i
- ) {
- return (i-1) >> 1;
+ unsigned int i
+ ) {
+ return (i - 1) >> 1;
}
- int
+ int
Left(
- int i
- ) {
- return (i<<1)+1;
+ int i
+ ) {
+ return (i << 1) + 1;
}
- int
+ int
Right(
- int i
- ) {
- return (i<<1)+2;
+ int i
+ ) {
+ return (i << 1) + 2;
}
- float
+ float
HeapVal(
- HeapType *base,
- int i
- ) {
+ HeapType *base,
+ int i
+ ) {
return base[m_vector[i]].HeapKey();
}
- void
+ void
DownHeap(
- HeapType *base,
- int i
- ) {
+ HeapType *base,
+ int i
+ ) {
int heap_size = m_vector.size();
int l = Left(i);
int r = Right(i);
int largest;
- if (l < heap_size && HeapVal(base,l) > HeapVal(base,i)) {
+ if (l < heap_size && HeapVal(base, l) > HeapVal(base, i)) {
largest = l;
- } else {
+ }
+ else {
largest = i;
}
- if (r < heap_size && HeapVal(base,r) > HeapVal(base,largest)) {
+ if (r < heap_size && HeapVal(base, r) > HeapVal(base, largest)) {
largest = r;
}
if (largest != i) {
// exchange i and largest
- Swap(base,i,largest);
- DownHeap(base,largest);
+ Swap(base, i, largest);
+ DownHeap(base, largest);
}
}
- void
+ void
UpHeap(
- HeapType *base,
- int i
- ) {
+ HeapType *base,
+ int i
+ ) {
// swap parents untill it's found a place in the heap < it's parent or
// top of heap
while (i > 0) {
int p = Parent(i);
- if (HeapVal(base,i) < HeapVal(base,p)) {
+ if (HeapVal(base, i) < HeapVal(base, p)) {
break;
}
- Swap(base,p,i);
+ Swap(base, p, i);
i = p;
}
}
diff --git a/intern/cycles/app/cycles_xml.cpp b/intern/cycles/app/cycles_xml.cpp
index 1190ee185fd..5ec5cb929d6 100644
--- a/intern/cycles/app/cycles_xml.cpp
+++ b/intern/cycles/app/cycles_xml.cpp
@@ -254,6 +254,16 @@ static void xml_read_film(const XMLReadState& state, pugi::xml_node node)
static void xml_read_integrator(const XMLReadState& state, pugi::xml_node node)
{
Integrator *integrator = state.scene->integrator;
+
+ xml_read_bool(&integrator->progressive, node, "progressive");
+
+ if(!integrator->progressive) {
+ xml_read_int(&integrator->diffuse_samples, node, "diffuse_samples");
+ xml_read_int(&integrator->glossy_samples, node, "glossy_samples");
+ xml_read_int(&integrator->transmission_samples, node, "transmission_samples");
+ xml_read_int(&integrator->ao_samples, node, "ao_samples");
+ xml_read_int(&integrator->mesh_light_samples, node, "mesh_light_samples");
+ }
xml_read_int(&integrator->min_bounce, node, "min_bounce");
xml_read_int(&integrator->max_bounce, node, "max_bounce");
@@ -267,8 +277,10 @@ static void xml_read_integrator(const XMLReadState& state, pugi::xml_node node)
xml_read_bool(&integrator->transparent_shadows, node, "transparent_shadows");
xml_read_bool(&integrator->no_caustics, node, "no_caustics");
+ xml_read_float(&integrator->filter_glossy, node, "blur_glossy");
xml_read_int(&integrator->seed, node, "seed");
+ xml_read_float(&integrator->sample_clamp, node, "sample_clamp");
}
/* Camera */
diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index b4673ec6206..e2f82096901 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -336,7 +336,7 @@ class CyclesCameraSettings(bpy.types.PropertyGroup):
cls.fisheye_fov = FloatProperty(
name="Field of View",
description="Field of view for the fisheye lens",
- min=0.1745, soft_max=2*math.pi, max=10.0*math.pi,
+ min=0.1745, soft_max=2 * math.pi, max=10.0 * math.pi,
subtype='ANGLE',
default=math.pi,
)
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index bda8249c17e..5234db5255e 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -85,6 +85,7 @@ class CyclesRender_PT_sampling(CyclesButtonsPanel, Panel):
sub.prop(cscene, "ao_samples", text="AO")
sub.prop(cscene, "mesh_light_samples", text="Mesh Light")
+
class CyclesRender_PT_light_paths(CyclesButtonsPanel, Panel):
bl_label = "Light Paths"
bl_options = {'DEFAULT_CLOSED'}
@@ -545,6 +546,7 @@ class CyclesLamp_PT_nodes(CyclesButtonsPanel, Panel):
if not panel_node_draw(layout, lamp, 'OUTPUT_LAMP', 'Surface'):
layout.prop(lamp, "color")
+
class CyclesLamp_PT_spot(CyclesButtonsPanel, Panel):
bl_label = "Spot Shape"
bl_context = "data"
@@ -569,6 +571,7 @@ class CyclesLamp_PT_spot(CyclesButtonsPanel, Panel):
col = split.column()
col.prop(lamp, "show_cone")
+
class CyclesWorld_PT_surface(CyclesButtonsPanel, Panel):
bl_label = "Surface"
bl_context = "world"
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 12d7d00fb61..d09e43bd76d 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -218,7 +218,7 @@ void BlenderSession::render()
}
buffer_params.passes = passes;
- scene->film->passes = passes;
+ scene->film->tag_passes_update(scene, passes);
scene->film->tag_update(scene);
scene->integrator->tag_update(scene);
diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake
index 7d12e261068..23a919530f9 100644
--- a/intern/cycles/cmake/external_libs.cmake
+++ b/intern/cycles/cmake/external_libs.cmake
@@ -11,10 +11,10 @@ if(WITH_CYCLES_TEST)
include_directories(${GLUT_INCLUDE_DIR})
endif()
-if(WITH_BUILTIN_GLEW)
- set(CYCLES_GLEW_LIBRARY extern_glew)
-else()
+if(WITH_SYSTEM_GLEW)
set(CYCLES_GLEW_LIBRARY ${GLEW_LIBRARY})
+else()
+ set(CYCLES_GLEW_LIBRARY extern_glew)
endif()
###########################################################################
diff --git a/intern/cycles/render/film.cpp b/intern/cycles/render/film.cpp
index 035821fadde..fdf25ca7908 100644
--- a/intern/cycles/render/film.cpp
+++ b/intern/cycles/render/film.cpp
@@ -20,6 +20,7 @@
#include "device.h"
#include "film.h"
#include "integrator.h"
+#include "mesh.h"
#include "scene.h"
#include "util_algorithm.h"
@@ -296,6 +297,16 @@ bool Film::modified(const Film& film)
&& Pass::equals(passes, film.passes));
}
+void Film::tag_passes_update(Scene *scene, const vector<Pass>& passes_)
+{
+ if(Pass::contains(passes, PASS_UV) != Pass::contains(passes_, PASS_UV))
+ scene->mesh_manager->tag_update(scene);
+ else if(Pass::contains(passes, PASS_MOTION) != Pass::contains(passes_, PASS_MOTION))
+ scene->mesh_manager->tag_update(scene);
+
+ passes = passes_;
+}
+
void Film::tag_update(Scene *scene)
{
need_update = true;
diff --git a/intern/cycles/render/film.h b/intern/cycles/render/film.h
index c7d2ee24388..52d1a8428f8 100644
--- a/intern/cycles/render/film.h
+++ b/intern/cycles/render/film.h
@@ -56,6 +56,7 @@ public:
void device_free(Device *device, DeviceScene *dscene);
bool modified(const Film& film);
+ void tag_passes_update(Scene *scene, const vector<Pass>& passes_);
void tag_update(Scene *scene);
};
diff --git a/intern/elbeem/intern/controlparticles.cpp b/intern/elbeem/intern/controlparticles.cpp
index 7f43ba60614..526fac0cc6b 100644
--- a/intern/elbeem/intern/controlparticles.cpp
+++ b/intern/elbeem/intern/controlparticles.cpp
@@ -665,11 +665,11 @@ int ControlParticles::initFromBinaryFile(string filename) {
int ptype=0;
float psize=0.0;
ntlVec3Gfx ppos,pvel;
- gzread(gzf, &ptype, sizeof( ptype ));
- gzread(gzf, &psize, sizeof( float ));
+ gzread(gzf, &ptype, sizeof(ptype));
+ gzread(gzf, &psize, sizeof(float));
- for(int j=0; j<3; j++) { gzread(gzf, &ppos[j], sizeof( float )); }
- for(int j=0; j<3; j++) { gzread(gzf, &pvel[j], sizeof( float )); }
+ for (int j=0; j<3; j++) { gzread(gzf, &ppos[j], sizeof(float)); }
+ for (int j=0; j<3; j++) { gzread(gzf, &pvel[j], sizeof(float)); }
ControlParticle p;
p.reset();
diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h
index 9dbbb46ce40..703c528bdea 100644
--- a/intern/ffmpeg/ffmpeg_compat.h
+++ b/intern/ffmpeg/ffmpeg_compat.h
@@ -40,7 +40,6 @@
#endif
#include <libswscale/swscale.h>
-#include <libavcodec/opt.h>
#if (LIBAVFORMAT_VERSION_MAJOR > 52) || ((LIBAVFORMAT_VERSION_MAJOR >= 52) && (LIBAVFORMAT_VERSION_MINOR >= 105))
#define FFMPEG_HAVE_AVIO 1
@@ -76,6 +75,20 @@
#define FFMPEG_FFV1_ALPHA_SUPPORTED
#endif
+#if ((LIBAVFORMAT_VERSION_MAJOR < 53) || ((LIBAVFORMAT_VERSION_MAJOR == 53) && (LIBAVFORMAT_VERSION_MINOR < 24)) || ((LIBAVFORMAT_VERSION_MAJOR == 53) && (LIBAVFORMAT_VERSION_MINOR < 24) && (LIBAVFORMAT_VERSION_MICRO < 2)))
+#define avformat_close_input(x) av_close_input_file(*(x))
+#endif
+
+#if ((LIBAVFORMAT_VERSION_MAJOR > 53) || ((LIBAVFORMAT_VERSION_MAJOR == 53) && (LIBAVFORMAT_VERSION_MINOR > 32)) || ((LIBAVFORMAT_VERSION_MAJOR == 53) && (LIBAVFORMAT_VERSION_MINOR == 24) && (LIBAVFORMAT_VERSION_MICRO >= 100)))
+void ff_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp);
+
+static inline
+void av_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp)
+{
+ ff_update_cur_dts(s, ref_st, timestamp);
+}
+#endif
+
#ifndef FFMPEG_HAVE_AVIO
#define AVIO_FLAG_WRITE URL_WRONLY
#define avio_open url_fopen
diff --git a/intern/ghost/intern/GHOST_SystemPathsX11.cpp b/intern/ghost/intern/GHOST_SystemPathsX11.cpp
index 95f82fe0e60..cb2e351ab7a 100644
--- a/intern/ghost/intern/GHOST_SystemPathsX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemPathsX11.cpp
@@ -61,7 +61,7 @@ GHOST_SystemPathsX11::~GHOST_SystemPathsX11()
const GHOST_TUns8 *GHOST_SystemPathsX11::getSystemDir(int, const char *versionstr) const
{
/* no prefix assumes a portable build which only uses bundled scripts */
- if(static_path) {
+ if (static_path) {
static char system_path[PATH_MAX];
snprintf(system_path, sizeof(system_path), "%s/blender/%s", static_path, versionstr);
return (GHOST_TUns8*)system_path;
@@ -76,10 +76,10 @@ const GHOST_TUns8 *GHOST_SystemPathsX11::getUserDir(int version, const char *ver
/* in blender 2.64, we migrate to XDG. to ensure the copy previous settings
* operator works we give a different path depending on the requested version */
- if(version < 264) {
+ if (version < 264) {
const char *home = getenv("HOME");
- if(home) {
+ if (home) {
snprintf(user_path, sizeof(user_path), "%s/.blender/%s", home, versionstr);
return (GHOST_TUns8*)user_path;
}
diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp
index a647f82a325..c2456fed800 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.cpp
+++ b/intern/ghost/intern/GHOST_SystemWin32.cpp
@@ -639,8 +639,8 @@ GHOST_EventButton *GHOST_SystemWin32::processButtonEvent(GHOST_TEventType type,
GHOST_EventCursor *GHOST_SystemWin32::processCursorEvent(GHOST_TEventType type, GHOST_IWindow *Iwindow)
{
GHOST_TInt32 x_screen, y_screen;
- GHOST_SystemWin32 *system = ((GHOST_SystemWin32 * ) getSystem());
- GHOST_WindowWin32 *window = ( GHOST_WindowWin32 * ) Iwindow;
+ GHOST_SystemWin32 *system = (GHOST_SystemWin32 *) getSystem();
+ GHOST_WindowWin32 *window = (GHOST_WindowWin32 *) Iwindow;
system->getCursorPosition(x_screen, y_screen);
diff --git a/intern/ghost/test/gears/GHOST_C-Test.c b/intern/ghost/test/gears/GHOST_C-Test.c
index 4086fbba730..c32d78f0358 100644
--- a/intern/ghost/test/gears/GHOST_C-Test.c
+++ b/intern/ghost/test/gears/GHOST_C-Test.c
@@ -526,7 +526,6 @@ int main(int argc, char **argv)
/* Dispose the system */
GHOST_DisposeSystem(shSystem);
- GHOST_DisposeEventConsumer(consumer);
return 0;
}
diff --git a/intern/ghost/test/gears/GHOST_Test.cpp b/intern/ghost/test/gears/GHOST_Test.cpp
index c51b72ad271..d338f11ddde 100644
--- a/intern/ghost/test/gears/GHOST_Test.cpp
+++ b/intern/ghost/test/gears/GHOST_Test.cpp
@@ -435,7 +435,7 @@ Application::Application(GHOST_ISystem *system)
m_secondaryWindow = system->createWindow(title2, 340, 64, 320, 200, GHOST_kWindowStateNormal,
GHOST_kDrawingContextTypeOpenGL, false, false);
if (!m_secondaryWindow) {
- cout << "could not create secondary window\n";
+ std::cout << "could not create secondary window\n";
exit(-1);
}
diff --git a/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp b/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp
index 0ec1ccddb15..cfa6a207e1c 100644
--- a/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp
+++ b/intern/memutil/intern/MEM_CacheLimiterC-Api.cpp
@@ -58,12 +58,12 @@ public:
MEM_CacheLimiterCClass(MEM_CacheLimiter_Destruct_Func data_destructor_, MEM_CacheLimiter_DataSize_Func data_size)
: data_destructor(data_destructor_), cache(data_size) {
}
- ~MEM_CacheLimiterCClass();
+ ~MEM_CacheLimiterCClass();
handle_t * insert(void * data);
void destruct(void * data,
- list_t::iterator it);
+ list_t::iterator it);
cache_t * get_cache() {
return &cache;
@@ -79,9 +79,9 @@ private:
class MEM_CacheLimiterHandleCClass {
public:
MEM_CacheLimiterHandleCClass(void * data_,
- MEM_CacheLimiterCClass * parent_)
- : data(data_), parent(parent_) { }
- ~MEM_CacheLimiterHandleCClass();
+ MEM_CacheLimiterCClass * parent_)
+ : data(data_), parent(parent_) { }
+ ~MEM_CacheLimiterHandleCClass();
void set_iter(list_t::iterator it_) {
it = it_;
}
diff --git a/intern/raskter/raskter.c b/intern/raskter/raskter.c
index 910cd4c6a3d..4552db10ccb 100644
--- a/intern/raskter/raskter.c
+++ b/intern/raskter/raskter.c
@@ -67,7 +67,8 @@ struct r_fill_context {
* just the poly. Since the DEM code could end up being coupled with this, we'll keep it separate
* for now.
*/
-static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, struct e_status *open_edge) {
+static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, struct e_status *open_edge)
+{
int i;
int xbeg;
int ybeg;
@@ -165,7 +166,8 @@ static void preprocess_all_edges(struct r_fill_context *ctx, struct poly_vert *v
* for speed, but waiting on final design choices for curve-data before eliminating data the DEM code will need
* if it ends up being coupled with this function.
*/
-static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, float intensity) {
+static int rast_scan_fill(struct r_fill_context *ctx, struct poly_vert *verts, int num_verts, float intensity)
+{
int x_curr; /* current pixel position in X */
int y_curr; /* current scan line being drawn */
int yp; /* y-pixel's position in frame buffer */
@@ -757,18 +759,21 @@ int PLX_raskterize_feather(float (*base_verts)[2], int num_base_verts, float (*f
return i; /* Return the value returned by the rasterizer. */
}
-int get_range_expanded_pixel_coord(float normalized_value, int max_value) {
+int get_range_expanded_pixel_coord(float normalized_value, int max_value)
+{
return (int)((normalized_value * (float)(max_value)) + 0.5f);
}
-float get_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y) {
+float get_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y)
+{
if(pos_x < 0 || pos_x >= buf_x || pos_y < 0 || pos_y >= buf_y) {
return 0.0f;
}
return buf[(pos_y * buf_y) + buf_x];
}
-float get_pixel_intensity_bilinear(float *buf, int buf_x, int buf_y, float u, float v) {
+float get_pixel_intensity_bilinear(float *buf, int buf_x, int buf_y, float u, float v)
+{
int a;
int b;
int a_plus_1;
@@ -794,14 +799,16 @@ float get_pixel_intensity_bilinear(float *buf, int buf_x, int buf_y, float u, fl
}
-void set_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y, float intensity) {
+void set_pixel_intensity(float *buf, int buf_x, int buf_y, int pos_x, int pos_y, float intensity)
+{
if(pos_x < 0 || pos_x >= buf_x || pos_y < 0 || pos_y >= buf_y) {
return;
}
buf[(pos_y * buf_y) + buf_x] = intensity;
}
#define __PLX__FAKE_AA__
-int PLX_antialias_buffer(float *buf, int buf_x, int buf_y) {
+int PLX_antialias_buffer(float *buf, int buf_x, int buf_y)
+{
#ifdef __PLX__FAKE_AA__
#ifdef __PLX_GREY_AA__
int i=0;