GemaLuaCoreLib
The GeMA Lua Core library
gmLuaCellGeometry.h
Go to the documentation of this file.
1 /************************************************************************
2 **
3 ** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4 ** All rights reserved.
5 **
6 ** This file is part of the "GeMA" software. It's use should respect
7 ** the terms in the license agreement that can be found together
8 ** with this source code.
9 ** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10 ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11 ** A PARTICULAR PURPOSE.
12 **
13 ************************************************************************/
14 
24 #ifndef _GEMALUA_CELL_GEOMETRY_H_
25 #define _GEMALUA_CELL_GEOMETRY_H_
26 
27 #include "gmLuaObject.h"
28 
29 #include <gmCell.h>
30 
32 class GML_API_EXPORT GmLuaCellGeometry: public GmLuaObject
33 {
34 public:
35  GmLuaCellGeometry(GmCellType cellType, const GmLogCategory& logger);
36 
37  virtual ~GmLuaCellGeometry();
38 
39  // See comments on the base class
40  virtual const char* typeName() const { return "geometry"; }
41 
42  virtual void fillMetatable(lua_State* L, int index);
43 
45  virtual void* getClassMetatableID() { static int classID = 0; return &classID; }
46 
47  static int pushGeometryProxy(lua_State* L, GmCellType cellType, const GmLogCategory& logger);
48 
49 private:
50  int type (lua_State* L);
51  int family (lua_State* L);
52  int numNodes (lua_State* L);
53  int numVertices (lua_State* L);
54  int numExtraDofNodes (lua_State* L);
55  int numCoord (lua_State* L);
56  int numEdges (lua_State* L);
57  int numFaces (lua_State* L);
58  int order (lua_State* L);
59  int isLine (lua_State* L);
60  int isSurface (lua_State* L);
61  int isSolid (lua_State* L);
62  int isInterface (lua_State* L);
63  int isHierarchical (lua_State* L);
64  int numEdgeNodes (lua_State* L);
65  int edgeNode (lua_State* L);
66  int firstEdgeNode (lua_State* L);
67  int lastEdgeNode (lua_State* L);
68  int nodeOnEdge (lua_State* L);
69  int edgeFromNodes (lua_State* L);
70  int numFaceEdges (lua_State* L);
71  int faceEdge (lua_State* L);
72  int numEdgeFaces (lua_State* L);
73  int edgeFace (lua_State* L);
74  int numFaceBoundaryNodes (lua_State* L);
75  int numFaceNodes (lua_State* L);
76  int faceNode (lua_State* L);
77  int numIncidenceNodes (lua_State* L);
78  int incidenceNode (lua_State* L);
79  int numVolumeInternalNodes (lua_State* L);
80  int volumeInternalNode (lua_State* L);
81  int numFaceTypes (lua_State* L);
82  int faceType (lua_State* L);
83  int edgeElement (lua_State* L);
84  int faceElement (lua_State* L);
85  int edgeElementNode (lua_State* L);
86  int faceElementNode (lua_State* L);
87  int linearElement (lua_State* L);
88  int edgeLinearElement (lua_State* L);
89  int faceLinearElement (lua_State* L);
90  int length (lua_State* L);
91  int area (lua_State* L);
92  int volume (lua_State* L);
93  int characteristicLength (lua_State* L);
94  int characteristicDimension(lua_State* L);
95  int centroidCartesian (lua_State* L);
96 
98 };
99 
100 
101 #endif
Declaration of the GmLuaObject class.
A proxy class to export GmCellGeometry methods to the Lua environment.
Definition: gmLuaCellGeometry.h:32
virtual const char * typeName() const
Returns the object type as will be stored in the object metatable.
Definition: gmLuaCellGeometry.h:40
virtual void fillMetatable(lua_State *L, int index)=0
Function called by populateMetatable() to fill the metatable with exported methods by derived classes...
virtual void * getClassMetatableID()
Returns an unique identifier to identify an user object as a GmLuaMesh object.
Definition: gmLuaCellGeometry.h:45
const GmCellGeometry _geom
The cell geometry 'wrapped' by this proxy object.
Definition: gmLuaCellGeometry.h:97
GmCellType
A proxy class to export object methods to the Lua environment.
Definition: gmLuaObject.h:35