#include "SMESH_FaceOrientationFilter.h"#include "SMESH_ActorUtils.h"#include "SUIT_Session.h"#include "SUIT_ResourceMgr.h"#include <VTKViewer_CellCenters.h>#include <vtkCellData.h>#include <vtkDataSet.h>#include <vtkPolyData.h>#include <vtkObjectFactory.h>#include <vtkInformation.h>#include <vtkInformationVector.h>#include <vtkFloatArray.h>#include <vtkCellArray.h>#include <vtkMaskPoints.h>#include <vtkGlyph3D.h>#include <vtkGlyphSource2D.h>#include <QColor>
Go to the source code of this file.
Defines | |
| #define | PI 3.14159265359 |
Functions | |
| vtkCxxRevisionMacro (SMESH_FaceOrientationFilter,"$Revision: 1.2.2.2.4.2.6.1 $") | |
| vtkStandardNewMacro (SMESH_FaceOrientationFilter) | |
| void | GetFaceParams (vtkCell *theFace, double theNormal[3], double &theSize) |
| #define PI 3.14159265359 |
Definition at line 43 of file SMESH_FaceOrientationFilter.cxx.
Referenced by _QuadFaceGrid.AddContinuousFace(), checkQuads(), SMESHGUI_RotationDlg.ClickOnApply(), SMESHGUI_RevolutionDlg.ClickOnApply(), StdMeshers_QuadToTriaAdaptor.Compute2ndPart(), SMESH.Controls.Warping.ComputeA(), SMESH_Pattern.compUVByElasticIsolines(), SMESH_FaceOrientationFilter.CreateArrowPolyData(), SMESH_ElementSearcherImpl.findOuterBoundary(), getAngle(), SMESHGUI_ExtrusionAlongPathDlg.getAngles(), SMESH.Controls.Skew.GetValue(), SMESH.Controls.MinimumAngle.GetValue(), SMESHGUI_RotationDlg.onDisplaySimulation(), SMESHGUI_RevolutionDlg.onDisplaySimulation(), SMESHGUI_UnionOfTrianglesDlg.process(), and VISCOUS._ViscousBuilder.smoothAnalyticEdge().
| void GetFaceParams | ( | vtkCell * | theFace, |
| double | theNormal[3], | ||
| double & | theSize | ||
| ) |
Definition at line 209 of file SMESH_FaceOrientationFilter.cxx.
References ex29_refine.x0, ex29_refine.x1, ex29_refine.x2, SMESH_fixation.y0, SMESH_fixation.y1, SMESH_fixation.y2, SMESH_fixation.z0, SMESH_fixation.z1, and SMESH_fixation.z2.
Referenced by SMESH_FaceOrientationFilter.RequestData().
{
vtkPoints* aPoints = theFace->GetPoints();
// here we get first 3 points from the face and calculate the normal as a cross-product of vectors
double x0 = aPoints->GetPoint(0)[0], y0 = aPoints->GetPoint(0)[1], z0 = aPoints->GetPoint(0)[2];
double x1 = aPoints->GetPoint(1)[0], y1 = aPoints->GetPoint(1)[1], z1 = aPoints->GetPoint(1)[2];
double x2 = aPoints->GetPoint(2)[0], y2 = aPoints->GetPoint(2)[1], z2 = aPoints->GetPoint(2)[2];
theNormal[0] = ( y1 - y0 ) * ( z2 - z0 ) - ( z1 - z0 ) * ( y2 - y0 );
theNormal[1] = ( z1 - z0 ) * ( x2 - x0 ) - ( x1 - x0 ) * ( z2 - z0 );
theNormal[2] = ( x1 - x0 ) * ( y2 - y0 ) - ( y1 - y0 ) * ( x2 - x0 );
double* aBounds = theFace->GetBounds();
theSize = pow( pow( aBounds[1] - aBounds[0], 2 ) +
pow( aBounds[3] - aBounds[2], 2 ) +
pow( aBounds[5] - aBounds[4], 2 ), 0.5 );
}
| vtkCxxRevisionMacro | ( | SMESH_FaceOrientationFilter | , |
| "$Revision: 1.2.2.2.4.2.6.1 $" | |||
| ) |
| vtkStandardNewMacro | ( | SMESH_FaceOrientationFilter | ) |