VTK
vtkMatlabMexAdapter.h
Go to the documentation of this file.
1 
2 /*=========================================================================
3 
4  Program: Visualization Toolkit
5  Module: vtkMatlabMexAdapter.h
6 
7  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
8  All rights reserved.
9  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10 
11  This software is distributed WITHOUT ANY WARRANTY; without even
12  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13  PURPOSE. See the above copyright notice for more information.
14 
15 =========================================================================*/
16 /*-------------------------------------------------------------------------
17  Copyright 2009 Sandia Corporation.
18  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
19  the U.S. Government retains certain rights in this software.
20 -------------------------------------------------------------------------*/
21 
51 #ifndef vtkMatlabMexAdapter_h
52 #define vtkMatlabMexAdapter_h
53 
54 #include "mex.h" // Needed for Matlab mex.h mxArray
55 #include "matrix.h" // Needed for Matlab matrix.h mxArray
56 #include "vtkObject.h"
57 #include "vtkFiltersMatlabModule.h"
58 
59 class vtkInformation;
61 class vtkDataArray;
62 class vtkArray;
63 class vtkGraph;
65 class vtkArrayData;
67 
68 class VTKFILTERSMATLAB_EXPORT vtkMatlabMexAdapter : public vtkObject
69 {
70 
71 public:
72 
74 
75  void PrintSelf(ostream& os, vtkIndent indent);
76 
77  static vtkMatlabMexAdapter *New();
78 
79 //BTX
81  mxArray* vtkDataArrayToMxArray(vtkDataArray* aa, bool ShallowCopy = false);
82 
85  vtkDataArray* mxArrayTovtkDataArray(const mxArray* mxa, bool ShallowCopy = false);
86 
88  mxArray* vtkArrayToMxArray(vtkArray* va);
89 
91  vtkArray* mxArrayTovtkArray(mxArray* mxa);
92 
96  mxArray* vtkGraphToMxArray(vtkGraph* ga);
97 
101  vtkGraph* mxArrayTovtkGraph(mxArray* mxa);
102 
104  static mxClassID GetMatlabDataType(vtkDataArray* da);
105 
107  static vtkDataArray* GetVTKDataType(mxClassID cid);
108 
109 //ETX
110 
111 protected:
112 
115 
116 private:
117 
118  vtkMatlabMexAdapter(const vtkMatlabMexAdapter&); // Not implemented
119  void operator=(const vtkMatlabMexAdapter&); // Not implemented
120 
121  template<typename T> vtkArray* CopymxArrayToVTKArray(mxArray* mxa, int ValueType);
122 
123  vtkDataArrayCollection* vdac; // Collection of vtkDataArrays that have been converted from R.
124  vtkArrayData* vad; // Collection of vtkArrays that have been converted from R.
125  vtkDataObjectCollection* vdoc; // Collection of vtkTables that have been converted from R.
126 
127 };
128 
129 #endif
abstract base class for most VTK objects
Definition: vtkObject.h:61
Store vtkAlgorithm input/output information.
maintain an unordered list of data objects
Abstract interface for N-dimensional arrays.
Definition: vtkArray.h:69
Pipeline data object that contains multiple vtkArray objects.
Definition: vtkArrayData.h:51
Base class for graph data types.
Definition: vtkGraph.h:288
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
Definition: vtkIndent.h:38
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
This is a utility class to convert VTK array data to and from the Matlab mxArray format. It is used with the Matlab Mex and Matlab Engine interfaces.
maintain an unordered list of dataarray objects
Store zero or more vtkInformation instances.
static vtkObject * New()