VTK  9.0.3
vtkLagrangeTriangle.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkLagrangeTriangle.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
31 #ifndef vtkLagrangeTriangle_h
32 #define vtkLagrangeTriangle_h
33 
34 #include "vtkCommonDataModelModule.h" // For export macro
35 #include "vtkHigherOrderTriangle.h"
36 
37 #include <vector> // For caching
38 
39 class vtkDoubleArray;
40 class vtkLagrangeCurve;
41 class vtkTriangle;
42 
43 class VTKCOMMONDATAMODEL_EXPORT vtkLagrangeTriangle : public vtkHigherOrderTriangle
44 {
45 public:
48  void PrintSelf(ostream& os, vtkIndent indent) override;
49  int GetCellType() override { return VTK_LAGRANGE_TRIANGLE; }
50 
51  vtkCell* GetEdge(int edgeId) override;
52  void InterpolateFunctions(const double pcoords[3], double* weights) override;
53  void InterpolateDerivs(const double pcoords[3], double* derivs) override;
54 
55  virtual vtkHigherOrderCurve* getEdgeCell() override;
56 
57 protected:
60 
64 
65 private:
67  void operator=(const vtkLagrangeTriangle&) = delete;
68 };
69 
70 #endif
abstract class to specify cell behavior
Definition: vtkCell.h:57
dynamic, self-adjusting array of double
A 2D cell that represents an arbitrary order HigherOrder triangle.
a simple class to control print indentation
Definition: vtkIndent.h:34
A 2D cell that represents an arbitrary order Lagrange triangle.
virtual vtkHigherOrderCurve * getEdgeCell() override
int GetCellType() override
Return the type of cell.
~vtkLagrangeTriangle() override
void InterpolateDerivs(const double pcoords[3], double *derivs) override
vtkIdType ComputeNumberOfSubtriangles()
vtkIdType GetNumberOfSubtriangles() const
vtkNew< vtkLagrangeCurve > EdgeCell
void InterpolateFunctions(const double pcoords[3], double *weights) override
static vtkLagrangeTriangle * New()
vtkCell * GetEdge(int edgeId) override
Return the edge cell from the edgeId of the cell.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a cell that represents a triangle
Definition: vtkTriangle.h:36
@ VTK_LAGRANGE_TRIANGLE
Definition: vtkCellType.h:110
int vtkIdType
Definition: vtkType.h:338