Commit b4cbb590 authored by CAMP C++ Builder's avatar CAMP C++ Builder
Browse files

added data structure

parent 0eca23ec
......@@ -16,6 +16,11 @@ moc_*.cxx_parameters
/Win32/
/ipch/
*.dir/
*.suo
*.vcxproj.user
/bin/Debug
/bin/Release
/x64/
# Project files of common IDEs
*.cbp
......@@ -23,12 +28,19 @@ moc_*.cxx_parameters
*.vcxproj.filters
*.sln
# Binaries and build output
*.o
*.obj
*.exe
*.dll
*.lib
#cmake
*.cache
# Documentation generated by Doxygen
/doc/html/
/doc/Doxyfile
# TBB library in ext/
ext/tbb
# SWIG wrapper code
*LUA_wrap.cxx
// ================================================================================================
//
// This file is part of the CAMPVis Software Framework.
//
// If not explicitly stated otherwise: Copyright (C) 2012-2014, all rights reserved,
// Christian Schulte zu Berge <christian.szb@in.tum.de>
// Chair for Computer Aided Medical Procedures
// Technische Universitaet Muenchen
// Boltzmannstr. 3, 85748 Garching b. Muenchen, Germany
//
// For a full list of authors and contributors, please refer to the file "AUTHORS.txt".
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
// except in compliance with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed under the
// License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
// either express or implied. See the License for the specific language governing permissions
// and limitations under the License.
//
// ================================================================================================
#ifndef POSITIONDATA_H__
#define POSITIONDATA_H__
#include "tgt/vector.h"
#include "core/datastructures/abstractdata.h"
namespace campvis {
/**
* Abstract base class for data handled by a DataHandle and stored in a DataContainer.
*
* \todo
*/
class PositionData : public AbstractData {
public:
/**
* Constructor, Creates a new light source.
* \param position The initial position
* \param quaternion The initial quaternion/orientation
*/
explicit PositionData(const tgt::vec3& position, const tgt::vec4& quaternion)
: _position(position)
, _quaternion(quaternion)
{ };
/**
* Virtual destructor
*/
virtual ~PositionData() {};
/// \see AbstractData::clone()
virtual PositionData* clone() const {
return new PositionData(*this);
};
/// \see AbstractData::getLocalMemoryFootprint()
virtual size_t getLocalMemoryFootprint() const {
return sizeof(PositionData);
};
/// \see AbstractData::getVideoMemoryFootprint()
virtual size_t getVideoMemoryFootprint() const {
return 0;
};
/**
* Gets the quaternion
* \return _quaternion
**/
tgt::vec4 getQuaternion() const { return _quaternion; }
/**
* Sets the quaternion.
* \param val New quaternion matrix
**/
void setQuaternion(tgt::vec4 val) { _quaternion = val; }
/**
* Gets the position
* \return _position
**/
tgt::vec3 getPosition() const { return _position; }
/**
* Sets the position.
* \param val New position matrix
**/
void setPosition(tgt::vec3 val) { _position = val; }
protected:
tgt::vec3 _position; ///< the position
tgt::vec4 _quaternion; ///< The orientation quaternion
};
}
#endif // POSITION_H__
\ No newline at end of file
// ================================================================================================
//
// This file is part of the CAMPVis Software Framework.
//
// If not explicitly stated otherwise: Copyright (C) 2012-2014, all rights reserved,
// Christian Schulte zu Berge <christian.szb@in.tum.de>
// Chair for Computer Aided Medical Procedures
// Technische Universitaet Muenchen
// Boltzmannstr. 3, 85748 Garching b. Muenchen, Germany
//
// For a full list of authors and contributors, please refer to the file "AUTHORS.txt".
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
// except in compliance with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed under the
// License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
// either express or implied. See the License for the specific language governing permissions
// and limitations under the License.
//
// ================================================================================================
#ifndef TRANSFORMDATA_H__
#define TRANSFORMDATA_H__
#include "tgt/vector.h"
#include "core/datastructures/abstractdata.h"
namespace campvis {
/**
* Abstract base class for data handled by a DataHandle and stored in a DataContainer.
*
* \todo
*/
class TransformData : public AbstractData {
public:
/**
* Constructor, Creates a new light source.
* \param transform The transformation
*/
explicit TransformData(const tgt::mat4& transform) : _transform(transform) { };
/**
* Virtual destructor
*/
virtual ~TransformData() {};
/// \see AbstractData::clone()
virtual TransformData* clone() const {
return new TransformData(*this);
};
/// \see AbstractData::getLocalMemoryFootprint()
virtual size_t getLocalMemoryFootprint() const {
return sizeof(TransformData);
};
/// \see AbstractData::getVideoMemoryFootprint()
virtual size_t getVideoMemoryFootprint() const {
return 0;
};
/**
* Gets the transformation
* \return _transform
**/
tgt::mat4 getTransform() const { return _transform; }
/**
* Sets the transformation.
* \param _transformation New transformation matrix
**/
void setTransform(tgt::mat4 val) { _transform = val; }
protected:
tgt::mat4 _transform; ///< The transform
};
}
#endif // TRANSFORMDATA_H__
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment