Tachyon (current)  Current Main Branch
Macros | Functions | Variables
ring.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "tachyon.h"
#include "macros.h"
#include "vector.h"
#include "intersect.h"
#include "util.h"
#include "ring.h"

Go to the source code of this file.

Macros

#define TACHYON_INTERNAL   1
 
#define RING_PRIVATE
 

Functions

object * newring (void *tex, vector ctr, vector norm, flt inrad, flt outrad)
 
static int ring_bbox (void *obj, vector *min, vector *max)
 
static void ring_intersect (const ring *rng, ray *ry)
 
static void ring_normal (const ring *rng, const vector *pnt, const ray *incident, vector *N)
 

Variables

static object_methods ring_methods
 

Macro Definition Documentation

◆ RING_PRIVATE

#define RING_PRIVATE

Definition at line 23 of file ring.c.

◆ TACHYON_INTERNAL

#define TACHYON_INTERNAL   1

Definition at line 16 of file ring.c.

Function Documentation

◆ newring()

object* newring ( void *  tex,
vector  ctr,
vector  norm,
flt  inrad,
flt  outrad 
)

Definition at line 33 of file ring.c.

References ring_methods, and VNorm().

Referenced by rt_ring(), and rt_ring3fv().

◆ ring_bbox()

static int ring_bbox ( void *  obj,
vector *  min,
vector *  max 
)
static

Definition at line 50 of file ring.c.

◆ ring_intersect()

static void ring_intersect ( const ring *  rng,
ray *  ry 
)
static

Definition at line 63 of file ring.c.

References Raypnt(), SQRT, VDOT, VDot(), and VSUB.

◆ ring_normal()

static void ring_normal ( const ring *  rng,
const vector *  pnt,
const ray *  incident,
vector *  N 
)
static

Definition at line 85 of file ring.c.

References VDot().

Variable Documentation

◆ ring_methods

object_methods ring_methods
static
Initial value:
= {
(void (*)(const void *, void *))(ring_intersect),
(void (*)(const void *, const void *, const void *, void *))(ring_normal),
free
}
static void ring_normal(const ring *rng, const vector *pnt, const ray *incident, vector *N)
Definition: ring.c:85
static void ring_intersect(const ring *rng, ray *ry)
Definition: ring.c:63
static int ring_bbox(void *obj, vector *min, vector *max)
Definition: ring.c:50

Definition at line 26 of file ring.c.

Referenced by newring().