~ubuntu-branches/ubuntu/saucy/cairo-dock-plug-ins/saucy

« back to all changes in this revision

Viewing changes to illusion/src/applet-struct.h

  • Committer: Bazaar Package Importer
  • Author(s): Didier Roche
  • Date: 2009-08-26 21:07:39 UTC
  • Revision ID: james.westby@ubuntu.com-20090826210739-gyjuuqezrzuluao4
Tags: upstream-2.0.8.1
ImportĀ upstreamĀ versionĀ 2.0.8.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
* This file is a part of the Cairo-Dock project
 
3
*
 
4
* Copyright : (C) see the 'copyright' file.
 
5
* E-mail    : see the 'copyright' file.
 
6
*
 
7
* This program is free software; you can redistribute it and/or
 
8
* modify it under the terms of the GNU General Public License
 
9
* as published by the Free Software Foundation; either version 3
 
10
* of the License, or (at your option) any later version.
 
11
*
 
12
* This program is distributed in the hope that it will be useful,
 
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
* GNU General Public License for more details.
 
16
* You should have received a copy of the GNU General Public License
 
17
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
18
*/
 
19
 
 
20
 
 
21
#ifndef __CD_APPLET_STRUCT__
 
22
#define  __CD_APPLET_STRUCT__
 
23
 
 
24
#include <cairo-dock.h>
 
25
 
 
26
typedef enum _CDIllusionEffect {
 
27
        CD_ILLUSION_EVAPORATE=0,
 
28
        CD_ILLUSION_FADE_OUT,
 
29
        CD_ILLUSION_EXPLODE,
 
30
        CD_ILLUSION_BREAK,
 
31
        CD_ILLUSION_BLACK_HOLE,
 
32
        CD_ILLUSION_NB_EFFECTS
 
33
        } CDIllusionEffect;
 
34
 
 
35
 
 
36
//\___________ structure containing the applet's configuration parameters.
 
37
struct _AppletConfig {
 
38
        CDIllusionEffect iDisappearanceEffect;
 
39
        CDIllusionEffect iAppearanceEffect;
 
40
        
 
41
        gint iEvaporateDuration;
 
42
        gint iEvaporateNbParticles;
 
43
        gdouble pEvaporateColor1[3];
 
44
        gdouble pEvaporateColor2[3];
 
45
        gboolean bMysticalEvaporate;
 
46
        gint iNbEvaporateParticles;
 
47
        gint iEvaporateParticleSize;
 
48
        gdouble fEvaporateParticleSpeed;
 
49
        gboolean bEvaporateFromBottom;
 
50
        
 
51
        gint iFadeOutDuration;
 
52
        
 
53
        gint iExplodeDuration;
 
54
        gint iExplodeNbPiecesX, iExplodeNbPiecesY;
 
55
        gdouble fExplosionRadius;
 
56
        gboolean bExplodeCube;
 
57
        
 
58
        gint iBreakDuration;
 
59
        gint iBreakNbBorderPoints;
 
60
        
 
61
        gint iBlackHoleDuration;
 
62
        gdouble fBlackHoleRotationSpeed;
 
63
        gint iAttraction;
 
64
        } ;
 
65
 
 
66
//\___________ structure containing the applet's data, like surfaces, dialogs, results of calculus, etc.
 
67
struct _AppletData {
 
68
        GLuint iEvaporateTexture;
 
69
        } ;
 
70
 
 
71
typedef struct {
 
72
        gdouble fRotationSpeed;
 
73
        gdouble vx, vy, vz;
 
74
        } CDIllusionExplosion;
 
75
 
 
76
typedef struct {
 
77
        gdouble pCoords[4*2];
 
78
        gint iNbPts;
 
79
        gdouble fCrackAngle;
 
80
        gdouble fRotationAngle;
 
81
        gdouble yinf;
 
82
        } CDIllusionBreak;
 
83
 
 
84
typedef struct {
 
85
        gdouble u, v;
 
86
        gdouble fTheta0, r0;
 
87
        gdouble fTheta;
 
88
        gdouble x, y;
 
89
        } CDIllusionBlackHole;
 
90
 
 
91
 
 
92
typedef struct _CDIllusionData {
 
93
        CDIllusionEffect iCurrentEffect;
 
94
        gint iEffectDuration;
 
95
        gdouble fTimeLimitPercent;
 
96
        gdouble fDeltaT;
 
97
        gint sens;
 
98
        gdouble fTime;
 
99
        
 
100
        gdouble fEvaporatePercent;
 
101
        CairoParticleSystem *pEvaporateSystem;
 
102
        
 
103
        gdouble fFadeOutAlpha;
 
104
        
 
105
        gdouble fExplosionRadius;
 
106
        gdouble fExplosionRotation;
 
107
        gdouble fExplodeAlpha;
 
108
        CDIllusionExplosion *pExplosionPart;
 
109
        
 
110
        CDIllusionBreak *pBreakPart;
 
111
        gint iNbBreakParts;
 
112
        gdouble dh;
 
113
        
 
114
        CDIllusionBlackHole *pBlackHolePoints;
 
115
        GLfloat *pBlackHoleCoords, *pBlackHoleVertices;
 
116
        } CDIllusionData;
 
117
 
 
118
#endif