1 /* 2 * This program source code file is part of KiCad, a free EDA CAD application. 3 * 4 * Copyright (C) 2016 Cirilo Bernardo <cirilo.bernardo@gmail.com> 5 * Copyright (C) 2021 KiCad Developers, see AUTHORS.txt for contributors. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, you may find one here: 19 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 20 * or you may search the http://www.gnu.org website for the version 2 license, 21 * or you may write to the Free Software Foundation, Inc., 22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 23 */ 24 25 /** 26 * @file vrml2_appearance.h 27 */ 28 29 30 #ifndef VRML2_APPEARANCE_H 31 #define VRML2_APPEARANCE_H 32 33 #include "vrml2_node.h" 34 35 class WRL2BASE; 36 class SGNODE; 37 38 class WRL2APPEARANCE : public WRL2NODE 39 { 40 public: 41 WRL2APPEARANCE(); 42 WRL2APPEARANCE( WRL2NODE* aParent ); 43 virtual ~WRL2APPEARANCE(); 44 45 bool Read( WRLPROC& proc, WRL2BASE* aTopNode ) override; 46 bool AddRefNode( WRL2NODE* aNode ) override; 47 bool AddChildNode( WRL2NODE* aNode ) override; 48 SGNODE* TranslateToSG( SGNODE* aParent ) override; 49 50 bool isDangling( void ) override; 51 52 private: 53 /** 54 * Return true if the node type is a material description class. 55 */ 56 bool checkNodeType( WRL2NODES aType ); 57 58 void unlinkChildNode( const WRL2NODE* aNode ) override; 59 void unlinkRefNode( const WRL2NODE* aNode ) override; 60 61 WRL2NODE* material; 62 WRL2NODE* texture; 63 WRL2NODE* textureTransform; 64 }; 65 66 #endif // VRML2_APPEARANCE_H 67