Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
Type-OpenVolumeMesh
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
3
Issues
3
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenFlipper-Free
Type-OpenVolumeMesh
Commits
da04b51b
Commit
da04b51b
authored
Dec 28, 2016
by
Jan Möbius
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Splitted OpenVolumemesh into separate type dir
parents
Changes
29
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
2827 additions
and
0 deletions
+2827
-0
ObjectTypes/HexahedralMesh/CMakeLists.txt
ObjectTypes/HexahedralMesh/CMakeLists.txt
+9
-0
ObjectTypes/HexahedralMesh/HexahedralMesh.hh
ObjectTypes/HexahedralMesh/HexahedralMesh.hh
+78
-0
ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.cc
ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.cc
+156
-0
ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.hh
ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.hh
+128
-0
ObjectTypes/PolyhedralMesh/CMakeLists.txt
ObjectTypes/PolyhedralMesh/CMakeLists.txt
+9
-0
ObjectTypes/PolyhedralMesh/PluginFunctionsPolyhedralMesh.cc
ObjectTypes/PolyhedralMesh/PluginFunctionsPolyhedralMesh.cc
+156
-0
ObjectTypes/PolyhedralMesh/PluginFunctionsPolyhedralMesh.hh
ObjectTypes/PolyhedralMesh/PluginFunctionsPolyhedralMesh.hh
+128
-0
ObjectTypes/PolyhedralMesh/PolyhedralMesh.hh
ObjectTypes/PolyhedralMesh/PolyhedralMesh.hh
+78
-0
ObjectTypes/TetrahedralMesh/CMakeLists.txt
ObjectTypes/TetrahedralMesh/CMakeLists.txt
+9
-0
ObjectTypes/TetrahedralMesh/PluginFunctionsTetrahedralMesh.cc
...ctTypes/TetrahedralMesh/PluginFunctionsTetrahedralMesh.cc
+151
-0
ObjectTypes/TetrahedralMesh/PluginFunctionsTetrahedralMesh.hh
...ctTypes/TetrahedralMesh/PluginFunctionsTetrahedralMesh.hh
+120
-0
ObjectTypes/TetrahedralMesh/TetrahedralMesh.hh
ObjectTypes/TetrahedralMesh/TetrahedralMesh.hh
+72
-0
ObjectTypes/VolumeMeshObject/VolumeMeshBufferManager.hh
ObjectTypes/VolumeMeshObject/VolumeMeshBufferManager.hh
+508
-0
ObjectTypes/VolumeMeshObject/VolumeMeshBufferManagerT.cc
ObjectTypes/VolumeMeshObject/VolumeMeshBufferManagerT.cc
+0
-0
ObjectTypes/VolumeMeshObject/VolumeMeshDrawModesContainer.hh
ObjectTypes/VolumeMeshObject/VolumeMeshDrawModesContainer.hh
+252
-0
ObjectTypes/VolumeMeshObject/VolumeMeshNode.hh
ObjectTypes/VolumeMeshObject/VolumeMeshNode.hh
+291
-0
ObjectTypes/VolumeMeshObject/VolumeMeshNodeT.cc
ObjectTypes/VolumeMeshObject/VolumeMeshNodeT.cc
+0
-0
ObjectTypes/VolumeMeshObject/VolumeMeshObject.hh
ObjectTypes/VolumeMeshObject/VolumeMeshObject.hh
+258
-0
ObjectTypes/VolumeMeshObject/VolumeMeshObjectT.cc
ObjectTypes/VolumeMeshObject/VolumeMeshObjectT.cc
+410
-0
Plugin-TypeHexahedralMesh/CMakeLists.txt
Plugin-TypeHexahedralMesh/CMakeLists.txt
+4
-0
Plugin-TypeHexahedralMesh/TypeHexahedralMesh.cc
Plugin-TypeHexahedralMesh/TypeHexahedralMesh.cc
+0
-0
Plugin-TypeHexahedralMesh/TypeHexahedralMesh.hh
Plugin-TypeHexahedralMesh/TypeHexahedralMesh.hh
+0
-0
Plugin-TypePolyhedralMesh/CMakeLists.txt
Plugin-TypePolyhedralMesh/CMakeLists.txt
+5
-0
Plugin-TypePolyhedralMesh/TypePolyhedralMesh.cc
Plugin-TypePolyhedralMesh/TypePolyhedralMesh.cc
+0
-0
Plugin-TypePolyhedralMesh/TypePolyhedralMesh.hh
Plugin-TypePolyhedralMesh/TypePolyhedralMesh.hh
+0
-0
Plugin-TypeTetrahedralMesh/CMakeLists.txt
Plugin-TypeTetrahedralMesh/CMakeLists.txt
+4
-0
Plugin-TypeTetrahedralMesh/TypeTetrahedralMesh.cc
Plugin-TypeTetrahedralMesh/TypeTetrahedralMesh.cc
+0
-0
Plugin-TypeTetrahedralMesh/TypeTetrahedralMesh.hh
Plugin-TypeTetrahedralMesh/TypeTetrahedralMesh.hh
+0
-0
libs/OpenVolumeMesh
libs/OpenVolumeMesh
+1
-0
No files found.
ObjectTypes/HexahedralMesh/CMakeLists.txt
0 → 100644
View file @
da04b51b
find_package
(
OpenVolumeMesh
)
if
(
OPENVOLUMEMESH_FOUND
)
include_directories
(
${
OPENVOLUMEMESH_INCLUDE_DIR
}
)
include
(
type
)
target_link_libraries
(
${
TYPENAME
}
${
OPENVOLUMEMESH_LIBRARY
}
)
endif
()
ObjectTypes/HexahedralMesh/HexahedralMesh.hh
0 → 100644
View file @
da04b51b
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision: 13489 $ *
* $LastChangedBy: kremer $ *
* $Date: 2012-01-25 12:30:09 +0100 (Wed, 25 Jan 2012) $ *
* *
\*===========================================================================*/
/**
* \file HexahedralMesh/HexahedralMesh.hh
* This file contains all required includes for using polyhedral meshes
*/
#ifndef HEXAHEDRAL_MESH_INCLUDE_HH
#define HEXAHEDRAL_MESH_INCLUDE_HH
//== INCLUDES =================================================================
/** \def DATA_HEXAHEDRAL_MESH
* Use this macro to reference Hexahedral Meshes
*/
#define DATA_HEXAHEDRAL_MESH typeId("HexahedralMesh")
#include <ObjectTypes/VolumeMeshObject/VolumeMeshObject.hh>
#include <OpenVolumeMesh/Mesh/HexahedralMesh.hh>
#include <OpenVolumeMesh/Core/PropertyDefines.hh>
typedef
OpenVolumeMesh
::
GeometryKernel
<
ACG
::
Vec3d
,
OpenVolumeMesh
::
HexahedralMeshTopologyKernel
>
HexahedralMesh
;
/// Typedef for a mesh object containing a polyhedral mesh
typedef
VolumeMeshObject
<
HexahedralMesh
>
HexahedralMeshObject
;
#include <ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.hh>
//=============================================================================
#endif // HEXAHEDRAL_MESH_INCLUDE_HH defined
//=============================================================================
ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.cc
0 → 100644
View file @
da04b51b
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision: 13489 $ *
* $LastChangedBy: kremer $ *
* $Date: 2012-01-25 12:30:09 +0100 (Wed, 25 Jan 2012) $ *
* *
\*===========================================================================*/
#include <OpenFlipper/common/Types.hh>
#include <ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.hh>
namespace
PluginFunctions
{
// ===============================================================================
// Get source meshes
// ===============================================================================
bool
getSourceMeshes
(
std
::
vector
<
HexahedralMesh
*>&
_meshes
)
{
_meshes
.
clear
();
for
(
ObjectIterator
o_it
(
PluginFunctions
::
SOURCE_OBJECTS
,
DATA_HEXAHEDRAL_MESH
)
;
o_it
!=
PluginFunctions
::
objectsEnd
();
++
o_it
)
{
_meshes
.
push_back
(
PluginFunctions
::
hexahedralMesh
(
*
o_it
)
);
if
(
_meshes
.
back
()
==
NULL
)
std
::
cerr
<<
"ERROR: HexahedralMesh getSourceMeshes fatal error
\n
"
;
}
return
(
!
_meshes
.
empty
()
);
}
// ===============================================================================
// Get target meshes
// ===============================================================================
bool
getTargetMeshes
(
std
::
vector
<
HexahedralMesh
*>&
_meshes
)
{
_meshes
.
clear
();
for
(
ObjectIterator
o_it
(
PluginFunctions
::
TARGET_OBJECTS
,
DATA_HEXAHEDRAL_MESH
)
;
o_it
!=
PluginFunctions
::
objectsEnd
();
++
o_it
)
{
_meshes
.
push_back
(
PluginFunctions
::
hexahedralMesh
(
*
o_it
)
);
if
(
_meshes
.
back
()
==
NULL
)
std
::
cerr
<<
"ERROR: HexahedralMesh getTargetMeshes fatal error
\n
"
;
}
return
(
!
_meshes
.
empty
()
);
}
// ===============================================================================
// Get objects
// ===============================================================================
bool
getObject
(
int
_identifier
,
HexahedralMeshObject
*&
_object
)
{
if
(
_identifier
==
BaseObject
::
NOOBJECT
)
{
_object
=
0
;
return
false
;
}
// Get object by using the map accelerated plugin function
BaseObjectData
*
object
=
0
;
PluginFunctions
::
getObject
(
_identifier
,
object
);
_object
=
dynamic_cast
<
HexahedralMeshObject
*
>
(
object
);
return
(
_object
!=
0
);
}
// ===============================================================================
// Getting data from objects and casting between them
// ===============================================================================
HexahedralMesh
*
hexahedralMesh
(
BaseObjectData
*
_object
)
{
if
(
_object
->
dataType
(
DATA_HEXAHEDRAL_MESH
)
)
{
HexahedralMeshObject
*
object
=
dynamic_cast
<
HexahedralMeshObject
*
>
(
_object
);
return
object
->
mesh
();
}
else
return
0
;
}
HexahedralMesh
*
hexahedralMesh
(
int
_identifier
)
{
HexahedralMeshObject
*
object
=
hexahedralMeshObject
(
_identifier
);
if
(
object
==
0
)
return
0
;
else
return
object
->
mesh
();
}
HexahedralMeshObject
*
hexahedralMeshObject
(
BaseObjectData
*
_object
)
{
if
(
!
_object
->
dataType
(
DATA_HEXAHEDRAL_MESH
)
)
return
0
;
return
dynamic_cast
<
HexahedralMeshObject
*
>
(
_object
);
}
HexahedralMeshObject
*
hexahedralMeshObject
(
int
_identifier
)
{
HexahedralMeshObject
*
pol_obj
;
if
(
getObject
(
_identifier
,
pol_obj
))
return
pol_obj
;
else
return
0
;
}
}
ObjectTypes/HexahedralMesh/PluginFunctionsHexahedralMesh.hh
0 → 100644
View file @
da04b51b
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision: 13489 $ *
* $LastChangedBy: kremer $ *
* $Date: 2012-01-25 12:30:09 +0100 (Wed, 25 Jan 2012) $ *
* *
\*===========================================================================*/
/**
* \file PluginFunctionsHexahedralMesh.hh
* This file contains functions which can be used by plugins to access
* HexahedralMeshes in the framework.
*/
//
#ifndef PLUGINFUNCTIONSHEXAHEDRALMESH_HH
#define PLUGINFUNCTIONSHEXAHEDRALMESH_HH
#include <ObjectTypes/VolumeMeshObject/VolumeMeshObject.hh>
#include <ObjectTypes/HexahedralMesh/HexahedralMesh.hh>
#include <OpenFlipper/common/Types.hh>
//== NAMESPACES ===============================================================
/** The Namespace PluginFunctions contains functions for all plugins. */
namespace
PluginFunctions
{
/** \brief Get a pointer to every HexahedralMesh which is marked as a source.
*
* @param _meshes ( vector returning the source hexahedral meshes )
* @return false, if no hexahedral mesh is selected as source
*/
OBJECTTYPEDLLEXPORT
bool
getSourceMeshes
(
std
::
vector
<
HexahedralMesh
*>&
_meshes
);
/** \brief Get a pointer to every HexahedralMesh which is marked as a target.
*
* @param _meshes ( vector returning the target hexahedral meshes )
* @return false, if no hexahedral mesh is selected as target
*/
OBJECTTYPEDLLEXPORT
bool
getTargetMeshes
(
std
::
vector
<
HexahedralMesh
*>&
_meshes
);
/** This functions returns the object with the given id if it is an HexahedralMeshObject.
* See get_object( int _identifier , BaseObject*& _object ) for more details.
*/
OBJECTTYPEDLLEXPORT
bool
getObject
(
int
_identifier
,
HexahedralMeshObject
*&
_object
);
/** \brief Get an HexahedralMesh from an object.
*
* @param _object The object should be of type BaseDataObject. If the content is
* a hexahedral mesh, a hexahedral mesh will be returned. Otherwise a NULL pointer is returned.
*/
OBJECTTYPEDLLEXPORT
HexahedralMesh
*
hexahedralMesh
(
BaseObjectData
*
_object
);
/** \brief Get a HexahedralMesh from an object id.
*
* @param _identifier Identifier of the object. If its a HexahedralMesh mesh, the function will return the pointer to the mesh
* otherwise 0
*/
OBJECTTYPEDLLEXPORT
HexahedralMesh
*
hexahedralMesh
(
int
_identifier
);
/** \brief Cast an BaseObject to an HexahedralMeshObject if possible
*
* @param _object The object should be of type BaseDataObject. If the content is
* an HexahedralMesh, an HexahedralMeshObject is returned. Otherwise a NULL pointer is returned.
*/
OBJECTTYPEDLLEXPORT
HexahedralMeshObject
*
hexahedralMeshObject
(
BaseObjectData
*
_object
);
/** \brief Cast an int to an HexahedralMeshObject if possible
*
* @param _identifier
*/
OBJECTTYPEDLLEXPORT
HexahedralMeshObject
*
hexahedralMeshObject
(
int
_identifier
);
}
#endif // PLUGINFUNCTIONSHEXAHEDRALMESH_HH
ObjectTypes/PolyhedralMesh/CMakeLists.txt
0 → 100644
View file @
da04b51b
find_package
(
OpenVolumeMesh
)
if
(
OPENVOLUMEMESH_FOUND
)
include_directories
(
${
OPENVOLUMEMESH_INCLUDE_DIR
}
)
include
(
type
)
target_link_libraries
(
${
TYPENAME
}
${
OPENVOLUMEMESH_LIBRARY
}
)
endif
()
ObjectTypes/PolyhedralMesh/PluginFunctionsPolyhedralMesh.cc
0 → 100644
View file @
da04b51b
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision: 13489 $ *
* $LastChangedBy: kremer $ *
* $Date: 2012-01-25 12:30:09 +0100 (Mi, 25 Jan 2012) $ *
* *
\*===========================================================================*/
#include <OpenFlipper/common/Types.hh>
#include <ObjectTypes/PolyhedralMesh/PluginFunctionsPolyhedralMesh.hh>
namespace
PluginFunctions
{
// ===============================================================================
// Get source meshes
// ===============================================================================
bool
getSourceMeshes
(
std
::
vector
<
PolyhedralMesh
*>&
_meshes
)
{
_meshes
.
clear
();
for
(
ObjectIterator
o_it
(
PluginFunctions
::
SOURCE_OBJECTS
,
DATA_POLYHEDRAL_MESH
)
;
o_it
!=
PluginFunctions
::
objectsEnd
();
++
o_it
)
{
_meshes
.
push_back
(
PluginFunctions
::
polyhedralMesh
(
*
o_it
)
);
if
(
_meshes
.
back
()
==
NULL
)
std
::
cerr
<<
"ERROR: PolyhedralMesh getSourceMeshes fatal error
\n
"
;
}
return
(
!
_meshes
.
empty
()
);
}
// ===============================================================================
// Get target meshes
// ===============================================================================
bool
getTargetMeshes
(
std
::
vector
<
PolyhedralMesh
*>&
_meshes
)
{
_meshes
.
clear
();
for
(
ObjectIterator
o_it
(
PluginFunctions
::
TARGET_OBJECTS
,
DATA_POLYHEDRAL_MESH
)
;
o_it
!=
PluginFunctions
::
objectsEnd
();
++
o_it
)
{
_meshes
.
push_back
(
PluginFunctions
::
polyhedralMesh
(
*
o_it
)
);
if
(
_meshes
.
back
()
==
NULL
)
std
::
cerr
<<
"ERROR: PolyhedralMesh getTargetMeshes fatal error
\n
"
;
}
return
(
!
_meshes
.
empty
()
);
}
// ===============================================================================
// Get objects
// ===============================================================================
bool
getObject
(
int
_identifier
,
PolyhedralMeshObject
*&
_object
)
{
if
(
_identifier
==
BaseObject
::
NOOBJECT
)
{
_object
=
0
;
return
false
;
}
// Get object by using the map accelerated plugin function
BaseObjectData
*
object
=
0
;
PluginFunctions
::
getObject
(
_identifier
,
object
);
_object
=
dynamic_cast
<
PolyhedralMeshObject
*
>
(
object
);
return
(
_object
!=
0
);
}
// ===============================================================================
// Getting data from objects and casting between them
// ===============================================================================
PolyhedralMesh
*
polyhedralMesh
(
BaseObjectData
*
_object
)
{
if
(
_object
->
dataType
(
DATA_POLYHEDRAL_MESH
)
)
{
PolyhedralMeshObject
*
object
=
dynamic_cast
<
PolyhedralMeshObject
*
>
(
_object
);
return
object
->
mesh
();
}
else
return
0
;
}
PolyhedralMesh
*
polyhedralMesh
(
int
_identifier
)
{
PolyhedralMeshObject
*
object
=
polyhedralMeshObject
(
_identifier
);
if
(
object
==
0
)
return
0
;
else
return
object
->
mesh
();
}
PolyhedralMeshObject
*
polyhedralMeshObject
(
BaseObjectData
*
_object
)
{
if
(
!
_object
->
dataType
(
DATA_POLYHEDRAL_MESH
)
)
return
0
;
return
dynamic_cast
<
PolyhedralMeshObject
*
>
(
_object
);
}
PolyhedralMeshObject
*
polyhedralMeshObject
(
int
_identifier
)
{
PolyhedralMeshObject
*
pol_obj
;
if
(
getObject
(
_identifier
,
pol_obj
))
return
pol_obj
;
else
return
0
;
}
}
ObjectTypes/PolyhedralMesh/PluginFunctionsPolyhedralMesh.hh
0 → 100644
View file @
da04b51b
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
/*===========================================================================*\
* *
* $Revision: 13489 $ *
* $LastChangedBy: kremer $ *
* $Date: 2012-01-25 12:30:09 +0100 (Mi, 25 Jan 2012) $ *
* *
\*===========================================================================*/
/**