0033661: Data Exchange, Step Import - Tessellated GDTs are not imported
[occt.git] / src / OpenGl / OpenGl_TextureSet.cxx
CommitLineData
cc8cbabe 1// Created by: Kirill GAVRILOV
2// Copyright (c) 2013-2014 OPEN CASCADE SAS
3//
4// This file is part of Open CASCADE Technology software library.
5//
6// This library is free software; you can redistribute it and/or modify it under
7// the terms of the GNU Lesser General Public License version 2.1 as published
8// by the Free Software Foundation, with special exception defined in the file
9// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10// distribution for complete text of the license and disclaimer of any warranty.
11//
12// Alternatively, this file may be used under the terms of Open CASCADE
13// commercial license or contractual agreement.
14
15#include <OpenGl_TextureSet.hxx>
16
dc89236f 17#include <OpenGl_Texture.hxx>
18
cc8cbabe 19IMPLEMENT_STANDARD_RTTIEXT(OpenGl_TextureSet, Standard_Transient)
dc89236f 20
72f6dc61 21// =======================================================================
22// function : OpenGl_TextureSet
23// purpose :
24// =======================================================================
25OpenGl_TextureSet::OpenGl_TextureSet (const Handle(OpenGl_Texture)& theTexture)
26: myTextures (0, 0),
27 myTextureSetBits (Graphic3d_TextureSetBits_NONE)
28{
29 if (!theTexture.IsNull())
30 {
31 myTextures.ChangeFirst().Texture = theTexture;
32 myTextures.ChangeFirst().Unit = theTexture->Sampler()->Parameters()->TextureUnit();
33 }
34}
35
dc89236f 36// =======================================================================
37// function : IsModulate
38// purpose :
39// =======================================================================
40bool OpenGl_TextureSet::IsModulate() const
41{
42 return myTextures.IsEmpty()
72f6dc61 43 || myTextures.First().Texture.IsNull()
44 || myTextures.First().Texture->Sampler()->Parameters()->IsModulate();
dc89236f 45}
737e9a8d 46
47// =======================================================================
48// function : HasNonPointSprite
49// purpose :
50// =======================================================================
51bool OpenGl_TextureSet::HasNonPointSprite() const
52{
53 if (myTextures.IsEmpty())
54 {
55 return false;
56 }
57 else if (myTextures.Size() == 1)
58 {
72f6dc61 59 return !myTextures.First().Texture.IsNull()
60 && !myTextures.First().Texture->IsPointSprite();
737e9a8d 61 }
72f6dc61 62 return !myTextures.First().Texture.IsNull();
737e9a8d 63}
64
65// =======================================================================
66// function : HasPointSprite
67// purpose :
68// =======================================================================
69bool OpenGl_TextureSet::HasPointSprite() const
70{
71 return !myTextures.IsEmpty()
72f6dc61 72 && !myTextures.Last().Texture.IsNull()
73 && myTextures.Last().Texture->IsPointSprite();
737e9a8d 74}