// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _AIS_TexturedShape_HeaderFile #define _AIS_TexturedShape_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_AIS_TexturedShape_HeaderFile #include #endif #ifndef _Graphic3d_NameOfTexture2D_HeaderFile #include #endif #ifndef _TCollection_AsciiString_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Handle_Graphic3d_AspectFillArea3d_HeaderFile #include #endif #ifndef _Handle_Graphic3d_Texture2Dmanual_HeaderFile #include #endif #ifndef _AIS_Shape_HeaderFile #include #endif #ifndef _Handle_PrsMgr_PresentationManager3d_HeaderFile #include #endif #ifndef _Handle_Prs3d_Presentation_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_CString_HeaderFile #include #endif class Graphic3d_AspectFillArea3d; class Graphic3d_Texture2Dmanual; class TopoDS_Shape; class TCollection_AsciiString; class PrsMgr_PresentationManager3d; class Prs3d_Presentation; class gp_Pnt; //! This class allows to map textures on shapes
//! Textures are image files.
//! The texture itself is parametrized in (0,1)x(0,1).
//! Each face of a shape located in
//! UV space is provided with these parameters:
//! - Umin - starting position in U
//! - Umax - ending position in U
//! - Vmin - starting position in V
//! - Vmax - ending position in V
//! Each face is triangulated and a texel is assigned to each
//! node. Facets are then filled using a linear interpolation
//! of texture between each 'three texels'
//! User can act on :
//! - the number of occurences of the texture on the face
//! - the position of the origin of the texture
//! - the scale factor of the texture
class AIS_TexturedShape : public AIS_Shape { public: //! Initializes the textured shape ashape.
Standard_EXPORT AIS_TexturedShape(const TopoDS_Shape& shap); //! Sets the name of the texture file to map. The accepted
//! file types are those used in AlienImage with extensions
//! such as xwd, bmp, gif, rgb, ras, rs and more.
Standard_EXPORT virtual void SetTextureFileName(const TCollection_AsciiString& TextureFileName) ; //! Sets the number of occurrences of
//! the texture on each face. The texture itself is parameterized
//! in (0,1) by (0,1) . Each face of the shape to be textured is
//! parameterized in UV space (Umin,Umax) by (Vmin,Vmax). If
//! RepeatYN is set to false, texture coordinates are clamped in the
//! range (0,1)x(0,1) of the face.
Standard_EXPORT virtual void SetTextureRepeat(const Standard_Boolean RepeatYN,const Standard_Real URepeat = 1.0,const Standard_Real VRepeat = 1.0) ; //! Use this method to change the origin of the
//! texture. The texel (0,0) will be mapped to the
//! surfel (UOrigin,VOrigin)
Standard_EXPORT virtual void SetTextureOrigin(const Standard_Boolean SetTextureOriginYN,const Standard_Real UOrigin = 0.0,const Standard_Real VOrigin = 0.0) ; //! Use this method to scale the texture (percent of
//! the face).
//! You can specify a scale factor for both U and V.
//!
//! example : if you set ScaleU and ScaleV to 0.5 and
//! you enable texture repeat, the texture will appear
//! twice on the face in each direction.
Standard_EXPORT virtual void SetTextureScale(const Standard_Boolean SetTextureScaleYN,const Standard_Real ScaleU = 1.0,const Standard_Real ScaleV = 1.0) ; //! Use this method to show the triangulation of
//! the shape. This is not very esthetic but can be
//! usefull for debug ...
Standard_EXPORT virtual void ShowTriangles(const Standard_Boolean ShowTrianglesYN = Standard_False) ; //! Enables texture mapping
Standard_EXPORT void SetTextureMapOn() ; //! Disables texture mapping
Standard_EXPORT void SetTextureMapOff() ; //! Enables texture modulation
Standard_EXPORT void EnableTextureModulate() ; //! Disables texture modulation
Standard_EXPORT void DisableTextureModulate() ; //! Use this method to display the textured shape
//! without recomputing the whole presentation.
//! Use this method when ONLY the texture has been changed.
//! ie : myTShape->UpdateAttributes()
//!
//! If other parameters (ie: scale factors,
//! texture origin, texture repeat ...) have changed,
//! the whole presentation has to be recomputed.
//! ie : if (myShape->DisplayMode() == 3)
//! myAISContext->RecomputePrsOnly(myShape);
//! else
//! {
//! myAISContext->SetDisplayMode(myShape,3,Standard_False);
//! myAISContext->Display(myShape, Standard_True);
//! }
Standard_EXPORT void UpdateAttributes() ; Standard_EXPORT Standard_Boolean TextureMapState() const; Standard_EXPORT Standard_Real URepeat() const; Standard_EXPORT Standard_Boolean TextureRepeat() const; Standard_EXPORT Standard_Real Deflection() const; Standard_EXPORT Standard_CString TextureFile() const; Standard_EXPORT Standard_Real VRepeat() const; Standard_EXPORT Standard_Boolean ShowTriangles() const; Standard_EXPORT Standard_Real TextureUOrigin() const; Standard_EXPORT Standard_Real TextureVOrigin() const; Standard_EXPORT Standard_Real TextureScaleU() const; Standard_EXPORT Standard_Real TextureScaleV() const; Standard_EXPORT Standard_Boolean TextureScale() const; Standard_EXPORT Standard_Boolean TextureOrigin() const; Standard_EXPORT Standard_Boolean TextureModulate() const; DEFINE_STANDARD_RTTI(AIS_TexturedShape) protected: Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager,const Handle(Prs3d_Presentation)& aPresentation,const Standard_Integer aMode = 0) ; private: Standard_EXPORT Standard_Boolean TriangleIsValid(const gp_Pnt& P1,const gp_Pnt& P2,const gp_Pnt& P3) const; Graphic3d_NameOfTexture2D myPredefTexture; TCollection_AsciiString myTextureFile; Standard_Boolean DoRepeat; Standard_Real myURepeat; Standard_Real myVRepeat; Standard_Boolean DoMapTexture; Standard_Boolean DoSetTextureOrigin; Standard_Real myUOrigin; Standard_Real myVOrigin; Standard_Boolean DoSetTextureScale; Standard_Real myScaleU; Standard_Real myScaleV; Standard_Boolean DoShowTriangles; Standard_Real myDeflection; Handle_Graphic3d_AspectFillArea3d myAspect; Handle_Graphic3d_Texture2Dmanual mytexture; Standard_Real Umin; Standard_Real Umax; Standard_Real Vmin; Standard_Real Vmax; Standard_Real dUmax; Standard_Real dVmax; Standard_Boolean myModulate; }; // other Inline functions and methods (like "C++: function call" methods) #endif