Namespace: sceneObjs

sceneObjs

The namespace for all the classes representing objects that can be added to the scene. Scene objects include optical elements (e.g. mirrors, lenses), detectors, decorations (e.g. rulers, text labels), and special objects (e.g. handles, cropboxes).

Each class represents a type of objects, and defines the rendering of the object, the options in the object bar when selected, how the mouse interacts with the object, and how the object interacts with light rays. The base class for all scene objects is BaseSceneObj, which provides common properties and methods for all scene objects. Child base classes are used for common optical interactions: BaseFilter (for mirrors and blockes), BaseGlass, and BaseGrinGlass. Mixins are used for common user interactions based on shapes: LineObjMixin and CircleObjMixin. The directory structure in src/core/sceneObjs is organized according to the toolbars in the app, which is not always the same as the class inheritance structure. For example, IdealLens is categorized under "Glass" in the app, but is not a subclass of BaseGlass.

In the Ray Optics Simulator web app, a single instance of Scene is used. The scene objects created by the users are stored in the objs property of that instance, each a instance of a class defined in this namespace.

The classes can also be used by other projects, including those running in a standalone environment (e.g. Node.js).

Source:

Classes

AngleSource
Aperture
ArcMirror
Beam
BeamSplitter
Blocker
CircleBlocker
CircleGlass
CircleGrinGlass
ConcaveDiffractionGrating
CropBox
CustomGlass
CustomMirror
Detector
DiffractionGrating
Drawing
Glass
GrinGlass
Handle
IdealLens
IdealMirror
LineArrow
Mirror
ModuleObj
ParabolicMirror
PlaneGlass
PointSource
Protractor
Ruler
SingleRay
SphericalLens
TextLabel