summaryrefslogtreecommitdiffstats
path: root/tkblt/generic/tkbltVector.h
diff options
context:
space:
mode:
Diffstat (limited to 'tkblt/generic/tkbltVector.h')
-rw-r--r--tkblt/generic/tkbltVector.h140
1 files changed, 0 insertions, 140 deletions
diff --git a/tkblt/generic/tkbltVector.h b/tkblt/generic/tkbltVector.h
deleted file mode 100644
index 45ddf6e..0000000
--- a/tkblt/generic/tkbltVector.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Smithsonian Astrophysical Observatory, Cambridge, MA, USA
- * This code has been modified under the terms listed below and is made
- * available under the same terms.
- */
-
-/*
- * Copyright 1993-2004 George A Howlett.
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
- * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
- * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef _BLT_VECTOR_H
-#define _BLT_VECTOR_H
-
-#include <tcl.h>
-
-#ifdef BUILD_tkblt
-# define TKBLT_STORAGE_CLASS DLLEXPORT
-#else
-# ifdef USE_TCL_STUBS
-# define TKBLT_STORAGE_CLASS /* */
-# else
-# define TKBLT_STORAGE_CLASS DLLIMPORT
-# endif
-#endif
-
-
-typedef enum {
- BLT_VECTOR_NOTIFY_UPDATE = 1, /* The vector's values has been updated */
- BLT_VECTOR_NOTIFY_DESTROY /* The vector has been destroyed and the client
- * should no longer use its data (calling
- * Blt_FreeVectorId) */
-} Blt_VectorNotify;
-
-typedef struct _Blt_VectorId *Blt_VectorId;
-
-typedef void (Blt_VectorChangedProc)(Tcl_Interp* interp, ClientData clientData,
- Blt_VectorNotify notify);
-
-typedef struct {
- double *valueArr; /* Array of values (possibly malloc-ed) */
- int numValues; /* Number of values in the array */
- int arraySize; /* Size of the allocated space */
- double min, max; /* Minimum and maximum values in the vector */
- int dirty; /* Indicates if the vector has been updated */
- int reserved; /* Reserved for future use */
-
-} Blt_Vector;
-
-typedef double (Blt_VectorIndexProc)(Blt_Vector * vecPtr);
-
-typedef enum {
- BLT_MATH_FUNC_SCALAR = 1, /* The function returns a single double
- * precision value. */
- BLT_MATH_FUNC_VECTOR /* The function processes the entire vector. */
-} Blt_MathFuncType;
-
-/*
- * To be safe, use the macros below, rather than the fields of the
- * structure directly.
- *
- * The Blt_Vector is basically an opaque type. But it's also the
- * actual memory address of the vector itself. I wanted to make the
- * API as unobtrusive as possible. So instead of giving you a copy of
- * the vector, providing various functions to access and update the
- * vector, you get your hands on the actual memory (array of doubles)
- * shared by all the vector's clients.
- *
- * The trade-off for speed and convenience is safety. You can easily
- * break things by writing into the vector when other clients are
- * using it. Use Blt_ResetVector to get around this. At least the
- * macros are a reminder it isn't really safe to reset the data
- * fields, except by the API routines.
- */
-#define Blt_VecData(v) ((v)->valueArr)
-#define Blt_VecLength(v) ((v)->numValues)
-#define Blt_VecSize(v) ((v)->arraySize)
-#define Blt_VecDirty(v) ((v)->dirty)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
- TKBLT_STORAGE_CLASS int Blt_CreateVector(Tcl_Interp* interp, const char *vecName,
- int size, Blt_Vector** vecPtrPtr);
- TKBLT_STORAGE_CLASS int Blt_CreateVector2(Tcl_Interp* interp, const char *vecName,
- const char *cmdName, const char *varName,
- int initialSize, Blt_Vector **vecPtrPtr);
- TKBLT_STORAGE_CLASS int Blt_DeleteVectorByName(Tcl_Interp* interp, const char *vecName);
- TKBLT_STORAGE_CLASS int Blt_DeleteVector(Blt_Vector *vecPtr);
- TKBLT_STORAGE_CLASS int Blt_GetVector(Tcl_Interp* interp, const char *vecName,
- Blt_Vector **vecPtrPtr);
- TKBLT_STORAGE_CLASS int Blt_GetVectorFromObj(Tcl_Interp* interp, Tcl_Obj *objPtr,
- Blt_Vector **vecPtrPtr);
- TKBLT_STORAGE_CLASS int Blt_ResetVector(Blt_Vector *vecPtr, double *dataArr, int n,
- int arraySize, Tcl_FreeProc *freeProc);
- TKBLT_STORAGE_CLASS int Blt_ResizeVector(Blt_Vector *vecPtr, int n);
- TKBLT_STORAGE_CLASS int Blt_VectorExists(Tcl_Interp* interp, const char *vecName);
- TKBLT_STORAGE_CLASS int Blt_VectorExists2(Tcl_Interp* interp, const char *vecName);
- TKBLT_STORAGE_CLASS Blt_VectorId Blt_AllocVectorId(Tcl_Interp* interp, const char *vecName);
- TKBLT_STORAGE_CLASS int Blt_GetVectorById(Tcl_Interp* interp, Blt_VectorId clientId,
- Blt_Vector **vecPtrPtr);
- TKBLT_STORAGE_CLASS void Blt_SetVectorChangedProc(Blt_VectorId clientId,
- Blt_VectorChangedProc *proc,
- ClientData clientData);
- TKBLT_STORAGE_CLASS void Blt_FreeVectorId(Blt_VectorId clientId);
- TKBLT_STORAGE_CLASS const char *Blt_NameOfVectorId(Blt_VectorId clientId);
- TKBLT_STORAGE_CLASS const char *Blt_NameOfVector(Blt_Vector *vecPtr);
- TKBLT_STORAGE_CLASS int Blt_ExprVector(Tcl_Interp* interp, char *expr, Blt_Vector *vecPtr);
- TKBLT_STORAGE_CLASS void Blt_InstallIndexProc(Tcl_Interp* interp, const char *indexName,
- Blt_VectorIndexProc * procPtr);
- TKBLT_STORAGE_CLASS double Blt_VecMin(Blt_Vector *vPtr);
- TKBLT_STORAGE_CLASS double Blt_VecMax(Blt_Vector *vPtr);
-#ifdef __cplusplus
-}
-#endif
-
-#include "tkbltDecls.h"
-
-#endif /* _BLT_VECTOR_H */