Commit 4e863bc8 authored by Christian Schulte zu Berge's avatar Christian Schulte zu Berge
Browse files

Merge branch 'datastructures' into 'development'

Datastructures

basic datastructures for Matrix and position data
parents b44fd851 98096802
......@@ -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,6 +28,16 @@ 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
......
// ================================================================================================
//
// 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.
//
// ================================================================================================
#include "positiondata.h"
namespace campvis {
PositionData::PositionData( const tgt::vec3 &position, const tgt::vec4 &quaternion /*= tgt::vec4(0.f, 0.f, 0.f, 0.f) */ )
: AbstractData()
, _position(position)
, _quaternion(quaternion)
{
}
PositionData::~PositionData() {
}
PositionData* PositionData::clone() const {
return new PositionData(*this);
}
size_t PositionData::getLocalMemoryFootprint() const {
return sizeof(PositionData);
}
size_t PositionData::getVideoMemoryFootprint() const {
return 0;
}
}
// ================================================================================================
//
// 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 {
/**
* Data Container to store a position and (optional) rotation as quaternion
*/
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 = tgt::vec4(0.f, 0.f, 0.f, 0.f) );;
/**
* Virtual destructor
*/
virtual ~PositionData();;
/// \see AbstractData::clone()
virtual PositionData* clone() const;;
/// \see AbstractData::getLocalMemoryFootprint()
virtual size_t getLocalMemoryFootprint() const;;
/// \see AbstractData::getVideoMemoryFootprint()
virtual size_t getVideoMemoryFootprint() const;;
/**
* Gets the quaternion
* \return _quaternion
**/
tgt::vec4 getQuaternion() const {
return _quaternion;
}
/**
* Sets the quaternion.
* \param val New quaternion vector
**/
void setQuaternion(const tgt::vec4 &val) {
_quaternion = val;
}
/**
* Gets the position
* \return _position
**/
tgt::vec3 getPosition() const {
return _position;
}
/**
* Sets the position.
* \param val New position vector
**/
void setPosition(const tgt::vec3 &val) {
_position = val;
}
protected:
tgt::vec3 _position; ///< the position
tgt::vec4 _quaternion; ///< The orientation quaternion
};
}
#endif // POSITION_H__
// ================================================================================================
//
// 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.
//
// ================================================================================================
#include "transformdata.h"
namespace campvis {
TransformData::TransformData(const tgt::mat4 & transform)
: AbstractData()
, _transform(transform)
{
}
TransformData::~TransformData() {
}
TransformData* TransformData::clone() const {
return new TransformData(*this);
}
size_t TransformData::getLocalMemoryFootprint() const {
return sizeof(TransformData);
}
size_t TransformData::getVideoMemoryFootprint() const {
return 0;
}
}
// ================================================================================================
//
// 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 {
/**
* Data Container class for transforms. Stores a \a tgt::mat4 object.
*/
class TransformData : public AbstractData {
public:
/**
* Constructor, Creates a new light source.
* \param transform The transformation
*/
explicit TransformData(const tgt::mat4 & transform);
/**
* Virtual destructor
*/
virtual ~TransformData();
/// \see AbstractData::clone()
virtual TransformData* clone() const;
/// \see AbstractData::getLocalMemoryFootprint()
virtual size_t getLocalMemoryFootprint() const;
/// \see AbstractData::getVideoMemoryFootprint()
virtual size_t getVideoMemoryFootprint() const;
/**
* Gets the transformation
* \return _transform
**/
tgt::mat4 getTransform() const {
return _transform;
}
/**
* Sets the transformation.
* \param _transformation New transformation matrix
**/
void setTransform(const tgt::mat4 & val) {
_transform = val;
}
protected:
tgt::mat4 _transform; ///< The transform
};
}
#endif // TRANSFORMDATA_H__
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