118 lines
2.9 KiB
C
118 lines
2.9 KiB
C
/*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program 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 General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
/** \file
|
|
* \ingroup DNA
|
|
*/
|
|
|
|
#ifndef __DNA_WORLD_TYPES_H__
|
|
#define __DNA_WORLD_TYPES_H__
|
|
|
|
#include "DNA_ID.h"
|
|
#include "DNA_defs.h"
|
|
|
|
struct AnimData;
|
|
struct Ipo;
|
|
struct bNodeTree;
|
|
|
|
#ifndef MAX_MTEX
|
|
# define MAX_MTEX 18
|
|
#endif
|
|
|
|
/**
|
|
* World defines general modeling data such as a background fill,
|
|
* gravity, color model etc. It mixes rendering data and modeling data. */
|
|
typedef struct World {
|
|
ID id;
|
|
/** Animation data (must be immediately after id for utilities to use it). */
|
|
struct AnimData *adt;
|
|
/* runtime (must be immediately after id for utilities to use it). */
|
|
DrawDataList drawdata;
|
|
|
|
char _pad0[4];
|
|
short texact, mistype;
|
|
|
|
float horr, horg, horb;
|
|
|
|
/**
|
|
* Exposure= mult factor. unused now, but maybe back later. Kept in to be upward compat.
|
|
* New is exp/range control. linfac & logfac are constants... don't belong in
|
|
* file, but allocating 8 bytes for temp mem isn't useful either.
|
|
*/
|
|
float exposure, exp, range;
|
|
float linfac, logfac;
|
|
|
|
/**
|
|
* Some world modes
|
|
* bit 0: Do mist
|
|
*/
|
|
short mode;
|
|
char _pad2[6];
|
|
|
|
float misi, miststa, mistdist, misthi;
|
|
|
|
/** Ambient occlusion. */
|
|
float aodist, aoenergy;
|
|
|
|
/** Assorted settings. */
|
|
short flag;
|
|
char _pad3[6];
|
|
|
|
/** Old animation system, deprecated for 2.5. */
|
|
struct Ipo *ipo DNA_DEPRECATED;
|
|
short pr_texture, use_nodes;
|
|
char _pad[4];
|
|
|
|
/* previews */
|
|
struct PreviewImage *preview;
|
|
|
|
/* nodes */
|
|
struct bNodeTree *nodetree;
|
|
|
|
/** Runtime. */
|
|
ListBase gpumaterial;
|
|
} World;
|
|
|
|
/* **************** WORLD ********************* */
|
|
|
|
/* mode */
|
|
#define WO_MIST (1 << 0)
|
|
#define WO_MODE_UNUSED_1 (1 << 1) /* cleared */
|
|
#define WO_MODE_UNUSED_2 (1 << 2) /* cleared */
|
|
#define WO_MODE_UNUSED_3 (1 << 3) /* cleared */
|
|
#define WO_MODE_UNUSED_4 (1 << 4) /* cleared */
|
|
#define WO_MODE_UNUSED_5 (1 << 5) /* cleared */
|
|
#define WO_AMB_OCC (1 << 6)
|
|
#define WO_MODE_UNUSED_7 (1 << 7) /* cleared */
|
|
|
|
enum {
|
|
WO_MIST_QUADRATIC = 0,
|
|
WO_MIST_LINEAR = 1,
|
|
WO_MIST_INVERSE_QUADRATIC = 2,
|
|
};
|
|
|
|
/* flag */
|
|
#define WO_DS_EXPAND (1 << 0)
|
|
/* NOTE: this must have the same value as MA_DS_SHOW_TEXS,
|
|
* otherwise anim-editors will not read correctly
|
|
*/
|
|
#define WO_DS_SHOW_TEXS (1 << 2)
|
|
|
|
#endif
|