From 72becdabc9173c43e8b57bc560a89cf80b87bdac Mon Sep 17 00:00:00 2001 From: Eduardo DAVILA Date: Tue, 17 May 2022 12:21:32 +0200 Subject: [PATCH] #3484 Mesh MassProperties box --- .../src/bbcreaVtkMassProperties.cxx | 87 +++++++++++++++++++ .../src/bbcreaVtkMassProperties.h | 61 +++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 bbtk_creaVtk_PKG/src/bbcreaVtkMassProperties.cxx create mode 100644 bbtk_creaVtk_PKG/src/bbcreaVtkMassProperties.h diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkMassProperties.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkMassProperties.cxx new file mode 100644 index 0000000..f35bd91 --- /dev/null +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkMassProperties.cxx @@ -0,0 +1,87 @@ +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +#include "bbcreaVtkMassProperties.h" +#include "bbcreaVtkPackage.h" + +#include + +namespace bbcreaVtk +{ + +BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,MassProperties) +BBTK_BLACK_BOX_IMPLEMENTATION(MassProperties,bbtk::AtomicBlackBox); +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void MassProperties::Process() +{ + +// THE MAIN PROCESSING METHOD BODY +// Here we simply set the input 'In' value to the output 'Out' +// And print out the output value +// INPUT/OUTPUT ACCESSORS ARE OF THE FORM : +// void bbSet{Input|Output}NAME(const TYPE&) +// const TYPE& bbGet{Input|Output}NAME() const +// Where : +// * NAME is the name of the input/output +// (the one provided in the attribute 'name' of the tag 'input') +// * TYPE is the C++ type of the input/output +// (the one provided in the attribute 'type' of the tag 'input') +// bbSetOutputOut( bbGetInputIn() ); +// std::cout << "Output value = " <SetInputData( bbGetInputIn() ); + massproperties->Update(); + bbSetOutputSurfaceArea( massproperties->GetSurfaceArea() ); + bbSetOutputVolumeX( massproperties->GetVolumeX() ); + bbSetOutputVolumeY( massproperties->GetVolumeY() ); + bbSetOutputVolumeZ( massproperties->GetVolumeZ() ); + bbSetOutputMinCellArea( massproperties->GetMinCellArea() ); + bbSetOutputMaxCellArea( massproperties->GetMaxCellArea() ); + bbSetOutputNormalizedShapeIndex( massproperties->GetNormalizedShapeIndex() ); + } // if In !NULL +} +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void MassProperties::bbUserSetDefaultValues() +{ + +// SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX +// Here we initialize the input 'In' to 0 + bbSetInputIn(NULL); + +} +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void MassProperties::bbUserInitializeProcessing() +{ + +// THE INITIALIZATION METHOD BODY : +// Here does nothing +// but this is where you should allocate the internal/output pointers +// if any + + +} +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +void MassProperties::bbUserFinalizeProcessing() +{ + +// THE FINALIZATION METHOD BODY : +// Here does nothing +// but this is where you should desallocate the internal/output pointers +// if any + +} +} +// EO namespace bbcreaVtk + + diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkMassProperties.h b/bbtk_creaVtk_PKG/src/bbcreaVtkMassProperties.h new file mode 100644 index 0000000..f92702d --- /dev/null +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkMassProperties.h @@ -0,0 +1,61 @@ +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +#ifndef __bbcreaVtkMassProperties_h_INCLUDED__ +#define __bbcreaVtkMassProperties_h_INCLUDED__ + +#include "bbcreaVtk_EXPORT.h" +#include "bbtkAtomicBlackBox.h" +#include "iostream" + +#include + +namespace bbcreaVtk +{ + +class bbcreaVtk_EXPORT MassProperties + : + public bbtk::AtomicBlackBox +{ + BBTK_BLACK_BOX_INTERFACE(MassProperties,bbtk::AtomicBlackBox); +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== + BBTK_DECLARE_INPUT(In, vtkPolyData*); + BBTK_DECLARE_OUTPUT(SurfaceArea,double); + BBTK_DECLARE_OUTPUT(VolumeX,double); + BBTK_DECLARE_OUTPUT(VolumeY,double); + BBTK_DECLARE_OUTPUT(VolumeZ,double); + BBTK_DECLARE_OUTPUT(MinCellArea,double); + BBTK_DECLARE_OUTPUT(MaxCellArea,double); + BBTK_DECLARE_OUTPUT(NormalizedShapeIndex,double); + BBTK_PROCESS(Process); + void Process(); +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +}; + +BBTK_BEGIN_DESCRIBE_BLACK_BOX(MassProperties,bbtk::AtomicBlackBox); + BBTK_NAME("MassProperties"); + BBTK_AUTHOR("InfoDev"); + BBTK_DESCRIPTION("No Description."); + BBTK_CATEGORY("empty"); + BBTK_INPUT(MassProperties,In,"Mesh PolyData",vtkPolyData*,""); + BBTK_OUTPUT(MassProperties,SurfaceArea,"Surface Area",double,""); + BBTK_OUTPUT(MassProperties,VolumeX,"VolumeX",double,""); + BBTK_OUTPUT(MassProperties,VolumeY,"VolumeY",double,""); + BBTK_OUTPUT(MassProperties,VolumeZ,"VolumeZ",double,""); + BBTK_OUTPUT(MassProperties,MinCellArea,"MinCellArea",double,""); + BBTK_OUTPUT(MassProperties,MaxCellArea,"MaxCellArea",double,""); + BBTK_OUTPUT(MassProperties,NormalizedShapeIndex,"NormalizedShapeIndex",double,""); + + BBTK_END_DESCRIBE_BLACK_BOX(MassProperties); +//===== +// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) +//===== +} +// EO namespace bbcreaVtk + +#endif // __bbcreaVtkMassProperties_h_INCLUDED__ + -- 2.45.1