Hi, On 21 Oct 2012, at 00:44, Thomas Cunningham <maui...@maui.net> wrote:
> >>> How (as in by which amounts) are you modifying the properties to arrive at >>> those mixed results? Why are they not what you want? What do you actually >>> want? > > I want to know what properties I should be adjusting to simulate a zoom in > and a zoom out. No, you already *know* what you should adjust to zoom in and out, because as you say below, it works the first time. > Using the Scene Kit Fun project, I place this code in the mousedown event, > distance is an ivar that is set to 45. > > self->distance = self->distance - 5.0; > camera.xFov = distance; // degrees > camera.yFov = distance; > [self setNeedsDisplay:YES]; // just in case it needs refreshing > > On the first click it zooms in fine, subsequent clicks are ignored, no zoom > in, values are correctly reflected in the log. The basic principle works absolutely fine here (although I had to hunt down to the non-Apple example code you were referring to). I think your problem lies elsewhere, probably not setting the properties on the right object. What is camera in your snippet above? In the example I had, it was only a local variable declared in awakeFromNib:. Here are my changes from SceneKitFun - HitTest: --- /Users/maven/Downloads/SceneKitFun-1/SceneKitFun Hit Testing/SceneKitFun/MCPSceneView.h 2012-08-17 19:32:50.000000000 +0200 +++ /Users/maven/Downloads/SceneKitFun/SceneKitFun Hit Testing/SceneKitFun/MCPSceneView.h 2012-10-21 11:25:00.000000000 +0200 @@ -9,4 +9,6 @@ #import <Cocoa/Cocoa.h> #import <SceneKit/SceneKit.h> @interface MCPSceneView : SCNView +@property double distance; +@property SCNCamera *camera; @end --- /Users/maven/Downloads/SceneKitFun-1/SceneKitFun Hit Testing/SceneKitFun/MCPSceneView.m 2012-08-18 16:40:52.000000000 +0200 +++ /Users/maven/Downloads/SceneKitFun/SceneKitFun Hit Testing/SceneKitFun/MCPSceneView.m 2012-10-21 11:34:44.000000000 +0200 @@ -13,6 +13,7 @@ @implementation MCPSceneView -(void)awakeFromNib { + self.distance = 45.0; self.backgroundColor = [NSColor grayColor]; // Create an empty scene @@ -20,11 +21,11 @@ self.scene = scene; // Create a camera - SCNCamera *camera = [SCNCamera camera]; - camera.xFov = 45; // Degrees, not radians - camera.yFov = 45; + self.camera = [SCNCamera camera]; + self.camera.xFov = 45; // Degrees, not radians + self.camera.yFov = 45; SCNNode *cameraNode = [SCNNode node]; - cameraNode.camera = camera; + cameraNode.camera = self.camera; cameraNode.position = SCNVector3Make(0, 0, 30); [scene.rootNode addChildNode:cameraNode]; @@ -107,6 +108,10 @@ highlightAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; [material.emission addAnimation:highlightAnimation forKey:@"highlight"]; + + self.distance = self.distance - 5.0; + self.camera.xFov = self.distance; // degrees + self.camera.yFov = self.distance; } [super mouseDown:event]; Daniel. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com