| /** | |
| * @defgroup Node Node class | |
| * @brief Class Node: a node object. | |
| */ | |
| /** | |
| * @file node.h | |
| * @brief Class Node: a node object. | |
| * @author Michael Holst | |
| * @note None | |
| * @version $Id: node.h,v 1.11 2010/08/12 05:18:22 fetk Exp $ | |
| * | |
| * @attention | |
| * @verbatim | |
| * | |
| * MC = < Manifold Code > | |
| * Copyright (C) 1994-- Michael Holst | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| * | |
| * @endverbatim | |
| */ | |
| /** | |
| * @ingroup global_mc | |
| * @author Michael Holst | |
| * @brief Class Node: Parameters and datatypes | |
| */ | |
| typedef struct aNode { | |
| /** @brief My id */ | |
| int myid; | |
| /** @brief My vertex association (-1=none,else k>=0) */ | |
| int myvert; | |
| /** @brief My node type (0=interior,odd=diri,even=neu) */ | |
| char type; | |
| /** @brief My chart number */ | |
| char chart; | |
| /** @brief number of coordinates for my chart */ | |
| char numx; | |
| /** @brief My nodal coordinates (wrt my chart) */ | |
| double x[3]; | |
| /** @brief My nodal value */ | |
| double val; | |
| } aNode; | |
| /** | |
| * @ingroup Node | |
| * @brief Class Node: Definition | |
| * @author Michael Holst | |
| */ | |
| struct sNode { | |
| Vmem *vmem; /**< @brief the memory manager */ | |
| int iMadeVmem; /**< @brief did i make vmem or was it inherited */ | |
| int numR; /**< @brief the number of nodes */ | |
| aNode *data; /**< @brief vector data itself */ | |
| }; | |
| /** | |
| * @ingroup Node | |
| * @brief Declaration of the Node class as the Node structure | |
| * @author Michael Holst | |
| */ | |
| typedef struct sNode Node; | |
| /** | |
| * @ingroup Node | |
| * @brief Return the number of nodes. | |
| * @author Michael Holst | |
| * @note Class Node: Inlineable methods (node.c) | |
| * @return the number of nodes | |
| * @param thee Pointer to a Node allocated memory location | |
| */ | |
| VEXTERNC int Node_numR(Node *thee); | |
| /** | |
| * @ingroup Node | |
| * @brief Return a pointer to the node data. | |
| * @author Michael Holst | |
| * @note Class Node: Inlineable methods (node.c) | |
| * @return a pointer to the node data. | |
| * @param thee Pointer to a Node allocated memory location | |
| */ | |
| VEXTERNC aNode* Node_data(Node *thee); | |
| /** | |
| * @ingroup Node | |
| * @brief Class Node: Inlineable methods (node.c) if defined(VINLINE_APRX) | |
| * @author Michael Holst | |
| * @note Class Node: Inlineable methods (node.c) | |
| * @return the number of nodes | |
| * @param thee Pointer to a Node allocated memory location | |
| */ | |
| /** | |
| * @ingroup Node | |
| * @brief Class Node: Inlineable methods (node.c) if defined(VINLINE_APRX) | |
| * @author Michael Holst | |
| * @note Class Node: Inlineable methods (node.c) | |
| * @return a pointer to the node data. | |
| * @param thee Pointer to a Node allocated memory location | |
| */ | |
| /** | |
| * @ingroup Node | |
| * @brief The node constructor. | |
| * @author Michael Holst | |
| * @note Class Node: Non-inlineable methods (node.c) | |
| * @return Pointer to a Node allocated memory location | |
| * @param vmem Memory management object | |
| * @param pnumR num of rows in the matrix | |
| */ | |
| VEXTERNC Node* Node_ctor(Vmem *vmem, int pnumR); | |
| /** | |
| * @ingroup Node | |
| * @brief The node destructor. | |
| * @author Michael Holst | |
| * @note Class Node: Non-inlineable methods (node.c) | |
| * @param thee Pointer to a Node allocated memory location | |
| */ | |
| VEXTERNC void Node_dtor(Node **thee); | |
| /** | |
| * @ingroup Node | |
| * @brief Print the exact current malloc usage. | |
| * @author Michael Holst | |
| * @note Class Node: Non-inlineable methods (node.c) | |
| * @return none | |
| * @param thee Pointer to a Node allocated memory location | |
| */ | |
| VEXTERNC void Node_memChk(Node *thee); | |