0026936: Drawbacks of inlining in new type system in OCCT 7.0 -- automatic
[occt.git] / src / Graphic3d / Graphic3d_Texture2D.cxx
CommitLineData
b311480e 1// Created on: 1997-07-28
2// Created by: Pierre CHALAMET
3// Copyright (c) 1997-1999 Matra Datavision
973c2be1 4// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5//
973c2be1 6// This file is part of Open CASCADE Technology software library.
b311480e 7//
d5f74e42 8// This library is free software; you can redistribute it and/or modify it under
9// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10// by the Free Software Foundation, with special exception defined in the file
11// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12// distribution for complete text of the license and disclaimer of any warranty.
b311480e 13//
973c2be1 14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
b311480e 16
42cf5bc1 17
18#include <Graphic3d_Texture2D.hxx>
19#include <Standard_OutOfRange.hxx>
20#include <Standard_Type.hxx>
7fd59977 21#include <TCollection_AsciiString.hxx>
7fd59977 22
92efcf78 23IMPLEMENT_STANDARD_RTTIEXT(Graphic3d_Texture2D,Graphic3d_TextureMap)
24
7fd59977 25static const char *NameOfTexture_to_FileName[] =
26{
27 "2d_MatraDatavision.rgb",
28 "2d_alienskin.rgb",
29 "2d_blue_rock.rgb",
30 "2d_bluewhite_paper.rgb",
31 "2d_brushed.rgb",
32 "2d_bubbles.rgb",
33 "2d_bumps.rgb",
34 "2d_cast.rgb",
35 "2d_chipbd.rgb",
36 "2d_clouds.rgb",
37 "2d_flesh.rgb",
38 "2d_floor.rgb",
39 "2d_galvnisd.rgb",
40 "2d_grass.rgb",
41 "2d_aluminum.rgb",
42 "2d_rock.rgb",
43 "2d_knurl.rgb",
44 "2d_maple.rgb",
45 "2d_marble.rgb",
46 "2d_mottled.rgb",
47 "2d_rain.rgb"
48};
49
bf75be98 50// =======================================================================
51// function : Graphic3d_Texture2D
52// purpose :
53// =======================================================================
54Graphic3d_Texture2D::Graphic3d_Texture2D (const TCollection_AsciiString& theFileName,
55 const Graphic3d_TypeOfTexture theType)
56: Graphic3d_TextureMap (theFileName, theType),
57 myName (Graphic3d_NOT_2D_UNKNOWN)
7fd59977 58{
59}
60
bf75be98 61// =======================================================================
62// function : Graphic3d_Texture2D
63// purpose :
64// =======================================================================
65Graphic3d_Texture2D::Graphic3d_Texture2D (const Graphic3d_NameOfTexture2D theNOT,
66 const Graphic3d_TypeOfTexture theType)
67: Graphic3d_TextureMap (NameOfTexture_to_FileName[theNOT], theType),
68 myName (theNOT)
7fd59977 69{
bf75be98 70 myPath.SetTrek (Graphic3d_TextureRoot::TexturesFolder());
71 myTexId = TCollection_AsciiString ("Graphic3d_Texture2D_")
72 + NameOfTexture_to_FileName[theNOT];
7fd59977 73}
74
bf75be98 75// =======================================================================
f376ac72 76// function : Graphic3d_Texture2D
77// purpose :
78// =======================================================================
79Graphic3d_Texture2D::Graphic3d_Texture2D (const Handle(Image_PixMap)& thePixMap,
80 const Graphic3d_TypeOfTexture theType)
81: Graphic3d_TextureMap (thePixMap, theType),
82 myName (Graphic3d_NOT_2D_UNKNOWN)
83{
84}
85
86// =======================================================================
bf75be98 87// function : NumberOfTextures
88// purpose :
89// =======================================================================
90Standard_Integer Graphic3d_Texture2D::NumberOfTextures()
91{
7fd59977 92 return sizeof(NameOfTexture_to_FileName)/sizeof(char*);
93}
94
bf75be98 95// =======================================================================
96// function : Name
97// purpose :
98// =======================================================================
99Graphic3d_NameOfTexture2D Graphic3d_Texture2D::Name() const
100{
7fd59977 101 return myName;
102}
103
bf75be98 104// =======================================================================
105// function : TextureName
106// purpose :
107// =======================================================================
108TCollection_AsciiString Graphic3d_Texture2D::TextureName (const Standard_Integer theRank)
109{
110 if (theRank < 1 || theRank > NumberOfTextures())
111 {
112 Standard_OutOfRange::Raise ("BAD index of texture");
113 }
114
115 TCollection_AsciiString aFileName (NameOfTexture_to_FileName[theRank - 1]);
116 Standard_Integer i = aFileName.SearchFromEnd (".");
117 return aFileName.SubString (4, i - 1);
7fd59977 118}