h-raylib-5.6.0.0: src/Raylib/Util/Lenses.hs
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TemplateHaskell #-}
-- | Lenses for raylib types
module Raylib.Util.Lenses where
import Control.Lens (Lens', lens)
import Raylib.Util.Lenses.TH (genLenses)
import qualified Raylib.Types as RL
$( genLenses
[ -- Raylib.Types.Core
''RL.Matrix,
''RL.Color,
''RL.Rectangle,
''RL.VrDeviceInfo,
''RL.VrStereoConfig,
''RL.FilePathList,
''RL.AutomationEvent,
''RL.AutomationEventList,
-- Raylib.Types.Core.Audio
''RL.Wave,
''RL.RAudioBuffer,
''RL.RAudioProcessor,
''RL.AudioStream,
''RL.Sound,
''RL.Music,
-- Raylib.Types.Core.Camera
''RL.Camera3D,
''RL.Camera2D,
-- Raylib.Types.Core.Models
''RL.Mesh,
''RL.Shader,
''RL.MaterialMap,
''RL.Material,
''RL.Transform,
''RL.BoneInfo,
''RL.Model,
''RL.ModelAnimation,
''RL.Ray,
''RL.RayCollision,
''RL.BoundingBox,
-- Raylib.Types.Core.Text
''RL.GlyphInfo,
''RL.Font,
-- Raylib.Types.Core.Textures
''RL.Image,
''RL.Texture,
''RL.RenderTexture,
''RL.NPatchInfo,
-- Raylib.Types.Util.RLGL
''RL.RLVertexBuffer,
''RL.RLDrawCall,
''RL.RLRenderBatch,
-- Raylib.Types.Util.GUI
''RL.GuiStyleProp
]
)
_vector2'x :: Lens' RL.Vector2 Float
_vector2'x = lens RL.vector2'x (\x v -> x {RL.vector2'x = v})
_vector2'y :: Lens' RL.Vector2 Float
_vector2'y = lens RL.vector2'y (\x v -> x {RL.vector2'y = v})
_vector3'x :: Lens' RL.Vector3 Float
_vector3'x = lens RL.vector3'x (\x v -> x {RL.vector3'x = v})
_vector3'y :: Lens' RL.Vector3 Float
_vector3'y = lens RL.vector3'y (\x v -> x {RL.vector3'y = v})
_vector3'z :: Lens' RL.Vector3 Float
_vector3'z = lens RL.vector3'z (\x v -> x {RL.vector3'z = v})
_vector4'x :: Lens' RL.Vector4 Float
_vector4'x = lens RL.vector4'x (\x v -> x {RL.vector4'x = v})
_vector4'y :: Lens' RL.Vector4 Float
_vector4'y = lens RL.vector4'y (\x v -> x {RL.vector4'y = v})
_vector4'z :: Lens' RL.Vector4 Float
_vector4'z = lens RL.vector4'z (\x v -> x {RL.vector4'z = v})
_vector4'w :: Lens' RL.Vector4 Float
_vector4'w = lens RL.vector4'w (\x v -> x {RL.vector4'w = v})