Skip to content

Commit

Permalink
Merge pull request #11 from jlogan03/jlogan/central_difference
Browse files Browse the repository at this point in the history
Tweak central difference hermite source
  • Loading branch information
swiftcoder authored Jul 27, 2023
2 parents b4b95b3 + 868376f commit 185a0eb
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions src/source.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,15 @@ impl<S: VectorSource + ScalarSource> VectorSource for CentralDifference<S> {

impl<S: ScalarSource> HermiteSource for CentralDifference<S> {
fn sample_normal(&self, p: Vec3) -> Vec3 {
let v = self.sample_scalar(p);
let vx = self.sample_scalar(p + Vec3::new(self.epsilon, 0.0, 0.0));
let vy = self.sample_scalar(p + Vec3::new(0.0, self.epsilon, 0.0));
let vz = self.sample_scalar(p + Vec3::new(0.0, 0.0, self.epsilon));
let dx = Vec3::new(self.epsilon, 0.0, 0.0);
let vx = self.sample_scalar(p + dx).0 - self.sample_scalar(p - dx).0;

Vec3::new(vx.0 - v.0, vy.0 - v.0, vz.0 - v.0)
let dy = Vec3::new(0.0, self.epsilon, 0.0);
let vy = self.sample_scalar(p + dy).0 - self.sample_scalar(p - dy).0;

let dz = Vec3::new(0.0, 0.0, self.epsilon);
let vz = self.sample_scalar(p + dz).0 - self.sample_scalar(p - dz).0;

Vec3::new(vx, vy, vz) / (2.0 * self.epsilon)
}
}

0 comments on commit 185a0eb

Please sign in to comment.