PluginFunctionsSplatCloud.cc 5.84 KB
Newer Older
Jan Möbius's avatar
Jan Möbius committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91

/*===========================================================================*\
*                                                                            *
*                              OpenFlipper                                   *
*      Copyright (C) 2001-2011 by Computer Graphics Group, RWTH Aachen       *
*                           www.openflipper.org                              *
*                                                                            *
*--------------------------------------------------------------------------- *
*  This file is part of OpenFlipper.                                         *
*                                                                            *
*  OpenFlipper is free software: you can redistribute it and/or modify       *
*  it under the terms of the GNU Lesser General Public License as            *
*  published by the Free Software Foundation, either version 3 of            *
*  the License, or (at your option) any later version with the               *
*  following exceptions:                                                     *
*                                                                            *
*  If other files instantiate templates or use macros                        *
*  or inline functions from this file, or you compile this file and          *
*  link it with other files to produce an executable, this file does         *
*  not by itself cause the resulting executable to be covered by the         *
*  GNU Lesser General Public License. This exception does not however        *
*  invalidate any other reasons why the executable file might be             *
*  covered by the GNU Lesser General Public License.                         *
*                                                                            *
*  OpenFlipper 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 Lesser General Public License for more details.                       *
*                                                                            *
*  You should have received a copy of the GNU LesserGeneral Public           *
*  License along with OpenFlipper. If not,                                   *
*  see <http://www.gnu.org/licenses/>.                                       *
*                                                                            *
\*===========================================================================*/

/*===========================================================================*\
*                                                                            *
*   $Revision$                                                       *
*   $LastChangedBy$                                                *
*   $Date$                     *
*                                                                            *
\*===========================================================================*/

//================================================================
//
//  Plugin Functions for SplatClouds
//
//================================================================


//== INCLUDES ====================================================


#include "PluginFunctionsSplatCloud.hh"

#include <OpenFlipper/BasePlugin/PluginFunctions.hh>


//== NAMESPACES ==================================================


namespace PluginFunctions {


//== IMPLEMENTATION ==============================================


//================================================================
// Get objects
//================================================================


bool getObject( int _identifier, SplatCloudObject *&_object )
{
	if( _identifier == -1 )
	{
		_object = 0;
		return false;
	}

	BaseObject *object = objectRoot()->childExists( _identifier );
	_object = dynamic_cast<SplatCloudObject *>( object );
	return (_object != 0);
}


//================================================================
// Getting data from objects and casting between them
//================================================================


Jan Möbius's avatar
Jan Möbius committed
92
ShaderNode* splatShaderNode( BaseObjectData *_object )
Jan Möbius's avatar
Jan Möbius committed
93
{
Jan Möbius's avatar
Jan Möbius committed
94
95
96
	if( !_object )
		return 0;

Jan Möbius's avatar
Jan Möbius committed
97
98
99
100
	if( !_object->dataType( DATA_SPLATCLOUD ) )
		return 0;

	SplatCloudObject *object = dynamic_cast<SplatCloudObject *>( _object );
Jan Möbius's avatar
Jan Möbius committed
101
102
103
104

	if ( object == 0 )
	    return 0;

Jan Möbius's avatar
Jan Möbius committed
105
106
107
108
109
110
111
	return object->shaderNode();
}


//----------------------------------------------------------------


Jan Möbius's avatar
Jan Möbius committed
112
SplatCloudNode* splatCloudNode( BaseObjectData *_object )
Jan Möbius's avatar
Jan Möbius committed
113
{
Jan Möbius's avatar
Jan Möbius committed
114
115
116
	if( !_object )
		return 0;

Jan Möbius's avatar
Jan Möbius committed
117
118
119
120
	if( !_object->dataType( DATA_SPLATCLOUD ) )
		return 0;

	SplatCloudObject *object = dynamic_cast<SplatCloudObject *>( _object );
Jan Möbius's avatar
Jan Möbius committed
121
122
123
124

	if ( object == 0 )
	  return 0;

Jan Möbius's avatar
Jan Möbius committed
125
126
127
128
129
130
131
	return object->splatCloudNode();
}


//----------------------------------------------------------------


Jan Möbius's avatar
Jan Möbius committed
132
SplatCloud* splatCloud( BaseObjectData *_object )
133
{
Jan Möbius's avatar
Jan Möbius committed
134
135
136
	if( !_object )
		return 0;

137
138
139
140
141
142
143
144
	if( !_object->dataType( DATA_SPLATCLOUD ) )
		return 0;

	SplatCloudObject *object = dynamic_cast<SplatCloudObject *>( _object );

	if ( object == 0 )
	  return 0;

145
	return object->splatCloud();
146
147
148
149
150
151
}


//----------------------------------------------------------------


Jan Möbius's avatar
Jan Möbius committed
152
SplatCloudObject* splatCloudObject( BaseObjectData *_object )
Jan Möbius's avatar
Jan Möbius committed
153
{
Jan Möbius's avatar
Jan Möbius committed
154
155
156
	if( !_object )
		return 0;

Jan Möbius's avatar
Jan Möbius committed
157
158
159
160
161
162
	if( !_object->dataType( DATA_SPLATCLOUD ) )
		return 0;

	return dynamic_cast<SplatCloudObject *>( _object );
}

163

Jan Möbius's avatar
Jan Möbius committed
164
165
//----------------------------------------------------------------

166

Jan Möbius's avatar
Jan Möbius committed
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
SplatCloudObject* splatCloudObject(  int _objectId ) {

  if  (_objectId == -1)
    return 0;

  BaseObject* object = objectRoot()->childExists( _objectId );

  if ( object == 0 )
    return 0;

  SplatCloudObject* splatCloudObject = dynamic_cast< SplatCloudObject* >(object);

  return splatCloudObject;
}

Jan Möbius's avatar
Jan Möbius committed
182
183
184
185
186

//================================================================


} // namespace PluginFunctions