//*****************************************************************************************
// Truevision - a 3d modeler for povray
//
// objdef.h
//
// Vincent LE PRINCE <vincentleprince@users.sourceforge.net>
// Copyright (C) 2000-2005 Vincent LE PRINCE
// This file is part of the TRUEVISION Package
// 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
//*******************************************************************************************
#ifndef TV_OBJ3DDEF_H
#define TV_OBJ3DDEF_H
using namespace std;
#include "objectlist.h"
// Lights
const int Lights_tree_num = 4;
static Object3DDef Lights_tree[Lights_tree_num] = {
OBJ3D_INLINE_DEF( N_("Point Light"), TV_OBJ3D_POINTLIGHT, "object_light.xpm", N_("A point light.") ),
OBJ3D_INLINE_DEF( N_("Spot Light"), TV_OBJ3D_SPOTLIGHT, "object_light.xpm", N_("A spot light.") ),
OBJ3D_INLINE_DEF( N_("Cylindrical Light"), TV_OBJ3D_CYLLIGHT, "object_light.xpm", N_("A cylindrical light.")),
OBJ3D_INLINE_DEF( N_("Area Light"), TV_OBJ3D_AREALIGHT, "object_light.xpm", N_("An area light.") ),
};
// Finite Solid Primitives
const int FSP_tree_num = 13;
static Object3DDef FSP_tree[FSP_tree_num] = {
OBJ3D_INLINE_DEF( N_("Blob"), TV_OBJ3D_BLOB, "object_blob.xpm", N_("A Blob.") ),
OBJ3D_INLINE_DEF( N_("Box"), TV_OBJ3D_BOX, "object_box.xpm", N_("A simple box.") ),
OBJ3D_INLINE_DEF( N_("Cone"), TV_OBJ3D_CONE, "object_cone.xpm", N_("A cone.") ),
OBJ3D_INLINE_DEF( N_("Cylinder"), TV_OBJ3D_CYLINDER, "object_cylinder.xpm", N_("A cylinder.") ),
OBJ3D_INLINE_DEF( N_("Heightfield"), TV_OBJ3D_HEIGHTFIELD, "object_hf.xpm", N_("A heigthfield.") ),
OBJ3D_INLINE_DEF( N_("Julia Fractal"), TV_OBJ3D_JULIA, "object_default.xpm", N_("A julia fractal.") ),
OBJ3D_INLINE_DEF( N_("Lathe"), TV_OBJ3D_LATHE, "object_lathe.xpm", N_("A lathe.") ),
OBJ3D_INLINE_DEF( N_("Prism"), TV_OBJ3D_PRISM, "object_prism.xpm", N_("A Prism.") ),
OBJ3D_INLINE_DEF( N_("Sphere"), TV_OBJ3D_SPHERE, "object_sphere.xpm", N_("A sphere.") ),
OBJ3D_INLINE_DEF( N_("Sphere Sweep"), TV_OBJ3D_SPHERESWEEP, "object_default.xpm", N_("A sphere sweep.") ),
OBJ3D_INLINE_DEF( N_("Torus"), TV_OBJ3D_TORUS, "object_torus.xpm", N_("A torus.") ),
OBJ3D_INLINE_DEF( N_("Superquadric Ellipsoid"), TV_OBJ3D_SUPERELLIPSOID, "object_superellipsoid.xpm", N_("A superellipsoid.") ),
OBJ3D_INLINE_DEF( N_("Text"), TV_OBJ3D_TEXT, "object_text.xpm", N_("Text.") ),
};
const int FPP_tree_num = 2;
static Object3DDef FPP_tree[FPP_tree_num] = {
OBJ3D_INLINE_DEF( N_("Disc"), TV_OBJ3D_DISC, "object_disc.xpm", N_("A disc.") ),
OBJ3D_INLINE_DEF( N_("Bicubic Patch"), TV_OBJ3D_BICUBIC, "object_default.xpm", N_("A Bicubic Patch.") ),
};
// Infinite Solid Primitives
const int ISP_tree_num = 1;
static Object3DDef ISP_tree[ISP_tree_num] = {
OBJ3D_INLINE_DEF( N_("Plane"), TV_OBJ3D_PLANE, "object_plane.xpm", N_("A plane.") ),
};
// Atmospherics
const int Atmos_tree_num = 4;
static Object3DDef Atmos_tree[Atmos_tree_num] = {
OBJ3D_INLINE_DEF( N_("Background"), TV_OBJ3D_BKGD, "object_bkgd.xpm", N_("Background color definition.") ),
OBJ3D_INLINE_DEF( N_("Sky sphere"), TV_OBJ3D_SKY, NULL, N_("Sky definition.") ),
OBJ3D_INLINE_DEF( "Fog", TV_OBJ3D_FOG, "object_fog.xpm", "Fog simulation." ),
// OBJ3D_INLINE_DEF( "Rainbow", TV_OBJ3D_BOX, NULL, "Rainbow." ),
OBJ3D_INLINE_DEF( N_("Atmospheric Media"), TV_OBJ3D_AMEDIA, NULL, N_("Atmospheric media.") ),
};
// CSG Operators
const int CSG_tree_num = 4;
static Object3DDef CSG_tree[CSG_tree_num] = {
OBJ3D_INLINE_DEF( N_("Union"), TV_OBJ3D_CSGUNION, "object_union.xpm", N_("Object union.") ),
OBJ3D_INLINE_DEF( N_("Merge"), TV_OBJ3D_CSGMERGE, "object_merge.xpm", N_("Object merge.") ),
OBJ3D_INLINE_DEF( N_("Intersection"), TV_OBJ3D_CSGINTERSECTION, "object_inter.xpm", N_("Object intersection.") ),
OBJ3D_INLINE_DEF( N_("Difference"), TV_OBJ3D_CSGDIFFERENCE, "object_diff.xpm", N_("Object difference.") ),
};
// Misc objects
const int Misc_tree_num = 6;
static Object3DDef Misc_tree[Misc_tree_num] = {
OBJ3D_INLINE_DEF( N_("Group"), TV_OBJ3D_GROUP, "object_default.xpm", N_("Group of objects.") ),
OBJ3D_INLINE_DEF( N_("IsoSurface"), TV_OBJ3D_ISOSURFACE, "object_default.xpm", N_("Mathematically defined surface.") ),
OBJ3D_INLINE_DEF( N_("Parametric"), TV_OBJ3D_PARAMETRIC, "object_default.xpm", N_("Mathematically defined surface.") ),
OBJ3D_INLINE_DEF( N_("Link"), TV_OBJ3D_LINK, "object_link.xpm", N_("Object link.") ),
OBJ3D_INLINE_DEF( N_("Light Group"), TV_OBJ3D_LIGHTGROUP, "object_light.xpm", N_("A light group.") ),
OBJ3D_INLINE_DEF( N_("PovScript"), TV_OBJ3D_POVSCRIPT, "object_default.xpm", N_("Povray raw script.") ),
};
// Meshes objects
const int Meshes_tree_num = 4;
static Object3DDef Meshes_tree[Meshes_tree_num] = {
{N_("Plane"), TV_OBJ3D_MESH, "object_plane.xpm", N_("Plane mesh."), 0 },
{N_("Cube"), TV_OBJ3D_MESH, "object_box.xpm", N_("Cube mesh."), 1 },
{N_("Sphere"), TV_OBJ3D_MESH, "object_sphere.xpm", N_("Sphere mesh."), 2 },
{N_("Cylinder"), TV_OBJ3D_MESH, "object_cylinder.xpm", N_("Cylinder mesh."), 3 },
};
// Meshes transformations
const int MeshesTrans_tree_num = 3;
static Object3DDef MeshesTrans_tree[MeshesTrans_tree_num] = {
{N_("Translation"), TV_OBJ3D_MESH_TRANSLATION, "object_default.xpm", N_("Translation transformation for meshes") },
{N_("Scale"), TV_OBJ3D_MESH_SCALE, "object_default.xpm", N_("Scale transformation for meshes") },
{N_("Rotation"), TV_OBJ3D_MESH_ROTATION, "object_default.xpm", N_("Rotation transformation for meshes") },
};
#endif