40 #include "WButterflyFactory.h" 
   41 #include "core/kernel/WModule.h" 
   42 #include "structure/WVertexFactory.h" 
   74     virtual const std::string 
getName() 
const;
 
   87     virtual std::shared_ptr< WModule > 
factory() 
const;
 
  127     std::shared_ptr< WModuleInputData< WTriangleMesh > > 
m_input;
 
  128     std::shared_ptr< WModuleOutputData< WTriangleMesh > > 
m_output;  
 
This data set type contains scalars as values.
 
This class adds some convenience methods to WGEGroupNode.
 
OpenWalnut module that subdivides a triangle mesh in more points resulting a smoother surface.
 
WPropDouble m_maxNeighbourTriangleAngleTriangleFlip
The Minimal allowed angle which fits in both vertices at a subdividable line end.
 
WPropDouble m_minTransformationAngle
Angle setting which both angles at the subdivided line ends should be at least as big as this value.
 
WPropDouble m_minAmountOfMax
Factor for multiplying the maximal distance to a neighbour within the Butterfly stencil.
 
WPropDouble m_minSubdividedLineLengthMultiplierPerIteration
The factor where the minimal subdivided line length is multiplied by in each Subdivision iteration st...
 
virtual void properties()
Initialize the properties for this module.
 
virtual ~WMButterfly()
Destroys this module.
 
WPropInt m_cpuThreads
CPU thread count setting for multithreading support.
 
WPropDouble m_maxNeighbourTriangleAngle
A subdivision is marked as invalid if the angle between any neighbor triangle line is above that angl...
 
std::shared_ptr< WModuleInputData< WTriangleMesh > > m_input
Input connector for scalar data.
 
WPropDouble m_maxNeighbourTriangleAngleLengthRatio
This settings extends If the line length is smaller than the subdividable line by this ratio,...
 
WPropDouble m_maxAmountOfMaxForVertexJoin
The Factor for comparison to the maximal length of a triangle.
 
std::shared_ptr< WCondition > m_propCondition
Needed for recreating the geometry, incase when resolution changes.
 
WPropInt m_maxTriangles
Maximal allowed triangle count after Butterfly subdivision.
 
WPropDouble m_minAmountOfAverage
Factor for multiplying the average distance to a neighbour within the Butterfly stencil.
 
std::shared_ptr< WTriangleMesh > m_mesh
Triangle mesh which will be assigned to the Butterfly subdivision instance.
 
std::shared_ptr< WTriangleMesh > m_oldInterpolatedMesh
Holder for the current triangle mesh that grants that there's always a valid data output at the end.
 
WPropInt m_iterations
The iteration count of the Butterfly subdivision to attempt.
 
WPropDouble m_minQuotient
Maximum factor which the following lines should differ to show a valid subdivision.
 
virtual void requirements()
Initialize requirements for this module.
 
std::shared_ptr< WModuleOutputData< WTriangleMesh > > m_output
Output connector provided by this module.
 
osg::ref_ptr< WGEManagedGroupNode > m_rootNode
The OSG root node for this module.
 
virtual const std::string getDescription() const
Gives back a description of this module.
 
virtual const std::string getName() const
Gives back the name of this module.
 
virtual void moduleMain()
Entry point after loading the module.
 
WMButterfly()
Creates the module for subdividing a triangle mesh using Butterfly subdivision.
 
WPropDouble m_minSubdividedLineLength
The minimal subdividable line length.
 
float getMaxLineLength(std::shared_ptr< WTriangleMesh > inputMesh)
Returns the biggest length of a neighbour relationship.
 
virtual const char ** getXPMIcon() const
Get the icon for this module in XPM format.
 
WPropDouble m_maxTriangles10n
Maximal allowed triangle count after Butterfly subdivision.
 
WPropDouble m_butterflySettingW
The general Butterfly Subdivision setting w that affects the subdivision.
 
WPropDouble m_maxTransformationAngle
Angle setting which both angles at the subdivided line ends should be not bigger than this value.
 
virtual void connectors()
Initialize the connectors this module is using.
 
butterfly::WButterflyFactory * m_butterfly
Butterfly subdivision instance.
 
virtual std::shared_ptr< WModule > factory() const
Due to the prototype design pattern used to build modules, this method returns a new instance of this...
 
WPropDouble m_minNeighbourTriangleAngle
The Minimal allowed angle between two Subdivided line ends.
 
Class representing a single module of OpenWalnut.
 
Class that depicts the whole Butterfly subdivision algorithm but nothing more as such.