Difference between revisions of "Parallel Raytracer Assignment"
AngelaChen (talk | contribs) |
|||
Line 29: | Line 29: | ||
{{Sequential|public LoopRayTracer(Function<RayTraceContext, List<Section>> sectionsCreator)}} | {{Sequential|public LoopRayTracer(Function<RayTraceContext, List<Section>> sectionsCreator)}} | ||
− | Hang onto the sectionsCreator in an instance variable. You will need it. | + | Hang onto the sectionsCreator in an instance variable. You will need it. Refer to [https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html Function<T, R> Interface] documentation if you are unfamiliar with Function. |
===thresholdPredicate=== | ===thresholdPredicate=== |
Revision as of 19:12, 26 April 2022
Code To Investigate
RayTraceContext
public interface RayTraceContext { int width(); int height(); void mark(int xMin, int yMin, int xMaxExclusive, int yMaxExclusive); void markAndRender(int xMin, int yMin, int xMaxExclusive, int yMaxExclusive); }
Scheduler
public interface Scheduler { void void_fork(Runnable runnable); }
Code To Implement
SplitFourWayRayTracer
class: | SplitFourWayRayTracer.java | |
methods: | rayTrace | |
package: | raytrace.exercise | |
source folder: | student/src/main/java |
rayTrace
method: public void rayTrace(RayTraceContext context, Scheduler scheduler)
(parallel implementation required)
LoopRayTracer
class: | LoopRayTracer.java | |
methods: | constructor sectionsCreator rayTrace |
|
package: | raytrace.exercise | |
source folder: | student/src/main/java |
constructor
method: public LoopRayTracer(Function<RayTraceContext, List<Section>> sectionsCreator)
(sequential implementation only)
Hang onto the sectionsCreator in an instance variable. You will need it. Refer to Function<T, R> Interface documentation if you are unfamiliar with Function.
thresholdPredicate
method: Function<RayTraceContext, List<Section>> sectionsCreator()
(sequential implementation only)
Return the sectionsCreator you stored in an instance variable.
rayTrace
method: public void rayTrace(RayTraceContext context, Scheduler scheduler)
(parallel implementation required)
DivideAndConquerRayTracer
class: | DivideAndConquerRayTracer.java | |
methods: | constructor thresholdPredicate rayTraceKernel |
|
package: | raytrace.exercise | |
source folder: | student/src/main/java |
constructor
method: public DivideAndConquerRayTracer(BiPredicate<Integer, Integer> thresholdPredicate)
(sequential implementation only)
Hang onto the thresholdPredicate in an instance variable. You will need it.
thresholdPredicate
method: public BiPredicate<Integer, Integer> thresholdPredicate()
(sequential implementation only)
Return the thresholdPredicate you stored in an instance variable.
rayTrace
method: public void rayTrace(RayTraceContext context, Scheduler scheduler)
(parallel implementation required)
Checking Your Solution
Visualization
class: | RayTracerViz.java | VIZ |
package: | raytrace.viz | |
source folder: | student/src/main/java |
Correctness
class: | _SequentialRayTracerTestSuite.java | |
package: | raytrace.group | |
source folder: | testing/src/test/java |