OpenStructure
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
stage
include
ost
gfx
povray.hh
Go to the documentation of this file.
1
//------------------------------------------------------------------------------
2
// This file is part of the OpenStructure project <www.openstructure.org>
3
//
4
// Copyright (C) 2008-2011 by the OpenStructure authors
5
//
6
// This library is free software; you can redistribute it and/or modify it under
7
// the terms of the GNU Lesser General Public License as published by the Free
8
// Software Foundation; either version 3.0 of the License, or (at your option)
9
// any later version.
10
// This library is distributed in the hope that it will be useful, but WITHOUT
11
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12
// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13
// details.
14
//
15
// You should have received a copy of the GNU Lesser General Public License
16
// along with this library; if not, write to the Free Software Foundation, Inc.,
17
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
//------------------------------------------------------------------------------
19
#ifndef OST_GFX_POVRAY_HH
20
#define OST_GFX_POVRAY_HH
21
22
/*
23
Author: Ansgar Philippsen
24
*/
25
26
#include <string>
27
#include <fstream>
28
29
#include <
ost/geom/transform.hh
>
30
31
#include "
color.hh
"
32
33
namespace
ost {
namespace
gfx {
34
35
class
PovState
{
36
public
:
37
PovState
(
const
std::string& pov_file,
const
std::string& inc_file,
const
std::string& wdir);
38
39
void
write_preamble
();
40
void
write_postamble
();
41
void
write_background
(
const
Color
& c);
42
void
write_camera
(
float
fov,
float
zdist);
43
void
write_default_light
();
44
void
write_fog
(
float
zdist,
float
znear,
float
zfar,
const
Color
& c,
bool
f);
45
46
void
start_obj
(
const
std::string& name,
float
tp,
float
lw,
float
ps);
47
void
write_obj_tex
(
const
std::string& name);
48
void
end_obj
();
49
50
void
write_sphere
(
const
geom::Vec3
& p,
float
r,
const
Color
& c,
const
std::string& name);
51
void
write_cyl
(
const
geom::Vec3
& p1,
const
geom::Vec3
& p2,
float
r,
const
Color
& c,
const
std::string& name,
bool
open);
52
53
void
write_merge_or_union
(
const
std::string& name);
54
55
std::string
write_coord
(
const
geom::Vec3
& v);
56
std::string
write_coord
(
float
* v);
57
58
std::string
write_norm
(
const
geom::Vec3
& n);
59
std::string
write_norm
(
float
* n);
60
61
std::ostream&
pov
() {
return
pov_;}
62
std::ostream&
inc
() {
return
inc_;}
63
64
public
:
65
bool
use_tf
;
66
geom::Transform
tf
;
67
68
private
:
69
std::string pov_file_;
70
std::string inc_file_;
71
std::string wdir_;
72
std::ofstream pov_;
73
std::ofstream inc_;
74
std::vector<std::string> obj_list_;
75
};
76
77
78
}}
// ns
79
80
#endif
Generated on Mon Nov 11 2013 09:56:11 for OpenStructure by
1.8.1.1