Browse Source
Simplify 3D object cache class structure
Simplify 3D object cache class structure
Remove the CACHE_WRAPPER whose sole purpose was to allow the cache to be stored in the project, and instead just have the cache inherit the proper class.pull/16/head
8 changed files with 66 additions and 130 deletions
-
523d-viewer/3d_cache/3d_cache.cpp
-
243d-viewer/3d_cache/3d_cache.h
-
763d-viewer/3d_cache/3d_cache_wrapper.cpp
-
393d-viewer/3d_cache/3d_cache_wrapper.h
-
13d-viewer/3d_cache/dialogs/dlg_select_3dmodel.cpp
-
13d-viewer/CMakeLists.txt
-
2include/core/typeinfo.h
-
1pcbnew/exporters/export_vrml.cpp
@ -1,76 +0,0 @@ |
|||
/*
|
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2015-2016 Cirilo Bernardo <cirilo.bernardo@gmail.com> |
|||
* |
|||
* This program is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU General Public License |
|||
* as published by the Free Software Foundation; either version 2 |
|||
* of the License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, you may find one here: |
|||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|||
* or you may search the http://www.gnu.org website for the version 2 license,
|
|||
* or you may write to the Free Software Foundation, Inc., |
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|||
*/ |
|||
|
|||
|
|||
#include <common.h>
|
|||
#include <pgm_base.h>
|
|||
#include "3d_cache_wrapper.h"
|
|||
|
|||
static wxCriticalSection lock3D_wrapper; |
|||
|
|||
CACHE_WRAPPER::CACHE_WRAPPER() |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
|
|||
CACHE_WRAPPER::~CACHE_WRAPPER() |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
|
|||
FILENAME_RESOLVER* PROJECT::Get3DFilenameResolver() |
|||
{ |
|||
return Get3DCacheManager()->GetResolver(); |
|||
} |
|||
|
|||
|
|||
S3D_CACHE* PROJECT::Get3DCacheManager( bool updateProjDir ) |
|||
{ |
|||
wxCriticalSectionLocker lock( lock3D_wrapper ); |
|||
CACHE_WRAPPER* cw = (CACHE_WRAPPER*) GetElem( ELEM_3DCACHE ); |
|||
S3D_CACHE* cache = dynamic_cast<S3D_CACHE*>( cw ); |
|||
|
|||
// check that we get the expected type of object or NULL
|
|||
wxASSERT( !cw || cache ); |
|||
|
|||
if( !cw ) |
|||
{ |
|||
cw = new CACHE_WRAPPER; |
|||
cache = dynamic_cast<S3D_CACHE*>( cw ); |
|||
|
|||
wxFileName cfgpath; |
|||
cfgpath.AssignDir( GetKicadConfigPath() ); |
|||
cfgpath.AppendDir( wxT( "3d" ) ); |
|||
cache->SetProgramBase( &Pgm() ); |
|||
cache->Set3DConfigDir( cfgpath.GetFullPath() ); |
|||
SetElem( ELEM_3DCACHE, cw ); |
|||
updateProjDir = true; |
|||
} |
|||
|
|||
if( updateProjDir ) |
|||
cache->SetProjectDir( GetProjectPath() ); |
|||
|
|||
return cache; |
|||
} |
|||
@ -1,39 +0,0 @@ |
|||
/* |
|||
* This program source code file is part of KiCad, a free EDA CAD application. |
|||
* |
|||
* Copyright (C) 2015 Cirilo Bernardo <cirilo.bernardo@gmail.com> |
|||
* |
|||
* This program is free software; you can redistribute it and/or |
|||
* modify it under the terms of the GNU General Public License |
|||
* as published by the Free Software Foundation; either version 2 |
|||
* of the License, or (at your option) any later version. |
|||
* |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program; if not, you may find one here: |
|||
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html |
|||
* or you may search the http://www.gnu.org website for the version 2 license, |
|||
* or you may write to the Free Software Foundation, Inc., |
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA |
|||
*/ |
|||
|
|||
#ifndef CACHE_WRAPPER_3D_H |
|||
#define CACHE_WRAPPER_3D_H |
|||
|
|||
#include <project.h> |
|||
#include "3d_cache.h" |
|||
|
|||
class CACHE_WRAPPER : public S3D_CACHE, public PROJECT::_ELEM |
|||
{ |
|||
public: |
|||
KICAD_T Type() override { return CACHE_WRAPPER_T; } |
|||
|
|||
CACHE_WRAPPER(); |
|||
virtual ~CACHE_WRAPPER(); |
|||
}; |
|||
|
|||
#endif // CACHE_WRAPPER_3D_H |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue