class mrpt::viz::VisualObjectParams_TexturedTriangles
Overview
#include <mrpt/viz/CVisualObject.h> class VisualObjectParams_TexturedTriangles: public mrpt::viz::CVisualObject { public: // construction VisualObjectParams_TexturedTriangles(); // methods const auto& shaderTexturedTrianglesBuffer() const; auto& shaderTexturedTrianglesBufferMutex() const; void assignImage(const mrpt::img::CImage& img, const mrpt::img::CImage& imgAlpha); void assignImage(const mrpt::img::CImage& img); void assignImage(mrpt::img::CImage&& img, mrpt::img::CImage&& imgAlpha); void assignImage(mrpt::img::CImage&& img); bool isLightEnabled() const; void enableLight(bool enable = true); void cullFaces(const TCullFace& cf); TCullFace cullFaces() const; const mrpt::img::CImage& getTextureImage() const; const mrpt::img::CImage& getTextureAlphaImage() const; bool textureImageHasBeenAssigned() const; void setAlphaMode(TAlphaMode mode); TAlphaMode alphaMode() const; void setAlphaCutoff(float cutoff); float alphaCutoff() const; float effectiveAlphaCutoff() const; void assignNormalMap(const mrpt::img::CImage& img); void assignNormalMap(mrpt::img::CImage&& img); const mrpt::img::CImage& getNormalMapImage() const; bool normalMapHasBeenAssigned() const; void assignEmissiveMap(const mrpt::img::CImage& img); void assignEmissiveMap(mrpt::img::CImage&& img); const mrpt::img::CImage& getEmissiveMapImage() const; bool emissiveMapHasBeenAssigned() const; void enableTextureLinearInterpolation(bool enable); bool textureLinearInterpolation() const; void enableTextureMipMap(bool enable); bool textureMipMap() const; }; // direct descendants class CMesh; class CSetOfTexturedTriangles; class CTexturedPlane;
Inherited Members
public: // typedefs typedef std::shared_ptr<CObject> Ptr; typedef std::shared_ptr<const CObject> ConstPtr; typedef std::unique_ptr<CObject> UniquePtr; typedef std::unique_ptr<const CObject> ConstUniquePtr; typedef std::shared_ptr<CSerializable> Ptr; typedef std::shared_ptr<const CSerializable> ConstPtr; typedef std::shared_ptr<CVisualObject> Ptr; typedef std::shared_ptr<const CVisualObject> ConstPtr; // structs struct BuffersVersion; struct ChangeCounter; struct PoseAndScale; struct State; // methods mrpt::rtti::CObject::Ptr duplicateGetSmartPtr() const; static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; virtual CObject* clone() const = 0; virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); void setName(const std::string& n); std::string getName() const; bool isVisible() const; void setVisibility(bool visible = true); bool castShadows() const; void castShadows(bool doCast); void enableShowName(bool showName = true); bool isShowNameEnabled() const; CVisualObject& setPose(const mrpt::poses::CPose3D& o); CVisualObject& setPose(const mrpt::poses::CPose2D& o); CVisualObject& setPose(const mrpt::math::TPose3D& o); CVisualObject& setPose(const mrpt::math::TPose2D& o); CVisualObject& setPose(const mrpt::poses::CPoint3D& o); CVisualObject& setPose(const mrpt::poses::CPoint2D& o); mrpt::math::TPose3D getPose() const; PoseAndScale getPoseAndScale() const; mrpt::poses::CPose3D getCPose() const; CVisualObject& setLocation(double x, double y, double z); CVisualObject& setLocation(const mrpt::math::TPoint3D& p); mrpt::img::TColorf getColor() const; mrpt::img::TColor getColor_u8() const; CVisualObject& setColorA(const float a); virtual CVisualObject& setColorA_u8(const uint8_t a); float materialShininess() const; void materialShininess(float shininess); float materialSpecularExponent() const; void materialSpecularExponent(float exponent); mrpt::img::TColorf materialEmissive() const; void materialEmissive(const mrpt::img::TColorf& color); CVisualObject& setScale(float s); CVisualObject& setScale(float sx, float sy, float sz); float getScaleX() const; float getScaleY() const; float getScaleZ() const; CVisualObject& setColor(const mrpt::img::TColorf& c); CVisualObject& setColor(float R, float G, float B, float A = 1); virtual CVisualObject& setColor_u8(const mrpt::img::TColor& c); CVisualObject& setColor_u8(uint8_t R, uint8_t G, uint8_t B, uint8_t A = 255); virtual bool cullElegible() const; virtual void toYAMLMap(mrpt::containers::yaml& propertiesMap) const; virtual bool isCompositeObject() const; virtual const std::deque<std::shared_ptr<CVisualObject>>& getInternalChildren() const; void notifyChange() const; void notifyTransformChange() const; void clearChangedFlag() const; void notifyBBoxChange() const; bool hasToUpdateBuffers() const; uint64_t dataVersion() const; uint64_t transformVersion() const; bool hasToUpdateBuffersSince(uint64_t sinceVersion) const; void updateBuffersIfNeeded() const; virtual void updateBuffers() const; virtual bool traceRay(const mrpt::poses::CPose3D& o, double& dist) const; auto getBoundingBox() const; auto getBoundingBoxLocal() const; auto getBoundingBoxLocalf() const; virtual mrpt::math::TPoint3Df getLocalRepresentativePoint() const; void setLocalRepresentativePoint(const mrpt::math::TPoint3Df& p); mrpt::viz::CText& labelObject() const; std::shared_ptr<mrpt::viz::CText> labelObjectPtr() const;
Methods
void assignImage(const mrpt::img::CImage& img, const mrpt::img::CImage& imgAlpha)
Assigns a texture and a transparency image, and enables transparency (If the images are not 2^N x 2^M, they will be internally filled to its dimensions to be powers of two)
Images are copied, the original ones can be deleted.
void assignImage(const mrpt::img::CImage& img)
Assigns a texture image, and disable transparency.
Images are copied, the original ones can be deleted.
void assignImage(mrpt::img::CImage&& img, mrpt::img::CImage&& imgAlpha)
Similar to assignImage, but the passed images are moved in (move semantic).
void assignImage(mrpt::img::CImage&& img)
Similar to assignImage, but with move semantics.
void cullFaces(const TCullFace& cf)
Control whether to render the FRONT, BACK, or BOTH (default) set of faces.
Refer to docs for glCullFace(). Example: If set to cullFaces(TCullFace::BACK);, back faces will not be drawn (“culled”)
void setAlphaMode(TAlphaMode mode)
Sets how the texture alpha channel is used (default: Auto).
See also:
setAlphaCutoff(), effectiveAlphaCutoff()
void setAlphaCutoff(float cutoff)
Alpha threshold for TAlphaMode::Mask (default: 0.5)
float effectiveAlphaCutoff() const
The alpha cutoff for the shaders: alphaCutoff() if the effective alpha mode is Mask (set explicitly, or detected by Auto), a negative value if Opaque was set explicitly (alpha is ignored), or 0 otherwise (blending).
void assignNormalMap(const mrpt::img::CImage& img)
Assigns a normal map image for tangent-space normal mapping.
The image should encode normals in tangent space as RGB where (128,128,255) represents the unperturbed surface normal. Normals follow the OpenGL convention (green points to the image top, as in Blender or glTF). For DirectX-style normal maps, invert the green channel first. Images are copied, the original ones can be deleted.
void assignNormalMap(mrpt::img::CImage&& img)
Similar to assignNormalMap, but with move semantics.
void assignEmissiveMap(const mrpt::img::CImage& img)
Assigns an emissive map: the light emitted by each surface point is materialEmissive() times this image (sRGB, like the diffuse texture), so only parts of the surface glow (e.g.
the bulb of a lamp). Images are copied, the original ones can be deleted.
void assignEmissiveMap(mrpt::img::CImage&& img)
Similar to assignEmissiveMap, but with move semantics.
void enableTextureLinearInterpolation(bool enable)
Enable linear interpolation of textures (default=false, use nearest pixel)