From 71e94ee161447b84c0eaabf6567f8fa62262cd3e Mon Sep 17 00:00:00 2001 From: Mirrorbot Date: Sat, 27 Dec 2025 17:53:06 -0600 Subject: Inital commit --- doc/html/_s_vertex_manipulator_8h_source.html | 389 ++++++++++++++++++++++++++ 1 file changed, 389 insertions(+) create mode 100644 doc/html/_s_vertex_manipulator_8h_source.html (limited to 'doc/html/_s_vertex_manipulator_8h_source.html') diff --git a/doc/html/_s_vertex_manipulator_8h_source.html b/doc/html/_s_vertex_manipulator_8h_source.html new file mode 100644 index 0000000..4b33883 --- /dev/null +++ b/doc/html/_s_vertex_manipulator_8h_source.html @@ -0,0 +1,389 @@ + + + + +Irrlicht 3D Engine: SVertexManipulator.h Source File + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + +
+
Irrlicht 3D Engine + +
+ +
+ + + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
SVertexManipulator.h
+
+
+Go to the documentation of this file.
00001 // Copyright (C) 2009-2012 Christian Stehno
+00002 // This file is part of the "Irrlicht Engine".
+00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
+00004 
+00005 #ifndef __S_VERTEX_MANIPULATOR_H_INCLUDED__
+00006 #define __S_VERTEX_MANIPULATOR_H_INCLUDED__
+00007 
+00008 #include "S3DVertex.h"
+00009 #include "SColor.h"
+00010 
+00011 namespace irr
+00012 {
+00013 namespace scene
+00014 {
+00015 
+00016     class IMesh;
+00017     class IMeshBuffer;
+00018     struct SMesh;
+00019 
+00021 
+00023     struct IVertexManipulator
+00024     {
+00025     };
+00027     class SVertexColorSetManipulator : public IVertexManipulator
+00028     {
+00029     public:
+00030         SVertexColorSetManipulator(video::SColor color) : Color(color) {}
+00031         void operator()(video::S3DVertex& vertex) const
+00032         {
+00033             vertex.Color=Color;
+00034         }
+00035     private:
+00036         video::SColor Color;
+00037     };
+00039     class SVertexColorSetAlphaManipulator : public IVertexManipulator
+00040     {
+00041     public:
+00042         SVertexColorSetAlphaManipulator(u32 alpha) : Alpha(alpha) {}
+00043         void operator()(video::S3DVertex& vertex) const
+00044         {
+00045             vertex.Color.setAlpha(Alpha);
+00046         }
+00047     private:
+00048         u32 Alpha;
+00049     };
+00051     class SVertexColorInvertManipulator : public IVertexManipulator
+00052     {
+00053     public:
+00054         void operator()(video::S3DVertex& vertex) const
+00055         {
+00056             vertex.Color.setRed(255-vertex.Color.getRed());
+00057             vertex.Color.setGreen(255-vertex.Color.getGreen());
+00058             vertex.Color.setBlue(255-vertex.Color.getBlue());
+00059         }
+00060     };
+00062 
+00063     class SVertexColorThresholdManipulator : public IVertexManipulator
+00064     {
+00065     public:
+00066         SVertexColorThresholdManipulator(u8 threshold, video::SColor low,
+00067             video::SColor high) : Threshold(threshold), Low(low), High(high) {}
+00068         void operator()(video::S3DVertex& vertex) const
+00069         {
+00070             vertex.Color = ((u8)vertex.Color.getAverage()>Threshold)?High:Low;
+00071         }
+00072     private:
+00073         u8 Threshold;
+00074         video::SColor Low;
+00075         video::SColor High;
+00076     };
+00078 
+00079     class SVertexColorBrightnessManipulator : public IVertexManipulator
+00080     {
+00081     public:
+00082         SVertexColorBrightnessManipulator(s32 amount) : Amount(amount) {}
+00083         void operator()(video::S3DVertex& vertex) const
+00084         {
+00085             vertex.Color.setRed(core::clamp(vertex.Color.getRed()+Amount, 0u, 255u));
+00086             vertex.Color.setGreen(core::clamp(vertex.Color.getGreen()+Amount, 0u, 255u));
+00087             vertex.Color.setBlue(core::clamp(vertex.Color.getBlue()+Amount, 0u, 255u));
+00088         }
+00089     private:
+00090         s32 Amount;
+00091     };
+00093 
+00094     class SVertexColorContrastManipulator : public IVertexManipulator
+00095     {
+00096     public:
+00097         SVertexColorContrastManipulator(f32 factor) : Factor(factor) {}
+00098         void operator()(video::S3DVertex& vertex) const
+00099         {
+00100             vertex.Color.setRed(core::clamp(core::round32((vertex.Color.getRed()-128)*Factor)+128, 0, 255));
+00101             vertex.Color.setGreen(core::clamp(core::round32((vertex.Color.getGreen()-128)*Factor)+128, 0, 255));
+00102             vertex.Color.setBlue(core::clamp(core::round32((vertex.Color.getBlue()-128)*Factor)+128, 0, 255));
+00103         }
+00104     private:
+00105         f32 Factor;
+00106     };
+00108 
+00110     class SVertexColorContrastBrightnessManipulator : public IVertexManipulator
+00111     {
+00112     public:
+00113         SVertexColorContrastBrightnessManipulator(f32 factor, s32 amount) : Factor(factor), Amount(amount+128) {}
+00114         void operator()(video::S3DVertex& vertex) const
+00115         {
+00116             vertex.Color.setRed(core::clamp(core::round32((vertex.Color.getRed()-128)*Factor)+Amount, 0, 255));
+00117             vertex.Color.setGreen(core::clamp(core::round32((vertex.Color.getGreen()-128)*Factor)+Amount, 0, 255));
+00118             vertex.Color.setBlue(core::clamp(core::round32((vertex.Color.getBlue()-128)*Factor)+Amount, 0, 255));
+00119         }
+00120     private:
+00121         f32 Factor;
+00122         s32 Amount;
+00123     };
+00125 
+00126     class SVertexColorGammaManipulator : public IVertexManipulator
+00127     {
+00128     public:
+00129         SVertexColorGammaManipulator(f32 gamma) : Gamma(1.f)
+00130         {
+00131             if (gamma != 0.f)
+00132                 Gamma = 1.f/gamma;
+00133         }
+00134         void operator()(video::S3DVertex& vertex) const
+00135         {
+00136             vertex.Color.setRed(core::clamp(core::round32(powf((f32)(vertex.Color.getRed()),Gamma)), 0, 255));
+00137             vertex.Color.setGreen(core::clamp(core::round32(powf((f32)(vertex.Color.getGreen()),Gamma)), 0, 255));
+00138             vertex.Color.setBlue(core::clamp(core::round32(powf((f32)(vertex.Color.getBlue()),Gamma)), 0, 255));
+00139         }
+00140     private:
+00141         f32 Gamma;
+00142     };
+00144 
+00145     class SVertexColorScaleManipulator : public IVertexManipulator
+00146     {
+00147     public:
+00148         SVertexColorScaleManipulator(f32 factor) : Factor(factor) {}
+00149         void operator()(video::S3DVertex& vertex) const
+00150         {
+00151             vertex.Color.setRed(core::clamp(core::round32(vertex.Color.getRed()*Factor), 0, 255));
+00152             vertex.Color.setGreen(core::clamp(core::round32(vertex.Color.getGreen()*Factor), 0, 255));
+00153             vertex.Color.setBlue(core::clamp(core::round32(vertex.Color.getBlue()*Factor), 0, 255));
+00154         }
+00155     private:
+00156         f32 Factor;
+00157     };
+00159 
+00160     class SVertexColorDesaturateToLightnessManipulator : public IVertexManipulator
+00161     {
+00162     public:
+00163         void operator()(video::S3DVertex& vertex) const
+00164         {
+00165             vertex.Color=core::round32(vertex.Color.getLightness());
+00166         }
+00167     };
+00169 
+00170     class SVertexColorDesaturateToAverageManipulator : public IVertexManipulator
+00171     {
+00172     public:
+00173         void operator()(video::S3DVertex& vertex) const
+00174         {
+00175             vertex.Color=vertex.Color.getAverage();
+00176         }
+00177     };
+00179 
+00180     class SVertexColorDesaturateToLuminanceManipulator : public IVertexManipulator
+00181     {
+00182     public:
+00183         void operator()(video::S3DVertex& vertex) const
+00184         {
+00185             vertex.Color=core::round32(vertex.Color.getLuminance());
+00186         }
+00187     };
+00189 
+00190     class SVertexColorInterpolateLinearManipulator : public IVertexManipulator
+00191     {
+00192     public:
+00193         SVertexColorInterpolateLinearManipulator(video::SColor color, f32 factor) :
+00194           Color(color), Factor(factor) {}
+00195         void operator()(video::S3DVertex& vertex) const
+00196         {
+00197             vertex.Color=vertex.Color.getInterpolated(Color, Factor);
+00198         }
+00199     private:
+00200         video::SColor Color;
+00201         f32 Factor;
+00202     };
+00204 
+00205     class SVertexColorInterpolateQuadraticManipulator : public IVertexManipulator
+00206     {
+00207     public:
+00208         SVertexColorInterpolateQuadraticManipulator(video::SColor color1, video::SColor color2, f32 factor) :
+00209           Color1(color1), Color2(color2), Factor(factor) {}
+00210         void operator()(video::S3DVertex& vertex) const
+00211         {
+00212             vertex.Color=vertex.Color.getInterpolated_quadratic(Color1, Color2, Factor);
+00213         }
+00214     private:
+00215         video::SColor Color1;
+00216         video::SColor Color2;
+00217         f32 Factor;
+00218     };
+00219 
+00221     class SVertexPositionScaleManipulator : public IVertexManipulator
+00222     {
+00223     public:
+00224         SVertexPositionScaleManipulator(const core::vector3df& factor) : Factor(factor) {}
+00225         template <typename VType>
+00226         void operator()(VType& vertex) const
+00227         {
+00228             vertex.Pos *= Factor;
+00229         }
+00230     private:
+00231         core::vector3df Factor;
+00232     };
+00233 
+00235 
+00238     class SVertexPositionScaleAlongNormalsManipulator : public IVertexManipulator
+00239     {
+00240     public:
+00241         SVertexPositionScaleAlongNormalsManipulator(const core::vector3df& factor) : Factor(factor) {}
+00242         template <typename VType>
+00243         void operator()(VType& vertex) const
+00244         {
+00245             vertex.Pos += vertex.Normal*Factor;
+00246         }
+00247     private:
+00248         core::vector3df Factor;
+00249     };
+00250 
+00252     class SVertexPositionTransformManipulator : public IVertexManipulator
+00253     {
+00254     public:
+00255         SVertexPositionTransformManipulator(const core::matrix4& m) : Transformation(m) {}
+00256         template <typename VType>
+00257         void operator()(VType& vertex) const
+00258         {
+00259             Transformation.transformVect(vertex.Pos);
+00260         }
+00261     private:
+00262         core::matrix4 Transformation;
+00263     };
+00264 
+00266     class SVertexTCoordsScaleManipulator : public IVertexManipulator
+00267     {
+00268     public:
+00269         SVertexTCoordsScaleManipulator(const core::vector2df& factor, u32 uvSet=1) : Factor(factor), UVSet(uvSet) {}
+00270         void operator()(video::S3DVertex2TCoords& vertex) const
+00271         {
+00272             if (1==UVSet)
+00273                 vertex.TCoords *= Factor;
+00274             else if (2==UVSet)
+00275                 vertex.TCoords2 *= Factor;
+00276         }
+00277         template <typename VType>
+00278         void operator()(VType& vertex) const
+00279         {
+00280             if (1==UVSet)
+00281                 vertex.TCoords *= Factor;
+00282         }
+00283     private:
+00284         core::vector2df Factor;
+00285         u32 UVSet;
+00286     };
+00287 
+00288 } // end namespace scene
+00289 } // end namespace irr
+00290 
+00291 
+00292 #endif
+
+
+ + + + + -- cgit v1.2.3-70-g09d2