Exemple #1
0
        public CCCamera(CCCameraProjection projection, CCSize targetVisibleDimensionsWorldspace, CCPoint3 targetInWorldspaceIn)
            : this(targetInWorldspaceIn)
        {
            cameraProjection = projection;

            if (cameraProjection == CCCameraProjection.Projection2D)
            {
                centerInWorldspace = new CCPoint3(targetInWorldspaceIn.X,
                                                  targetInWorldspaceIn.Y,
                                                  targetInWorldspaceIn.Z + defaultNearAndFarOrthoClipping.Near);

                orthographicViewSizeWorldspace = targetVisibleDimensionsWorldspace;
            }
            else
            {
                aspectRatio = targetVisibleDimensionsWorldspace.Width / targetVisibleDimensionsWorldspace.Height;

                centerInWorldspace
                    = CalculatePerspectiveCameraCenter(targetVisibleDimensionsWorldspace, targetInWorldspace);


                /* Make sure the far clipping distance is longer than distance frame camera to target
                 *  Give ourselves a little extra distance buffer so that there's no clipping when rotating etc
                 *
                 *  If users want to customise the near and far clipping bounds, they can do that and then call
                 *  UpdatePerspectiveCameraTargetBounds
                 */
                nearAndFarPerspectiveClipping.Far
                    = Math.Max(Math.Abs((centerInWorldspace.Z - targetInWorldspaceIn.Z) * 3.0f), defaultNearAndFarPerspClipping.Far);
            }

            UpdateCameraMatrices();
        }
Exemple #2
0
        public CCCamera(CCSize orthographicViewSizeWorldspaceIn)
            : this(new CCPoint3(orthographicViewSizeWorldspaceIn.Center, 100.0f), new CCPoint3(orthographicViewSizeWorldspaceIn.Center, 0.0f))
        {
            cameraProjection = CCCameraProjection.Projection2D;

            orthographicViewSizeWorldspace = orthographicViewSizeWorldspaceIn;

            UpdateCameraMatrices();
        }
Exemple #3
0
        public CCCamera(CCSize orthographicViewSizeWorldspaceIn, CCPoint3 cameraCenterPositionWorldspaceIn, CCPoint3 targetInWorldspaceIn)
            : this(cameraCenterPositionWorldspaceIn, targetInWorldspaceIn)
        {
            cameraProjection = CCCameraProjection.Projection2D;

            orthographicViewSizeWorldspace = orthographicViewSizeWorldspaceIn;

            UpdateCameraMatrices();
        }
Exemple #4
0
        public CCLayer(CCCameraProjection cameraProjection, CCClipMode clipMode = CCClipMode.None)
            : base()
        {
            ChildClippingMode            = clipMode;
            IgnoreAnchorPointForPosition = true;
            AnchorPoint = CCPoint.AnchorMiddle;

            initCameraProjection = cameraProjection;
        }
Exemple #5
0
        public CCCamera(float perspectiveFieldOfViewIn, float perspectiveAspectRatioIn, CCPoint3 cameraCenterPositionWorldspaceIn, CCPoint3 targetInWorldspaceIn)
            : this(cameraCenterPositionWorldspaceIn, targetInWorldspaceIn)
        {
            cameraProjection = CCCameraProjection.Projection3D;

            fieldOfView = perspectiveFieldOfViewIn;
            aspectRatio = perspectiveAspectRatioIn;

            UpdateCameraMatrices();
        }
Exemple #6
0
        public CCLayer(CCCameraProjection cameraProjection, CCClipMode clipMode = CCClipMode.None)
            : base()
        {
            beforeDrawCommand = new CCCustomCommand(BeforeDraw);
            afterDrawCommand  = new CCCustomCommand(AfterDraw);

            ChildClippingMode            = clipMode;
            IgnoreAnchorPointForPosition = true;
            AnchorPoint = CCPoint.AnchorMiddle;

            initCameraProjection = cameraProjection;
        }
Exemple #7
0
        public void UpdatePerspectiveCameraTargetBounds(CCSize targetVisibleDimensionsWorldspaceIn, CCPoint3 targetWorldspaceIn)
        {
            cameraProjection = CCCameraProjection.Projection3D;

            aspectRatio = targetVisibleDimensionsWorldspaceIn.Width / targetVisibleDimensionsWorldspaceIn.Height;

            targetInWorldspace = targetWorldspaceIn;

            centerInWorldspace
                = CalculatePerspectiveCameraCenter(targetVisibleDimensionsWorldspaceIn, targetWorldspaceIn);

            UpdateCameraMatrices();
        }
Exemple #8
0
        public CCCamera(CCCameraProjection projection, CCSize targetVisibleDimensionsWorldspace, CCPoint3 targetInWorldspaceIn)
            : this(targetInWorldspaceIn)
        {
            cameraProjection = projection;

            if (cameraProjection == CCCameraProjection.Projection2D)
            {
                centerInWorldspace = new CCPoint3(targetInWorldspaceIn.X, 
                    targetInWorldspaceIn.Y, 
                    targetInWorldspaceIn.Z + defaultNearAndFarOrthoClipping.Near);

                orthographicViewSizeWorldspace = targetVisibleDimensionsWorldspace;
            }
            else
            {
                aspectRatio = targetVisibleDimensionsWorldspace.Width / targetVisibleDimensionsWorldspace.Height;

                centerInWorldspace 
                    = CalculatePerspectiveCameraCenter(targetVisibleDimensionsWorldspace, targetInWorldspace);


                /* Make sure the far clipping distance is longer than distance frame camera to target
                *  Give ourselves a little extra distance buffer so that there's no clipping when rotating etc
                * 
                *  If users want to customise the near and far clipping bounds, they can do that and then call
                *  UpdatePerspectiveCameraTargetBounds
                */
                nearAndFarPerspectiveClipping.Far 
                    = Math.Max(Math.Abs((centerInWorldspace.Z - targetInWorldspaceIn.Z) * 3.0f), defaultNearAndFarPerspClipping.Far);
            }

            UpdateCameraMatrices();
        }
Exemple #9
0
 public CCCamera(CCCameraProjection projection, CCRect targetVisibleBoundsWorldspace)
     : this(projection, targetVisibleBoundsWorldspace.Size, new CCPoint3(targetVisibleBoundsWorldspace.Center, 0))
 {
 }
Exemple #10
0
 public CCCamera(CCCameraProjection projection, CCSize targetVisibleDimensionsWorldspace)
     : this(projection, targetVisibleDimensionsWorldspace, new CCPoint3(targetVisibleDimensionsWorldspace.Center, 0))
 {
 }
Exemple #11
0
 public CCLayerColor(CCCameraProjection cameraProjection, CCColor4B? color = null) 
     : base(cameraProjection)
 {
     SetupCCLayerColor(color);
 }
Exemple #12
0
 public CCLayerColor(CCSize visibleBoundsDimensions, CCCameraProjection projection, CCColor4B? color = null)
     : this(new CCCamera(projection, visibleBoundsDimensions), color)
 {
 }
Exemple #13
0
        public void UpdatePerspectiveCameraTargetBounds(CCSize targetVisibleDimensionsWorldspaceIn, CCPoint3 targetWorldspaceIn)
        {
            cameraProjection = CCCameraProjection.Projection3D;

            aspectRatio = targetVisibleDimensionsWorldspaceIn.Width / targetVisibleDimensionsWorldspaceIn.Height;

            targetInWorldspace = targetWorldspaceIn;

            centerInWorldspace 
                = CalculatePerspectiveCameraCenter(targetVisibleDimensionsWorldspaceIn, targetWorldspaceIn);

            UpdateCameraMatrices();
        }
Exemple #14
0
        public CCLayer(CCCameraProjection cameraProjection, CCClipMode clipMode = CCClipMode.None)
            : base()
        {
            ChildClippingMode = clipMode;
            IgnoreAnchorPointForPosition = true;
            AnchorPoint = CCPoint.AnchorMiddle;

            initCameraProjection = cameraProjection;
        }
Exemple #15
0
        public CCCamera(CCSize orthographicViewSizeWorldspaceIn)
            : this(new CCPoint3(orthographicViewSizeWorldspaceIn.Center , 100.0f), new CCPoint3(orthographicViewSizeWorldspaceIn.Center, 0.0f))
        {
            cameraProjection = CCCameraProjection.Projection2D;

            orthographicViewSizeWorldspace = orthographicViewSizeWorldspaceIn;

            UpdateCameraMatrices();
        }
Exemple #16
0
        public CCCamera(float perspectiveFieldOfViewIn, float perspectiveAspectRatioIn, CCPoint3 cameraCenterPositionWorldspaceIn, CCPoint3 targetInWorldspaceIn)
            : this(targetInWorldspaceIn)
        {
            cameraProjection = CCCameraProjection.Projection3D;

            centerInWorldspace = cameraCenterPositionWorldspaceIn;

            fieldOfView = perspectiveFieldOfViewIn;
            aspectRatio = perspectiveAspectRatioIn;

            UpdateCameraMatrices();
        }
Exemple #17
0
 public CCLayerColor(CCCameraProjection cameraProjection, CCColor4B?color = null)
     : base(cameraProjection)
 {
     SetupCCLayerColor(color);
 }
Exemple #18
0
 public CCLayer(CCSize visibleBoundsDimensions,
                CCCameraProjection cameraProjection,
                CCClipMode clipMode = CCClipMode.None)
     : this(new CCCamera(cameraProjection, visibleBoundsDimensions), clipMode)
 {
 }
Exemple #19
0
 public CCLayerColor(CCCameraProjection cameraProjection, CCColor4B color = default(CCColor4B))
     : base(cameraProjection)
 {
     SetupCCLayerColor(color);
 }
Exemple #20
0
 public CCLayer(CCSize visibleBoundsDimensions, 
     CCCameraProjection cameraProjection, 
     CCClipMode clipMode = CCClipMode.None)
     : this(new CCCamera(cameraProjection, visibleBoundsDimensions), clipMode)
 {  
 }
Exemple #21
0
        public CCLayer(CCCameraProjection cameraProjection, CCClipMode clipMode = CCClipMode.None)
            : base()
        {
            beforeDrawCommand = new CCCustomCommand(BeforeDraw);
            afterDrawCommand = new CCCustomCommand(AfterDraw);

            ChildClippingMode = clipMode;
            IgnoreAnchorPointForPosition = true;
            AnchorPoint = CCPoint.AnchorMiddle;

            initCameraProjection = cameraProjection;
        }
Exemple #22
0
 public CCCamera(CCCameraProjection projection, CCRect targetVisibleBoundsWorldspace) 
     : this(projection, targetVisibleBoundsWorldspace.Size, new CCPoint3(targetVisibleBoundsWorldspace.Center, 0))
 {
 }
Exemple #23
0
 public CCCamera(CCCameraProjection projection, CCSize targetVisibleDimensionsWorldspace)
     : this(projection, targetVisibleDimensionsWorldspace, new CCPoint3(targetVisibleDimensionsWorldspace.Center, 0))
 {
 }
Exemple #24
0
 public CCLayerColor(CCSize visibleBoundsDimensions, CCCameraProjection projection, CCColor4B?color = null)
     : this(new CCCamera(projection, visibleBoundsDimensions), color)
 {
 }
Exemple #25
0
        public CCCamera(CCSize orthographicViewSizeWorldspaceIn, CCPoint3 cameraCenterPositionWorldspaceIn, CCPoint3 targetInWorldspaceIn)
            : this(cameraCenterPositionWorldspaceIn, targetInWorldspaceIn)
        {
            cameraProjection = CCCameraProjection.Projection2D;

            orthographicViewSizeWorldspace = orthographicViewSizeWorldspaceIn;

            UpdateCameraMatrices();
        }