Updated wrappers.
This commit is contained in:
@@ -80,6 +80,7 @@ BEGIN_VALUE_REFLECTOR(osg::AnimationPath::ControlPoint)
|
||||
I_Method1(void, setScale, IN, const osg::Vec3d &, scale);
|
||||
I_Method0(const osg::Vec3d &, getScale);
|
||||
I_Method3(void, interpolate, IN, float, ratio, IN, const osg::AnimationPath::ControlPoint &, first, IN, const osg::AnimationPath::ControlPoint &, second);
|
||||
I_Method3(void, interpolate, IN, double, ratio, IN, const osg::AnimationPath::ControlPoint &, first, IN, const osg::AnimationPath::ControlPoint &, second);
|
||||
I_Method1(void, getMatrix, IN, osg::Matrixf &, matrix);
|
||||
I_Method1(void, getMatrix, IN, osg::Matrixd &, matrix);
|
||||
I_Method1(void, getInverse, IN, osg::Matrixf &, matrix);
|
||||
|
||||
@@ -49,6 +49,7 @@ END_REFLECTOR
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::CameraNode::RenderTargetImplementation)
|
||||
I_EnumLabel(osg::CameraNode::FRAME_BUFFER_OBJECT);
|
||||
I_EnumLabel(osg::CameraNode::PIXEL_BUFFER_RTT);
|
||||
I_EnumLabel(osg::CameraNode::PIXEL_BUFFER);
|
||||
I_EnumLabel(osg::CameraNode::FRAME_BUFFER);
|
||||
I_EnumLabel(osg::CameraNode::SEPERATE_WINDOW);
|
||||
|
||||
62
src/osgWrappers/osg/CameraView.cpp
Normal file
62
src/osgWrappers/osg/CameraView.cpp
Normal file
@@ -0,0 +1,62 @@
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <osg/CameraView>
|
||||
#include <osg/CopyOp>
|
||||
#include <osg/Matrix>
|
||||
#include <osg/NodeVisitor>
|
||||
#include <osg/Object>
|
||||
#include <osg/Quat>
|
||||
#include <osg/Vec3d>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osg::CameraView::FieldOfViewMode)
|
||||
I_EnumLabel(osg::CameraView::UNCONSTRAINED);
|
||||
I_EnumLabel(osg::CameraView::HORIZONTAL);
|
||||
I_EnumLabel(osg::CameraView::VERTICAL);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osg::CameraView)
|
||||
I_BaseType(osg::Transform);
|
||||
I_Constructor0();
|
||||
I_ConstructorWithDefaults2(IN, const osg::CameraView &, pat, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY);
|
||||
I_Method0(osg::Object *, cloneType);
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop);
|
||||
I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj);
|
||||
I_Method0(const char *, className);
|
||||
I_Method0(const char *, libraryName);
|
||||
I_Method1(void, accept, IN, osg::NodeVisitor &, nv);
|
||||
I_Method1(void, setPosition, IN, const osg::Vec3d &, pos);
|
||||
I_Method0(const osg::Vec3d &, getPosition);
|
||||
I_Method1(void, setAttitude, IN, const osg::Quat &, quat);
|
||||
I_Method0(const osg::Quat &, getAttitude);
|
||||
I_Method1(void, setFieldOfView, IN, double, fieldOfView);
|
||||
I_Method0(double, getFieldOfView);
|
||||
I_Method1(void, setFieldOfViewMode, IN, osg::CameraView::FieldOfViewMode, mode);
|
||||
I_Method0(osg::CameraView::FieldOfViewMode, getFieldOfViewMode);
|
||||
I_Method1(void, setFocalLength, IN, double, FocalLength);
|
||||
I_Method0(double, getFocalLength);
|
||||
I_Method2(bool, computeLocalToWorldMatrix, IN, osg::Matrix &, matrix, IN, osg::NodeVisitor *, nv);
|
||||
I_Method2(bool, computeWorldToLocalMatrix, IN, osg::Matrix &, matrix, IN, osg::NodeVisitor *, nv);
|
||||
I_Property(const osg::Quat &, Attitude);
|
||||
I_Property(double, FieldOfView);
|
||||
I_Property(osg::CameraView::FieldOfViewMode, FieldOfViewMode);
|
||||
I_Property(double, FocalLength);
|
||||
I_Property(const osg::Vec3d &, Position);
|
||||
END_REFLECTOR
|
||||
|
||||
@@ -16,6 +16,7 @@ CXXFILES =\
|
||||
BoundingSphere.cpp\
|
||||
BufferObject.cpp\
|
||||
CameraNode.cpp\
|
||||
CameraView.cpp\
|
||||
ClearNode.cpp\
|
||||
ClipNode.cpp\
|
||||
ClipPlane.cpp\
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
#include <osg/Billboard>
|
||||
#include <osg/CameraNode>
|
||||
#include <osg/CameraView>
|
||||
#include <osg/ClearNode>
|
||||
#include <osg/ClipNode>
|
||||
#include <osg/CoordinateSystemNode>
|
||||
@@ -102,6 +103,7 @@ BEGIN_OBJECT_REFLECTOR(osg::NodeVisitor)
|
||||
I_Method1(void, apply, IN, osg::LightSource &, node);
|
||||
I_Method1(void, apply, IN, osg::Transform &, node);
|
||||
I_Method1(void, apply, IN, osg::CameraNode &, node);
|
||||
I_Method1(void, apply, IN, osg::CameraView &, node);
|
||||
I_Method1(void, apply, IN, osg::MatrixTransform &, node);
|
||||
I_Method1(void, apply, IN, osg::PositionAttitudeTransform &, node);
|
||||
I_Method1(void, apply, IN, osg::Switch &, node);
|
||||
|
||||
39
src/osgWrappers/osgParticle/ConnectedParticleSystem.cpp
Normal file
39
src/osgWrappers/osgParticle/ConnectedParticleSystem.cpp
Normal file
@@ -0,0 +1,39 @@
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <osg/CopyOp>
|
||||
#include <osg/Object>
|
||||
#include <osg/State>
|
||||
#include <osgParticle/ConnectedParticleSystem>
|
||||
#include <osgParticle/Particle>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osgParticle::ConnectedParticleSystem)
|
||||
I_BaseType(osgParticle::ParticleSystem);
|
||||
I_Constructor0();
|
||||
I_ConstructorWithDefaults2(IN, const osgParticle::ConnectedParticleSystem &, copy, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY);
|
||||
I_Method0(osg::Object *, cloneType);
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop);
|
||||
I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj);
|
||||
I_Method0(const char *, libraryName);
|
||||
I_Method0(const char *, className);
|
||||
I_Method1(osgParticle::Particle *, createParticle, IN, const osgParticle::Particle *, ptemplate);
|
||||
I_Method1(void, reuseParticle, IN, int, i);
|
||||
I_Method1(void, drawImplementation, IN, osg::State &, state);
|
||||
END_REFLECTOR
|
||||
|
||||
41
src/osgWrappers/osgParticle/ConstantRateCounter.cpp
Normal file
41
src/osgWrappers/osgParticle/ConstantRateCounter.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <osg/CopyOp>
|
||||
#include <osg/Object>
|
||||
#include <osgParticle/ConstantRateCounter>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osgParticle::ConstantRateCounter)
|
||||
I_BaseType(osgParticle::Counter);
|
||||
I_Constructor0();
|
||||
I_ConstructorWithDefaults2(IN, const osgParticle::ConstantRateCounter &, copy, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY);
|
||||
I_Method0(osg::Object *, cloneType);
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop);
|
||||
I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj);
|
||||
I_Method0(const char *, libraryName);
|
||||
I_Method0(const char *, className);
|
||||
I_Method1(void, setMinimumNumberOfParticlesToCreate, IN, int, minNumToCreate);
|
||||
I_Method0(int, getMinimumNumberOfParticlesToCreate);
|
||||
I_Method1(void, setNumberOfParticlesPerSecondToCreate, IN, double, numPerSecond);
|
||||
I_Method0(double, getNumberOfParticlesPerSecondToCreate);
|
||||
I_Method1(int, numParticlesToCreate, IN, double, dt);
|
||||
I_Property(int, MinimumNumberOfParticlesToCreate);
|
||||
I_Property(double, NumberOfParticlesPerSecondToCreate);
|
||||
END_REFLECTOR
|
||||
|
||||
@@ -5,6 +5,8 @@ CXXFILES =\
|
||||
AccelOperator.cpp\
|
||||
AngularAccelOperator.cpp\
|
||||
CenteredPlacer.cpp\
|
||||
ConnectedParticleSystem.cpp\
|
||||
ConstantRateCounter.cpp\
|
||||
Counter.cpp\
|
||||
Emitter.cpp\
|
||||
ExplosionDebrisEffect.cpp\
|
||||
@@ -33,6 +35,7 @@ CXXFILES =\
|
||||
SegmentPlacer.cpp\
|
||||
Shooter.cpp\
|
||||
SmokeEffect.cpp\
|
||||
SmokeTrailEffect.cpp\
|
||||
VariableRateCounter.cpp\
|
||||
range.cpp\
|
||||
|
||||
|
||||
@@ -11,8 +11,10 @@
|
||||
|
||||
#include <osg/Matrix>
|
||||
#include <osg/Vec3>
|
||||
#include <osg/Vec4>
|
||||
#include <osgParticle/Interpolator>
|
||||
#include <osgParticle/Particle>
|
||||
#include <osgParticle/ParticleSystem>
|
||||
#include <osgParticle/range>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
@@ -53,6 +55,10 @@ BEGIN_VALUE_REFLECTOR(osgParticle::Particle)
|
||||
I_Method0(const osg::Vec3 &, getAngle);
|
||||
I_Method0(const osg::Vec3 &, getAngularVelocity);
|
||||
I_Method0(const osg::Vec3 &, getPreviousAngle);
|
||||
I_Method0(const osg::Vec4 &, getCurrentColor);
|
||||
I_Method0(float, getCurrentAlpha);
|
||||
I_Method0(const float, getSTexCoord);
|
||||
I_Method0(float, getTCoord);
|
||||
I_Method0(void, kill);
|
||||
I_Method1(void, setLifeTime, IN, double, t);
|
||||
I_Method1(void, setSizeRange, IN, const osgParticle::rangef &, r);
|
||||
@@ -78,6 +84,11 @@ BEGIN_VALUE_REFLECTOR(osgParticle::Particle)
|
||||
I_Method0(void, endRender);
|
||||
I_Method0(float, getCurrentSize);
|
||||
I_MethodWithDefaults3(void, setTextureTile, IN, int, sTile, , IN, int, tTile, , IN, int, numTiles, 0);
|
||||
I_Method1(void, setPreviousParticle, IN, int, previous);
|
||||
I_Method0(int, getPreviousParticle);
|
||||
I_Method1(void, setNextParticle, IN, int, next);
|
||||
I_Method0(int, getNextParticle);
|
||||
I_Method1(void, setUpTexCoordsAsPartOfConnectedParticleSystem, IN, osgParticle::ParticleSystem *, ps);
|
||||
I_ReadOnlyProperty(double, Age);
|
||||
I_WriteOnlyProperty(osgParticle::Interpolator *, AlphaInterpolator);
|
||||
I_Property(const osgParticle::rangef &, AlphaRange);
|
||||
@@ -85,17 +96,24 @@ BEGIN_VALUE_REFLECTOR(osgParticle::Particle)
|
||||
I_Property(const osg::Vec3 &, AngularVelocity);
|
||||
I_WriteOnlyProperty(osgParticle::Interpolator *, ColorInterpolator);
|
||||
I_Property(const osgParticle::rangev4 &, ColorRange);
|
||||
I_ReadOnlyProperty(float, CurrentAlpha);
|
||||
I_ReadOnlyProperty(const osg::Vec4 &, CurrentColor);
|
||||
I_ReadOnlyProperty(float, CurrentSize);
|
||||
I_Property(double, LifeTime);
|
||||
I_Property(float, Mass);
|
||||
I_ReadOnlyProperty(float, MassInv);
|
||||
I_Property(int, NextParticle);
|
||||
I_Property(const osg::Vec3 &, Position);
|
||||
I_ReadOnlyProperty(const osg::Vec3 &, PreviousAngle);
|
||||
I_Property(int, PreviousParticle);
|
||||
I_ReadOnlyProperty(const osg::Vec3 &, PreviousPosition);
|
||||
I_Property(float, Radius);
|
||||
I_ReadOnlyProperty(const float, STexCoord);
|
||||
I_Property(osgParticle::Particle::Shape, Shape);
|
||||
I_WriteOnlyProperty(osgParticle::Interpolator *, SizeInterpolator);
|
||||
I_Property(const osgParticle::rangef &, SizeRange);
|
||||
I_ReadOnlyProperty(float, TCoord);
|
||||
I_WriteOnlyProperty(osgParticle::ParticleSystem *, UpTexCoordsAsPartOfConnectedParticleSystem);
|
||||
I_Property(const osg::Vec3 &, Velocity);
|
||||
END_REFLECTOR
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ BEGIN_OBJECT_REFLECTOR(osgParticle::ParticleSystem)
|
||||
I_Method1(const osgParticle::Particle *, getParticle, IN, int, i);
|
||||
I_Method1(osgParticle::Particle *, createParticle, IN, const osgParticle::Particle *, ptemplate);
|
||||
I_Method1(void, destroyParticle, IN, int, i);
|
||||
I_Method1(void, reuseParticle, IN, int, i);
|
||||
I_Method0(int, getLastFrameNumber);
|
||||
I_Method0(osgParticle::Particle &, getDefaultParticleTemplate);
|
||||
I_Method0(const osgParticle::Particle &, getDefaultParticleTemplate);
|
||||
|
||||
47
src/osgWrappers/osgParticle/SmokeTrailEffect.cpp
Normal file
47
src/osgWrappers/osgParticle/SmokeTrailEffect.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
// ***************************************************************************
|
||||
//
|
||||
// Generated automatically by genwrapper.
|
||||
// Please DO NOT EDIT this file!
|
||||
//
|
||||
// ***************************************************************************
|
||||
|
||||
#include <osgIntrospection/ReflectionMacros>
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <osg/CopyOp>
|
||||
#include <osg/NodeVisitor>
|
||||
#include <osg/Object>
|
||||
#include <osg/Vec3>
|
||||
#include <osgParticle/Emitter>
|
||||
#include <osgParticle/Program>
|
||||
#include <osgParticle/SmokeTrailEffect>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
#undef IN
|
||||
#endif
|
||||
#ifdef OUT
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osgParticle::SmokeTrailEffect)
|
||||
I_BaseType(osgParticle::ParticleEffect);
|
||||
I_ConstructorWithDefaults3(IN, const osg::Vec3 &, position, osg::Vec3(0.0f, 0.0f, 0.0f), IN, float, scale, 1.0f, IN, float, intensity, 1.0f);
|
||||
I_ConstructorWithDefaults2(IN, const osgParticle::SmokeTrailEffect &, copy, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY);
|
||||
I_Method0(osg::Object *, cloneType);
|
||||
I_Method1(osg::Object *, clone, IN, const osg::CopyOp &, copyop);
|
||||
I_Method1(bool, isSameKindAs, IN, const osg::Object *, obj);
|
||||
I_Method0(const char *, className);
|
||||
I_Method0(const char *, libraryName);
|
||||
I_Method1(void, accept, IN, osg::NodeVisitor &, nv);
|
||||
I_Method0(void, setDefaults);
|
||||
I_Method0(void, setUpEmitterAndProgram);
|
||||
I_Method0(osgParticle::Emitter *, getEmitter);
|
||||
I_Method0(const osgParticle::Emitter *, getEmitter);
|
||||
I_Method0(osgParticle::Program *, getProgram);
|
||||
I_Method0(const osgParticle::Program *, getProgram);
|
||||
I_ReadOnlyProperty(osgParticle::Emitter *, Emitter);
|
||||
I_ReadOnlyProperty(osgParticle::Program *, Program);
|
||||
END_REFLECTOR
|
||||
|
||||
@@ -66,8 +66,12 @@ BEGIN_OBJECT_REFLECTOR(osgUtil::RenderStage)
|
||||
I_Method0(double, getClearDepth);
|
||||
I_Method1(void, setClearStencil, IN, int, stencil);
|
||||
I_Method0(int, getClearStencil);
|
||||
I_Method1(void, setCameraNode, IN, const osg::CameraNode *, camera);
|
||||
I_Method1(void, setCameraNode, IN, osg::CameraNode *, camera);
|
||||
I_Method0(osg::CameraNode *, getCameraNode);
|
||||
I_Method0(const osg::CameraNode *, getCameraNode);
|
||||
I_Method1(void, setCameraRequiresSetUp, IN, bool, flag);
|
||||
I_Method0(bool, getCameraRequiresSetUp);
|
||||
I_Method1(void, runCameraSetUp, IN, osg::State &, state);
|
||||
I_MethodWithDefaults3(void, setTexture, IN, osg::Texture *, texture, , IN, unsigned int, level, 0, IN, unsigned int, face, 0);
|
||||
I_Method0(osg::Texture *, getTexture);
|
||||
I_Method1(void, setImage, IN, osg::Image *, image);
|
||||
@@ -100,7 +104,8 @@ BEGIN_OBJECT_REFLECTOR(osgUtil::RenderStage)
|
||||
I_Method1(void, addPreRenderStage, IN, osgUtil::RenderStage *, rs);
|
||||
I_Method1(void, addPostRenderStage, IN, osgUtil::RenderStage *, rs);
|
||||
I_Method1(bool, getStats, IN, osgUtil::Statistics *, primStats);
|
||||
I_Property(const osg::CameraNode *, CameraNode);
|
||||
I_Property(osg::CameraNode *, CameraNode);
|
||||
I_Property(bool, CameraRequiresSetUp);
|
||||
I_Property(const osg::Vec4 &, ClearAccum);
|
||||
I_Property(const osg::Vec4 &, ClearColor);
|
||||
I_Property(double, ClearDepth);
|
||||
|
||||
@@ -9,7 +9,9 @@
|
||||
#include <osgIntrospection/TypedMethodInfo>
|
||||
#include <osgIntrospection/Attributes>
|
||||
|
||||
#include <osgUtil/Simplifier.orig>
|
||||
#include <osg/Geode>
|
||||
#include <osg/Geometry>
|
||||
#include <osgUtil/Simplifier>
|
||||
|
||||
// Must undefine IN and OUT macros defined in Windows headers
|
||||
#ifdef IN
|
||||
@@ -21,3 +23,29 @@
|
||||
|
||||
TYPE_NAME_ALIAS(std::vector< unsigned int >, osgUtil::Simplifier::IndexList);
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osgUtil::Simplifier)
|
||||
I_BaseType(osg::NodeVisitor);
|
||||
I_ConstructorWithDefaults2(IN, float, sampleRatio, 1.0f, IN, float, maximumError, 0.0f);
|
||||
I_Method1(void, setSampleRatio, IN, float, sampleRatio);
|
||||
I_Method0(float, getSampleRatio);
|
||||
I_Method1(void, setMaximumError, IN, float, error);
|
||||
I_Method0(float, getMaximumError);
|
||||
I_Method1(void, setContinueSimplificationCallback, IN, osgUtil::Simplifier::ContinueSimplificationCallback *, cb);
|
||||
I_Method0(osgUtil::Simplifier::ContinueSimplificationCallback *, getContinueSimplificationCallback);
|
||||
I_Method0(const osgUtil::Simplifier::ContinueSimplificationCallback *, getContinueSimplificationCallback);
|
||||
I_Method3(bool, continueSimplification, IN, float, nextError, IN, unsigned int, numOriginalPrimitives, IN, unsigned int, numRemainingPrimitives);
|
||||
I_Method3(bool, continueSimplificationImplementation, IN, float, nextError, IN, unsigned int, numOriginalPrimitives, IN, unsigned int, numRemainingPrimitives);
|
||||
I_Method1(void, apply, IN, osg::Geode &, geode);
|
||||
I_Method1(void, simplify, IN, osg::Geometry &, geometry);
|
||||
I_Method2(void, simplify, IN, osg::Geometry &, geometry, IN, const osgUtil::Simplifier::IndexList &, protectedPoints);
|
||||
I_Property(osgUtil::Simplifier::ContinueSimplificationCallback *, ContinueSimplificationCallback);
|
||||
I_Property(float, MaximumError);
|
||||
I_Property(float, SampleRatio);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osgUtil::Simplifier::ContinueSimplificationCallback)
|
||||
I_BaseType(osg::Referenced);
|
||||
I_Constructor0();
|
||||
I_Method4(bool, continueSimplification, IN, const osgUtil::Simplifier &, simplifier, IN, float, nextError, IN, unsigned int, numOriginalPrimitives, IN, unsigned int, numRemainingPrimitives);
|
||||
END_REFLECTOR
|
||||
|
||||
|
||||
Reference in New Issue
Block a user