You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

155 lines
4.4 KiB
C

/**********************************************************************
* @file FITKAlgGlyph.h
* @brief
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-23
*********************************************************************/
#ifndef _FITKAlgGlyph_H
#define _FITKAlgGlyph_H
#include "FITKInterfaceCFDPostAPI.h"
#include "FITKCFDPostMacros.hxx"
#include <vtkPolyDataAlgorithm.h>
#include <vtkSetGet.h>
#include <QString>
class vtkPolyData;
namespace Interface
{
/**
* @brief
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-24
*/
class FITKInterfaceCFDPostAPI FITKAlgGlyph :public vtkPolyDataAlgorithm
{
vtkTypeMacro(FITKAlgGlyph, vtkPolyDataAlgorithm);
/*
*brief
*/
AddProperty(QString, vectorName);
/*
*brief
*/
AddProperty(int, tipResolution, 6);
/*
*brief
*/
AddProperty(double, tipRadius, 0.2);
/*
*brief
*/
AddProperty(double, tipLength, 0.1);
/*
*brief
*/
AddProperty(int, shaftResolution, 6);
/*
*brief
*/
AddProperty(double, shaftRadius, 0.1);
/*
*brief
*/
AddProperty(double, scaleFactor, 0.01);
/*
*brief 使
*/
AddProperty(bool, pointDataUsed, true);
/*
*brief
*/
AddProperty(int, pointNum, 0);
/*
*brief
*/
AddProperty(int, maxNumber, 100000);
/*
*brief :0-scalar,1-vector,2-vectorcomponent,3-off
*/
AddProperty(int, scaleMode, 1);
public:
/**
* @brief
* @return FITKAlgGlyph*
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-24
*/
static FITKAlgGlyph* New();
void PrintSelf(ostream& os, vtkIndent indent);
protected:
/**
* @brief
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-24
*/
FITKAlgGlyph();
/**
* @brief
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-24
*/
~FITKAlgGlyph();
/**
* @brief
* @param[i] port
* @param[i] info
* @return int
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-23
*/
int FillOutputPortInformation(int port, vtkInformation* info) override;
/**
* @brief
* @param[i] port
* @param[i] info
* @return int
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-23
*/
int FillInputPortInformation(int port, vtkInformation* info) override;
/**
* @brief
* @param[i] request
* @param[i] inputVector
* @param[i] outputVector
* @return int
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-23
*/
int ProcessRequest(vtkInformation* request, vtkInformationVector** inputVector, vtkInformationVector* outputVector);
/**
* @brief
* @param[i] request
* @param[i] inputVector
* @param[i] outputVector
* @return int
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-23
*/
int RequestData(vtkInformation* request, vtkInformationVector** inputVector, vtkInformationVector* outputVector);
private:
/**
* @brief
* @param[i] inputData
* @return bool
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-23
*/
bool extractPoints(vtkDataSet* inputData);
void extractPointDataArray(vtkDataSet* inputData);
private:
/**
* @brief
* @author BaGuijun (baguijun@163.com)
* @date 2024-09-23
*/
vtkPolyData* _polyData = nullptr;
};
}
#endif