class PBRT::Builder

Attributes

io[RW]

Public Class Methods

new(io: StringIO.new, &block) click to toggle source
# File lib/pbrt/builder.rb, line 5
def initialize(io: StringIO.new, &block)
  self.io = io

  instance_eval &block if block_given?
end

Public Instance Methods

accelerator() click to toggle source
# File lib/pbrt/builder.rb, line 35
def accelerator
  Accelerator.new(self)
end
active_transform(*args) click to toggle source
# File lib/pbrt/builder.rb, line 107
def active_transform(*args)
  write Statement.fixed_size("ActiveTransform", 1, args)
end
area_light_source() click to toggle source
# File lib/pbrt/builder.rb, line 47
def area_light_source
  AreaLightSource.new(self)
end
attribute_begin(&block) click to toggle source
# File lib/pbrt/builder.rb, line 121
def attribute_begin(&block)
  write Statement.fixed_size("AttributeBegin", 0)
  instance_eval &block
  write Statement.fixed_size("AttributeEnd", 0)
end
blackbody(*args) click to toggle source
# File lib/pbrt/builder.rb, line 171
def blackbody(*args)
  Spectrum.new(:blackbody, *args)
end
camera() click to toggle source
# File lib/pbrt/builder.rb, line 15
def camera
  Camera.new(self)
end
color(*args) click to toggle source
# File lib/pbrt/builder.rb, line 159
def color(*args)
  Spectrum.new(:color, *args)
end
comment(string) click to toggle source
# File lib/pbrt/builder.rb, line 143
def comment(string)
  write string.split("\n").map { |s| "# #{s}\n" }.join
end
concat_transform(*args) click to toggle source
# File lib/pbrt/builder.rb, line 99
def concat_transform(*args)
  write Statement.fixed_size("ConcatTransform", 16, args)
end
coord_sys_transform(*args) click to toggle source
# File lib/pbrt/builder.rb, line 91
def coord_sys_transform(*args)
  write Statement.fixed_size("CoordSysTransform", 1, args)
end
coordinate_system(*args) click to toggle source
# File lib/pbrt/builder.rb, line 87
def coordinate_system(*args)
  write Statement.fixed_size("CoordinateSystem", 1, args)
end
film() click to toggle source
# File lib/pbrt/builder.rb, line 23
def film
  Film.new(self)
end
identity() click to toggle source
# File lib/pbrt/builder.rb, line 67
def identity
  write Statement.fixed_size("Identity", 0)
end
include(args) click to toggle source
# File lib/pbrt/builder.rb, line 147
def include(args)
  write Statement.fixed_size("Include", 1, args)
end
integrator() click to toggle source
# File lib/pbrt/builder.rb, line 31
def integrator
  Integrator.new(self)
end
light_source() click to toggle source
# File lib/pbrt/builder.rb, line 43
def light_source
  LightSource.new(self)
end
look_at(*args) click to toggle source
# File lib/pbrt/builder.rb, line 83
def look_at(*args)
  write Statement.fixed_size("LookAt", 9, args)
end
make_named_material(name) click to toggle source
# File lib/pbrt/builder.rb, line 55
def make_named_material(name)
  NamedMaterial.new(self, name)
end
make_named_medium(name) click to toggle source
# File lib/pbrt/builder.rb, line 59
def make_named_medium(name)
  NamedMedium.new(self, name)
end
material() click to toggle source
# File lib/pbrt/builder.rb, line 51
def material
  Material.new(self)
end
medium_interface(*args) click to toggle source
# File lib/pbrt/builder.rb, line 63
def medium_interface(*args)
  write Statement.fixed_size("MediumInterface", 2, args)
end
named_material(args) click to toggle source
# File lib/pbrt/builder.rb, line 151
def named_material(args)
  write Statement.fixed_size("NamedMaterial", 1, args)
end
object_begin(*args, &block) click to toggle source
# File lib/pbrt/builder.rb, line 133
def object_begin(*args, &block)
  write Statement.fixed_size("ObjectBegin", 1, *args)
  instance_eval &block
  write Statement.fixed_size("ObjectEnd", 0)
end
object_instance(*args) click to toggle source
# File lib/pbrt/builder.rb, line 139
def object_instance(*args)
  write Statement.fixed_size("ObjectInstance", 1, *args)
end
pixel_filter() click to toggle source
# File lib/pbrt/builder.rb, line 27
def pixel_filter
  PixelFilter.new(self)
end
reverse_orientation(*args) click to toggle source
# File lib/pbrt/builder.rb, line 111
def reverse_orientation(*args)
  write Statement.fixed_size("ReverseOrientation", 0)
end
rgb(*args) click to toggle source
# File lib/pbrt/builder.rb, line 155
def rgb(*args)
  Spectrum.new(:rgb, *args)
end
rotate(*args) click to toggle source
# File lib/pbrt/builder.rb, line 79
def rotate(*args)
  write Statement.fixed_size("Rotate", 4, args)
end
sampled(*args) click to toggle source
# File lib/pbrt/builder.rb, line 167
def sampled(*args)
  Spectrum.new(:spectrum, *args)
end
sampler() click to toggle source
# File lib/pbrt/builder.rb, line 19
def sampler
  Sampler.new(self)
end
scale(*args) click to toggle source
# File lib/pbrt/builder.rb, line 75
def scale(*args)
  write Statement.fixed_size("Scale", 3, args)
end
shape() click to toggle source
# File lib/pbrt/builder.rb, line 39
def shape
  Shape.new(self)
end
texture(*args) click to toggle source
# File lib/pbrt/builder.rb, line 175
def texture(*args)
  PBRT::Texture.new(self, *args)
end
to_s() click to toggle source
# File lib/pbrt/builder.rb, line 11
def to_s
  io.string
end
transform(*args) click to toggle source
# File lib/pbrt/builder.rb, line 95
def transform(*args)
  write Statement.fixed_size("Transform", 16, args)
end
transform_begin(&block) click to toggle source
# File lib/pbrt/builder.rb, line 127
def transform_begin(&block)
  write Statement.fixed_size("TransformBegin", 0)
  instance_eval &block
  write Statement.fixed_size("TransformEnd", 0)
end
transform_times(*args) click to toggle source
# File lib/pbrt/builder.rb, line 103
def transform_times(*args)
  write Statement.fixed_size("TransformTimes", 2, args)
end
translate(*args) click to toggle source
# File lib/pbrt/builder.rb, line 71
def translate(*args)
  write Statement.fixed_size("Translate", 3, args)
end
world_begin(&block) click to toggle source
# File lib/pbrt/builder.rb, line 115
def world_begin(&block)
  write Statement.fixed_size("WorldBegin", 0)
  instance_eval &block
  write Statement.fixed_size("WorldEnd", 0)
end
write(statement) click to toggle source
# File lib/pbrt/builder.rb, line 179
def write(statement)
  io.puts statement
  self
end
xyz(*args) click to toggle source
# File lib/pbrt/builder.rb, line 163
def xyz(*args)
  Spectrum.new(:xyz, *args)
end