Version: 6.3.1
Defines | Functions

src/OBJECT/SMESH_FaceOrientationFilter.cxx File Reference

#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>
Include dependency graph for SMESH_FaceOrientationFilter.cxx:

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 Documentation

#define PI   3.14159265359

Function Documentation

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  )
Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS