public void Visit(Triangle3D triangle) { var globalTriangle = new Triangle3D { A = ToAbsolute(triangle.A), B = ToAbsolute(triangle.B), C = ToAbsolute(triangle.C), Material = triangle.Material }; _decoratedShape = new RETriangle(globalTriangle); }
public void Visit(Sphere3D sphere) { _decoratedShape = new RESphere(sphere); }
public void Visit(Shape3DComposite composite) { _context.PushCoordinateSystem(composite.CoordinateSystem); var decorated = new REShapeComposite(composite); foreach (Shape3D child in composite) { child.AcceptVisitor(this); decorated.Add(_decoratedShape); } OptimizeComposite(decorated); _context.PopCoordinateSystem(); _decoratedShape = decorated; }
public void Visit(Rectangle3D rect) { var globalRectangle = new Rectangle3D { A = ToAbsolute(rect.A), B = ToAbsolute(rect.B), C = ToAbsolute(rect.C), Material = rect.Material }; _decoratedShape = new RERectangle(globalRectangle); }
public void Visit(CustomShape3D shape) { _decoratedShape = null; }
protected virtual RayTracingOptions GetRayTracingOptions(REBaseShape shape) { return RayTracingOptions.Diffuse | RayTracingOptions.Speculate; }