Speed up point picker

Hi all,
I create a bunch of triangle strip arrays in my java3d app and add a custom pick behaviour to get the indices, locations of the points that get picked with the mouse. I use
PickResult pickResult = pickCanvas.pickClosest( );
I notice that it seems to take a good amount of time to get my result back; for a 300x300 square of data points it takes about a second to get my result; larger data sets of course take even longer.
My question: how optimized are the point picking behaviours in Java3D and does anyone else have experience with "slow" point picking? It cant really be the code I wrote since all i really do is ask Java3D to get the closest point. Does java3d have to traverse ALL of the geometry in the scene graph in order to find the closest point, or is there some way to get it to narrow down its search if that is the case?
Thanks in advance for your replies.
Cheers,
Greg

Well, I was going through all my old posts and saw this one which never got answered. Having found the answer some time ago I thought I'd post it here for posterity and for anyone who might search the forum and be looking for the same answer.
From the website:
http://trapdoor.surak.com.au/~chris/home/java/j3d/PerformanceSutras.html
Slow picking with multiple geometries
1. One way to speed up your picking may be to use slightly smaller "chunks" for your geometric data. Picking proceeds in two passes. The first pass selects Shape3D nodes that may be picked by seeing if their bounds intersect the pick volume. The second pass intersects the pick shape with the geometry to determine the shapes that were actually picked (this is assuming that you are doing GEOMETRY picking, BOUNDS picking stops at the first step).
[Doug Gehringer and http://www.j3d.org/faq/speed.html#picking]
which is from the original post on J3D.org
http://www.j3d.org/faq/speed.html#picking
Anyway, hope that helps for anyone experiencing the same problem.
Cheers,
Greg

Similar Messages

  • Using LabVIEW and an E-Series DAQ Card to perform relatively high speed single point acquisition in response to a changing DIO pattern.

    I am using the DIO lines on my E-series card to drive an external multiplexer which switches 1 of 8 sets of 3 signals to channels 0,1 and 2 on my DAQ. I need to acquire the 3 single points of data, do a little processing, then update the mux code before acquiring the next 3 points of data and so on. I have been trying to do this using hardware controlled loops but can only achieve a real sampling rate (time between the same set of three signals) of about 200s/s. I am trying to achieve in excess of 800 s/s. Any ideas?.

    HI CP,
    You are doing pretty good if you are getting 200S/s.
    I believe the only way you can get 800 S/s reliably is to go to LV-Real Time. Not for the speed, but for the determinism.
    That's my idea.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Stock Removal using Pick Point

    Hi all,
    I have configure Storage Type 100 with SU managed and a pick point ST 001.
    Once the TO is generated from delivery, the TO information will be from source ST100 to destination ST916.
    So I would like to know, how to identify the SU is arrived pick point? If there any status or information can help me to know the status of TO.
    Since i need to identify,
    1.SU still in the Source Storage Type (TO open)
    2.Worker starts transfer to SU to pick point with liftfork
    3.SU arrived Pick point
    4.Picker picked the material from pick point (TO picked)
    5.Picker transferred the material to GI area (TO transferred and completed)
    I dun know how to let user know the status of 2 and 3
    Thanks in advance.
    David Tai

    Hi David,
    If the pick point / ID point is defined for SType 100 then during transfer order creation system will automatically stamps the destination storage type as Pick point when it is taking out the stock from Stype  100
    I have simulated one scenario where for my storage type 010 the ID point / Pick Point is defined as 011
    Stock removal / putaway defined in material master & Stock in Storage bin are as below
    & the Putaway / Picking storage type search is defined as
    Now for the Transfer order creation i am using the T-Code  LT09 (enter the SU number & MvT and system automatically propose 011 as destination storage type in the transfer order
    Upon confirmation of the transfer order 0168, use LT09 again to transfer the SU from Pick point to final destination bin and system automatically propose 010 as the final destination storage type
    Hope this helps

  • Makerefmovie/QT Speed Settings Question

    I'm building an online archive of streaming video files, and making an attempt to set up multiple versions of each file to account for users' various connection speeds.
    Is there a source of information on the finer points of a tool like makerefmoviex?
    My concern is how most effectively to deliver streamed files to specific connection speeds.
    As I understand it, the "Speed" setting in makerefmoviex looks for the setting a user has chosen for his/her installed Quicktime Player.
    Should I, therefore, designate a file for each possible speed setting, or can I 'tile' my selections on this end? That is: if I have three variously-sized versions of a particular movie, can I make only three panes in makerefmoviex, with each pane's speed set to pick up at the limits of the others?
    If, for instance, I set one pane at "1 Mbps Cable", the next at "768 Kbps DSL", and the last at "112 Kbps ISDN", will my reference movie know which file to deliver to someone who connects with a QT Player set at "256 Kbps DSL"?
    Or do I have to specify the file I want delivered to each possible setting? (which would mean at least ten panes in each reference movie)
    Many thanks to anyone who knows the way mrefmovx operates in this respect.
    mini, dual G5, TiBook   Mac OS X (10.4.4)  

    Hi Folks.  Just to let you know, I am having similar issues.... very frustrating.  My new MSI GS70 Stealth Pro Crimson Red notebook arrived two days ago.  I'm new to Windows 8.1, so there has been some learning curve there, but I have been struggling t...

  • Very slow 3G speeds with internal card on Vodafone network: solved!

    I'm running the internal 3G card on the Vodafone network in Australia (ThinkPad x200s, Vista) and a couple of weeks ago it slowed right down to less than dialup speed for no reason, and the speed hasn't picked up since.
    I finally figured out how to resolve the issue today. I downloaded the Vodafone Internet Connect utlility and now my Internet speeds are restored to 3G speed. However, if I use ThinkVantage Access Connections utility to connect to the Vodafone HSDPA network, the 3G speed crawls again. It appears this is a bug in Acess Connections utility and I'm not sure why it appeared (probably related to a Vista update). 
    Anyway, if you come across this issue, you should download and connect using the Vodafone Internet Connection utility, which contains many handy features including a usage meter and SMS features.

    By process of elimination I realised that the only cause of the sudden slowness must be software that I had installed recently. The only software I had added was a wifi utility to detect available networks--open or protected. Unlikely as it sounds, quitting the utility (which I had set to load on startup) made a dramatic improvement in performance.

  • Setting white point in LR

    I'm almost sure I'm missing something but I cannot find a solution. I'm using LR (currently 2.2) for quite a while (since 1.2) but I simply cannot find an easy, user friedly and predictable way how to set a white point of edited pictures.
    In PS, CR, DPP and most other editing SW and RAW processors, there two typical easy tools how to set the white point.
    1) a white point picker which (when used) defines a desired tone as white and the relevant SW then redistributes the tones accordingly;
    2) in "levels" or "curves" dialog (or their equivalents it is possible to move the "White level" treshold below which the remaining tones are redistributed accordingly - the iterface varies (sometimes it is the border of the histogram or curve diagram that can be moved (DPP), sometimes it is the slider in histogram or curve diagram setting this limit
    botw ways generally lead to the same and quite uniform result. I.e. I'm usually able to get almost identical result by setting white point in PS, DPP, CR, .... and other SW by such simple operation when working over identical picture data.
    However in LR it is virtually impossible to achieve similar result in LR. No white point picker, no slider enabling setting the white limit, no chance to move borders in the histogram chart. The only available tools for this purpose are
    "Exposure" and "Brightness". None of them providing for the desired functionality alone - their combination giving sometimes acceptable but hardly predictable results (definitely not as predictable as achieved e.g. in PS by simple and single move of white limit slider in "level" dialogue or equivalent step in CR.
    Do I really miss something important (I hope so) in this respect or is LR completly lacking this (for me really core/basic) functionality present in all other photo and RAW editting SW I know - even from Adobe?
    thanks

    I agree with the original poster - I find it troublesome to set the white point in an image. In a situation where a traditional (PS, Aperture) levels control would make it convenient to push a particular tone to white, I find myself going back and forth between exposure and the tone curve a fair amount. Another description of what I want, effectively, is a 'recovery' slider that goes up as well as down.
    (See end of post for replies to a few specific points.)
    An example:
    Here is the original image, with its histogram and tone curve - black to middle gray:
    I want to push the small hatch/door to white, but that also overexposes my middle grays (I haven't yet touched the tone curve):
    So now I go to the tone curve, and pull down both darks and lights:
    However, at this point I've lost my whites (they are not quite clipped any more); and probably more importantly, since the tone curve is at the extreme low values, I have little working room or control.
    Rather than working together or providing complementary functions, in this case exposure and the tone curve, to me, seem to be fighting; it requires back-and-forth to get the desired effect.
    (To be clear, most of the time - that is, when my white point starts out more or less where I want it - being able to drag the histogram and smoothly-transitioned segments of the tone curve is brilliantly easy and useful. It's specifically the exposure control's nonlinear behavior/effect that I dislike, as it makes it difficult to adjust near-white tones.)
    Responding to specifics:
    > Also, hold the ALT key (David Edwards)
    Cool! (However, not a fix for this issue.)
    > the controls themselves are not linear (Lee Jay)
    > attempts to preserve highlights (Lee Jay)
    > the exposure slider is almost exactly equivalent to the white point slider in Photoshop's levels/curves (Joa V. L.)
    I think this is the root of the issue, for me - the exposure control is being intelligent in a way to protect hilights, which is counter to my intent. My experience leads me to disagree strongly with Joa's comment (though I would be very happy to discover I was wrong) - my problem is specifically that adjusting exposure up (brightening the image with exposure) affects tones less, the brighter they are.
    > I need to decrease the Brightness (Henry_Deer)
    > you may need to generate a higher-contrast tone curve and work with that (Lee Jay)
    The brightness adjustment seems analogous to my use of the tone curve, though it's an alternate approach I haven't tried. However, both seem to suffer from the 'several rounds' problem.
    Edited to reply to a few specific points

  • Picking question.

    I have been beating my head on this for days and can't see what the problem is. All I want to do is to pick a point on a sphere and then at that point project a cylinder into the sphere.
    I can get the thing to place the pont in the sphere, but not at the point I pick. If I keep picking other points, the cylinder will move slightly one way or the other, but not to the extent it needs to.
    Any help is REALLY appreciated.
    Here is the code:
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import javax.media.j3d.AmbientLight;
    import javax.media.j3d.Appearance;
    import javax.media.j3d.BoundingSphere;
    import javax.media.j3d.BranchGroup;
    import javax.media.j3d.Canvas3D;
    import javax.media.j3d.ColoringAttributes;
    import javax.media.j3d.DirectionalLight;
    import javax.media.j3d.GeometryArray;
    import javax.media.j3d.HiResCoord;
    import javax.media.j3d.Locale;
    import javax.media.j3d.PhysicalBody;
    import javax.media.j3d.PhysicalEnvironment;
    import javax.media.j3d.Shape3D;
    import javax.media.j3d.Transform3D;
    import javax.media.j3d.TransformGroup;
    import javax.media.j3d.View;
    import javax.media.j3d.ViewPlatform;
    import javax.media.j3d.VirtualUniverse;
    import javax.swing.JFrame;
    import javax.vecmath.AxisAngle4d;
    import javax.vecmath.Color3f;
    import javax.vecmath.Point3d;
    import javax.vecmath.Vector3d;
    import javax.vecmath.Vector3f;
    import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
    import com.sun.j3d.utils.behaviors.mouse.MouseTranslate;
    import com.sun.j3d.utils.geometry.Cylinder;
    import com.sun.j3d.utils.geometry.Sphere;
    import com.sun.j3d.utils.universe.SimpleUniverse;
    //import com.tornadolabs.j3dtree.Java3dTree;
    public class DisplayFrame extends JFrame implements PointSelectedReceiver
        private Transform3D     pointT3D = new Transform3D();
        private TransformGroup  pointTG;
        private VirtualUniverse universe;
        //private Java3dTree      j3dTree;
        private Canvas3D        canvas3D;
        private Vector3d        pointCurrTrans = new Vector3d();
        private Transform3D     pointRotT3D    = new Transform3D();
        private static final Vector3d ORIGIN = new Vector3d(0, 0, 0);
         * @param args
        public static void main(String[] args)
            DisplayFrame mainframe = new DisplayFrame();
            mainframe.init();
            mainframe.setPreferredSize(new Dimension(1280, 1024));
            mainframe.setMinimumSize(new Dimension(1024, 768));
            mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            mainframe.pack();
            mainframe.setVisible(true);
        private void init()
             universe = new VirtualUniverse();
             canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
             int[] xPos = {0,0,0,0,0,0,0,0};
             int[] yPos = {0,0,0,0,0,0,0,0};
             int[] zPos = {0,0,1,5,0,0,0,0};
             HiResCoord hiResCoord = new HiResCoord(xPos, yPos, zPos);
             //j3dTree  = new Java3dTree();
             Locale locale = new Locale(universe, hiResCoord);
             BranchGroup scene = createSceneGraph();
             //j3dTree.recursiveApplyCapability(scene);
             scene.compile();
             locale.addBranchGraph(scene);
             BranchGroup vpBranchGroup = new BranchGroup();
             TransformGroup tg = new TransformGroup();
             ViewPlatform vp = new ViewPlatform();
             vp.setViewAttachPolicy(View.RELATIVE_TO_FIELD_OF_VIEW);
             tg.addChild(vp);
             vpBranchGroup.addChild(tg);
             locale.addBranchGraph(vpBranchGroup);
             View view = new View();
             view.setProjectionPolicy(View.PARALLEL_PROJECTION);
             PhysicalBody        pb = new PhysicalBody();
             PhysicalEnvironment pe = new PhysicalEnvironment();
             view.setPhysicalEnvironment(pe);
             view.setPhysicalBody(pb);
             view.attachViewPlatform(vp);
             view.setBackClipDistance(110);
             view.setFrontClipPolicy(View.VIRTUAL_EYE);
             view.addCanvas3D(canvas3D);
             this.setLayout( new BorderLayout() );
             this.setSize(new Dimension(1024,768));
             this.setMinimumSize(new Dimension(1024, 768));
             this.add("Center", canvas3D);  
             //j3dTree.updateNodes(universe);
        private BranchGroup createSceneGraph()
            BranchGroup objRoot = new BranchGroup();
            double scale = 0.02d;
            Transform3D myTransform3D = new Transform3D();
            myTransform3D.setScale(scale);
            TransformGroup mainTG = new TransformGroup(myTransform3D);
            mainTG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
            mainTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
            mainTG.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND);
            mainTG.setCapability(TransformGroup.ALLOW_CHILDREN_WRITE);
            //Test a color cube
            Sphere sphere = new Sphere(10.0f);
            sphere.setPickable(true);
            sphere.getShape().setCapability(Shape3D.ENABLE_PICK_REPORTING);
            sphere.getShape().setCapability(Shape3D.ALLOW_GEOMETRY_READ);
            sphere.getShape().getGeometry().setCapability(GeometryArray.ALLOW_COUNT_READ);
            sphere.getShape().getGeometry().setCapability(GeometryArray.ALLOW_FORMAT_READ);
            sphere.getShape().getGeometry().setCapability(GeometryArray.ALLOW_COORDINATE_READ);
            sphere.getShape().getGeometry().setCapability(GeometryArray.ALLOW_REF_DATA_READ);
            sphere.setCapability(Sphere.ALLOW_PICKABLE_READ);
            Transform3D sphereT3D = new Transform3D();
            sphereT3D.setTranslation(new Vector3d(0.0f, 0.0f, 0.0f));
            TransformGroup sphereTG = new TransformGroup(sphereT3D);
            sphereTG.addChild(sphere);
            mainTG.addChild(sphereTG);
            //Add lighting
            BoundingSphere bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
            Color3f ambientColor          = new Color3f(0.9f, 0.9f, 0.9f);
            Color3f directionalLightColor = new Color3f(0.6f, 0.6f, 0.6f);
            AmbientLight ambientLightNode = new AmbientLight(ambientColor);
            ambientLightNode.setInfluencingBounds(bounds);
            mainTG.addChild(ambientLightNode);
            DirectionalLight directionalLight = new DirectionalLight(directionalLightColor, new Vector3f(+0.0f, +0.10f, +0.00f) );
            directionalLight.setInfluencingBounds(bounds);
            mainTG.addChild(directionalLight);
            //Add an object to indicate the point picked
            pointTG = new TransformGroup();
            pointTG.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
            pointTG.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
            pointT3D.setTranslation(new Vector3d(-20.0f, 0.0f, 0.0f));
            pointTG.setTransform(pointT3D);
            Appearance         pickAp    = new Appearance();
            ColoringAttributes colorAtt  = new ColoringAttributes();
            Color3f            pickColor = new Color3f(0.0f, 0.5f, 0.8f);
            colorAtt.setColor( pickColor );
            pickAp.setColoringAttributes( colorAtt );
            Cylinder pointIndicator = new Cylinder(0.25f, 25.0f, pickAp); 
            pointIndicator.setPickable(false);
            pointTG.addChild(pointIndicator);
            mainTG.addChild(pointTG);  
            //Add the picking behavior next
            PointPickBehaviour picking = new PointPickBehaviour(canvas3D,
                                                                objRoot,
                                                                bounds,
                                                                DisplayFrame.this);
            mainTG.addChild(picking);
            MouseRotate behavior = new MouseRotate();
            behavior.setTransformGroup(mainTG);
            mainTG.addChild(behavior);
            behavior.setSchedulingBounds(bounds);
            MouseTranslate behavior2 = new MouseTranslate();
            behavior2.setTransformGroup(mainTG);
            mainTG.addChild(behavior2);
            behavior2.setSchedulingBounds(bounds);
            objRoot.addChild(mainTG);
            objRoot.setCapability(BranchGroup.ENABLE_PICK_REPORTING);
            return objRoot;
        public void receiveSelectedPoint(Point3d point)
            pointT3D.setTranslation(new Vector3d(point.x, point.y, point.z));
            pointTG.setTransform(pointT3D);
        public void receivePickRotation(AxisAngle4d rotAxis)
            pointTG.getTransform( pointT3D );
            pointT3D.get( pointCurrTrans ); 
            pointT3D.setTranslation( ORIGIN );
            pointT3D.setRotation( rotAxis ); 
            pointT3D.mul(pointRotT3D);
            pointT3D.setTranslation( pointCurrTrans );
            pointTG.setTransform( pointT3D );
    }Now the code to the pick itself:
    import javax.vecmath.*;
    import javax.media.j3d.*;
    import com.sun.j3d.utils.picking.*;
    import com.sun.j3d.utils.picking.behaviors.PickMouseBehavior;
    public class PointPickBehaviour extends PickMouseBehavior
      private PointSelectedReceiver receiver;
      private boolean               firstRotation;
      private AxisAngle4d           rotAxisAngle   = new AxisAngle4d();
      private Vector3d              clickVec       = new Vector3d();
      private Vector3d              axisVec        = new Vector3d();
      private double                pickAngle;
      private Point3d               startPt;
      // initial orientation of pick pointer: straight up
      private static final Vector3d UPVEC = new Vector3d(0.0, 1.0, 0.0);
      // for repeated calculations
      public PointPickBehaviour(Canvas3D    canvas,
                                BranchGroup root,
                                Bounds      bounds,
                                PointSelectedReceiver receiver)
        super(canvas, root, bounds);
        setSchedulingBounds(bounds);
        pickCanvas.setMode(PickCanvas.GEOMETRY_INTERSECT_INFO);
        this.receiver = receiver;
      public void updateScene(int xpos, int ypos)
      /* This method is called when something is picked.
           pickCanvas.setShapeLocation(xpos, ypos);
           Point3d eyePos = pickCanvas.getStartPosition();
          startPt = eyePos;
           PickResult pickResult = null;
           pickResult = pickCanvas.pickClosest();
           if (pickResult != null)
               PickIntersection pi = pickResult.getClosestIntersection(eyePos); 
              System.out.println("Picked coordinates: " + pi.getClosestVertexCoordinates());
              Point3d intercept = pi.getPointCoordinatesVW();
              rotateToPoint(intercept);
              receiver.receiveSelectedPoint(intercept);
      } // end of updateScene()
      private void rotateToPoint(Point3d intercept)
      /* Turn the picked point to point at the point where the
         mouse was clicked.
            if (!firstRotation)
            {   // undo previous rotations to gun and beam
                axisVec.negate();
                rotAxisAngle.set( axisVec, pickAngle );
                receiver.receivePickRotation(rotAxisAngle);
            clickVec.set( intercept.x - startPt.x,
                          intercept.y - startPt.y,
                          intercept.z - startPt.z);
            clickVec.normalize();
            axisVec.cross( UPVEC, clickVec);
            pickAngle = UPVEC.angle(clickVec);
            rotAxisAngle.set(axisVec, pickAngle);     // build rotation
            receiver.receivePickRotation(rotAxisAngle);
            firstRotation = false;
      } // end of rotateToPoint()
    } Fianlly the interface to tie the two:
    import javax.vecmath.AxisAngle4d;
    import javax.vecmath.Point3d;
    public interface PointSelectedReceiver
        public void receiveSelectedPoint(Point3d point);
        public void receivePickRotation(AxisAngle4d rotation);
    }

    Well I have it sort of working (the pick indicator cylinder gets placed at the right point, but if you rotate the sphere and then select another point the cylinder isn't drawn toward the user).
    The fix was to change getPointCoordinatesVW to getClosestVertexCoordinates.

  • Projecting Mouse to a 3D Point

    I've searched high and low for this answer, but all the picking threads and information I've come accross hasn't been able to help me. I'm making a chess game and I need to be able to convert the mouse (in screen x, y coordinates) to a 3D point, but the only parts I care about in that 3D point are the x and z coordinates (which I'll use to convert them into a tile on the chess board). I know that I want the y-value of the 3D point to be zero (I just want to convert the mouse to a point on a level plane). What's the best way to go about doing this? I don't want to pick an object, I just want a 3D point with a y-value of zero.

    Sorry, I saw the old API which didn't list PickPoint as deprecated. Here are some more posts that will guide you in obtaining the 3d coordinates of point picked. Check out chapter 4.6 in the tutorial using the last one of the four links.
    "I don't know where the point will be when I click, all I know is that I want the y-coordinate to be zero " Not really clear what you are looking for. I you want
    to constrain motion of your shapes to x and z coordinates, don't bother about dealing with y coordinate when you obtain the 3d coordinates and they match your shapes x and z coordinates, perform the move action. Hope I was able to convey my point.
    http://forum.java.sun.com/thread.jspa?messageID=10101107&tstart=0
    http://forum.java.sun.com/thread.jspa?forumID=21&threadID=635844
    http://forum.java.sun.com/thread.jspa?forumID=21&threadID=457527
    http://www.cs.stir.ac.uk/courses/CSC9N6/Java3D/Tutorial/j3d_tutorial_ch4.pdf
    Let me know how you worked it out.
    Venkat

  • Setting Colour Point with curves CS4

    Hi, I use CS4 and I want to do some colour correction so I use the colour sampler to select areas I want to change ie Highlights to around 242 but I want to place a sample point for midtones on the RGB channels at the same time, to do this I understand if I place the cursor over a sample point and hold Ctrl + Shift then click it should set points on all channels but when I hover over the sample my colour sample point picker changes to the move tool so I assume I must have hit a button someplace but don't no where! Any help please.
    Thanks
    Russ

    I guess your working with a curves adjustment layer?
    You probably still have the color sampler tool selected.
    Either select the eyedropper tool or you can use the Auto-Select-Targeted Adjustment Tool.
    MTSTUNER

  • Color samplers - dark, light & grey point - how to adjust curves

    Hi all
    I've set dark, light & grey point in an image. Wondering how to adjust the curves based on the color samplers. Manually i invoke the curve dialog box and select the dark pen and choose sampler no1, select light pen and choose sampler no2, select grey pen and choose sampler no3. Any idea how this can be done in script?

    I’m stymied by the gray point at current, it does not seem to use the measured values directly.
    The white and black points seem to be straightforward and can be set easily with a Script when one knows the values.
    #target photoshop
    var theArray = [[17, 224], [0, 255], [27, 215], [0, 255], [28, 206], [0, 255]];
    rgbCurvesLayer (theArray);
    ////// make rgb curves layer //////
    function rgbCurvesLayer (theArray) {
    // =======================================================
    var idMk = charIDToTypeID( "Mk  " );
        var desc5 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref2 = new ActionReference();
            var idAdjL = charIDToTypeID( "AdjL" );
            ref2.putClass( idAdjL );
        desc5.putReference( idnull, ref2 );
        var idUsng = charIDToTypeID( "Usng" );
            var desc6 = new ActionDescriptor();
            var idType = charIDToTypeID( "Type" );
                var desc7 = new ActionDescriptor();
                var idpresetKind = stringIDToTypeID( "presetKind" );
                var idpresetKindType = stringIDToTypeID( "presetKindType" );
                var idpresetKindDefault = stringIDToTypeID( "presetKindDefault" );
                desc7.putEnumerated( idpresetKind, idpresetKindType, idpresetKindDefault );
            var idCrvs = charIDToTypeID( "Crvs" );
            desc6.putObject( idType, idCrvs, desc7 );
        var idAdjL = charIDToTypeID( "AdjL" );
        desc5.putObject( idUsng, idAdjL, desc6 );
    executeAction( idMk, desc5, DialogModes.NO );
    // =======================================================
    var idsetd = charIDToTypeID( "setd" );
        var desc8 = new ActionDescriptor();
        var idnull = charIDToTypeID( "null" );
            var ref3 = new ActionReference();
            var idAdjL = charIDToTypeID( "AdjL" );
            var idOrdn = charIDToTypeID( "Ordn" );
            var idTrgt = charIDToTypeID( "Trgt" );
            ref3.putEnumerated( idAdjL, idOrdn, idTrgt );
        desc8.putReference( idnull, ref3 );
        var idT = charIDToTypeID( "T   " );
            var desc9 = new ActionDescriptor();
            var idpresetKind = stringIDToTypeID( "presetKind" );
            var idpresetKindType = stringIDToTypeID( "presetKindType" );
            var idpresetKindCustom = stringIDToTypeID( "presetKindCustom" );
            desc9.putEnumerated( idpresetKind, idpresetKindType, idpresetKindCustom );
            var idAdjs = charIDToTypeID( "Adjs" );
                var list1 = new ActionList();
                    var desc10 = new ActionDescriptor();
                    var idChnl = charIDToTypeID( "Chnl" );
                        var ref4 = new ActionReference();
                        var idChnl = charIDToTypeID( "Chnl" );
                        var idChnl = charIDToTypeID( "Chnl" );
                        var idRd = charIDToTypeID( "Rd  " );
                        ref4.putEnumerated( idChnl, idChnl, idRd );
                    desc10.putReference( idChnl, ref4 );
                    var idCrv = charIDToTypeID( "Crv " );
                        var list2 = new ActionList();
    // add r points;
    for (var m = 0; m < theArray[0].length; m++) {
              addCurvePoint (list2, theArray[0][m], theArray[1][m])
                    desc10.putList( idCrv, list2 );
                var idCrvA = charIDToTypeID( "CrvA" );
                list1.putObject( idCrvA, desc10 );
                    var desc15 = new ActionDescriptor();
                    var idChnl = charIDToTypeID( "Chnl" );
                        var ref5 = new ActionReference();
                        var idChnl = charIDToTypeID( "Chnl" );
                        var idChnl = charIDToTypeID( "Chnl" );
                        var idGrn = charIDToTypeID( "Grn " );
                        ref5.putEnumerated( idChnl, idChnl, idGrn );
                    desc15.putReference( idChnl, ref5 );
                    var idCrv = charIDToTypeID( "Crv " );
                        var list3 = new ActionList();
    // add g points;
    for (var m = 0; m < theArray[2].length; m++) {
              addCurvePoint (list3, theArray[2][m], theArray[3][m])
                    desc15.putList( idCrv, list3 );
                var idCrvA = charIDToTypeID( "CrvA" );
                list1.putObject( idCrvA, desc15 );
                    var desc20 = new ActionDescriptor();
                    var idChnl = charIDToTypeID( "Chnl" );
                        var ref6 = new ActionReference();
                        var idChnl = charIDToTypeID( "Chnl" );
                        var idChnl = charIDToTypeID( "Chnl" );
                        var idBl = charIDToTypeID( "Bl  " );
                        ref6.putEnumerated( idChnl, idChnl, idBl );
                    desc20.putReference( idChnl, ref6 );
                    var idCrv = charIDToTypeID( "Crv " );
                        var list4 = new ActionList();
    // add b points;
    for (var m = 0; m < theArray[4].length; m++) {
              addCurvePoint (list4, theArray[4][m], theArray[5][m])
                    desc20.putList( idCrv, list4 );
                var idCrvA = charIDToTypeID( "CrvA" );
                list1.putObject( idCrvA, desc20 );
            desc9.putList( idAdjs, list1 );
        var idCrvs = charIDToTypeID( "Crvs" );
        desc8.putObject( idT, idCrvs, desc9 );
    executeAction( idsetd, desc8, DialogModes.NO );
    return app.activeDocument.activeLayer;
    ////// add curve point //////
    function addCurvePoint (theList, valueHor, valueVer) {
    var desc11 = new ActionDescriptor();
    var idHrzn = charIDToTypeID( "Hrzn" );
    desc11.putDouble( idHrzn, valueHor );
    var idVrtc = charIDToTypeID( "Vrtc" );
    desc11.putDouble( idVrtc, valueVer );
    var idPnt = charIDToTypeID( "Pnt " );
    theList.putObject( idPnt, desc11 );
    Edit: I had assumed the gray point picker would set the input values of the point picked to output 127/127/127, but he operation seems to be quite different.

  • BT Hub 5 speeds dramatically dropping by the day

    Hi there,
    I have a serious issue regarding my BT broadband service, I was sold BT infinity 1 with expected speeds of around 28-32mbps.
    My Hub 5 was fitted on 6th December 2014 and all seemed fine at that time, when the engineer was here the speeds were around 37mbps (As if by magic!), but even after the engineer had left I was still getting speeds of around 30-32mbps which I was more than happy with.
    Over the latter end of December I noticed that the speeds had dropped off to around 24-28mbps, but I just put this down to local traffic on the line due to the busy Christmas period.
    Also in December I started to get periodically disconnected when using Xbox Live or Sky on demand services, again I know Xbox was suffering with hacking attacks and again it was a bust period so I just went with it.
    Now on to January, I thought that the speeds would again pick up, but to my dismay this did not happen and speeds seemed to teeter around 22-25mbps, I was not to fussed with this as that is good enough for me to get by on, but the disconnections persisted too and often left me having to restart the Hub 5 to get back on again.
    Then on Sunday 1st Jan, while I was using Sky on demand and Netflix I started to notice severe buffering issues, I decided to check my speeds again and was shocked to find them at 12mbps, this was just not fast enough to stream comfortably and this has now started to bother me as I often stream over the wireless network along with my kids watching youtube on the tablets.
    I have been regularly checking my speeds using 'OOKLA' speedtest as I always do and I am beginning to get concerned over what I am seeing, speeds are still dropping by the day and I am currently only getting 9mbps, a far cry from what I have been getting previously and from what I have signed up for.
    I have tried a few suggested tips, like changing the channel for wi-fi, splitting 2.4 and 5ghz for better connections with certain devices, resetting to factory defaults, restarting the hub, but nothing is working and I am worried that at this rate I will be down to 2-3mbps by the weekend and would have been better off with a cheap (non fibre) broadband.
    I have had no new additions to the house regarding technology and nothing has changed structurally to have caused interference on these levels, I even turned off every single device in the house (Sky boxes included) apart from my phone today and then placed it next to the Hub 5 (1 foot away) still only attaining 9mbps, something is seriously amiss.
    I have noticed a lot of talk about a new firmware that happened on 17/01/15, I have checked my hub was also updated on this date, could there be issues regarding the speed loss due to this firmware patch?
    Also looking at the official BT speed check, my line shows no issues and no work is currently going on in my area that I am aware of.
    I have heard that regularly restarting the hub may then result in it sending an error message back to BT to raise an issue and this itself can impair the performance, I have been advised to let it settle for 10 days without rebooting it.
    I feel at the moment that I am paying for something that I cannot actually use reliably enough to make it worth while and if this persists and I cannot find a resolution I may have to seek advice for terminating my contract early on terms of being mis-sold a product.
     I would greatly appreciate any help or suggestions that you guys can offer me and I will be especially interested to hear what the official BT representatives reasons or excuses for this are.

    RoyceRichards72 wrote:
    If this is the issue, and that makes a lot of sense since there have been numerous disconnections since December, how do I get it uncapped again?
    Do you know why there have been multiple disconnections?
    Once the instability stops, DLM will automatically begin raising your speed.
    If you found this post helpful, please click on the star on the left
    If not, I'll try again

  • EK00 - picking output

    Hi,
    I would like to activate the Picking Output EK00 in my deliveries,  but whenever I go to Delivery -> Picking Output, the fields are all gray out ...
    I read that for Non-Wm , the delivery can be automatically picked by printing this EK00 - picking output...
    Any ideas?
    *I already put EK00 in the shipping point picking output.
    Thanks,

    HI sATYA,
    Thank you for your reply..  I maintained EK00 in the shipping point .. and put details also in v/38.
    program: RVADEK01
    Routine ; ENTRY
    Form: SD_PICK_SINGLE
    i think the above are all sap standard? How can I check if the above settings are correct?
    When I tried to view the form it says, Form does not exist in client 001, only in 000 ... then I am able to print preview ...
    Cheers...

  • Time Capsule Not Recognized by PC

    I've replaced my old router with a new Time Capsule (TC).  The router is connected to a Motorola SB6120 cable modem for internet access via my cable TV company.  Set up of the TC seemed to go smoothly, the network still has the same SSID and WEP security code as it did before, picked up automagically from the old router during the set up.  My wireless devices are a Macbook Pro (that I used to do the setup), an iMac, an iPad2, two iPhone4s (plural iPhones, not to be confused with the new iPhone4S), an HP Photosmart Premium All-in-One printer, and the problem - a Dell Inspiron N5010 PC running Windows 7 Home Premium SP1.
    After completing the set up I had to re-enter the WEP security code on each Apple device and the printer when they first tried to connect to the network, even though the code had not changed, but other than that one-time minor inconvenience they all connect fine.*
    The problem is with the Dell PC.  It can 'see' the network - the SSID shows in the list of available networks - and it sees excellent signal strength, but it connects with only "Limited Access".  Neither disconnecting from the network and reconnecting, nor disabling and re-enabling the network card, changes that.  Initially, running the Network Troubleshooting routine produced the following result:
    - The 1st (and only) stopping point was a request to confirm the WEP security code.  The code shown was correct, but I re-entered it and continued.
    - The troubleshooting routine then went through a series of other checks without stopping for user input or confirmation.
    - The troubleshooting routine ended by showing 2 Problems Found:
    1) the security code confirmation
    2) 'IP problem' (not the exact wording, but something about an IP address problem).
    After doing some research on the internet, I downloaded and installed Airport Utility on the Dell PC and tried to run it.  On launching Airport Utility I got this message on the screen, "Unable to find any Airport wireless device".
    Again I tried to run the Windows Network Troubleshooting routine.  Again the 1st item is to confirm the WEP security code after which the routine runs to completion without stopping.  Now there are 2 different problems found:
    1) Problem with wireless adapter of access point - Detected - triangle with ! inside
    2) Windows cannot connect to [SSID network name] - Fixed - circle with checkmark inside
    Any suggestions for what might be going on?  What hardware or settings I ought to check and report back on?
    Thanks in advance for and suggestions anyone can offer.
    * Aside: my iMac shows that the network security type is WPA2, not WEP, but it connects just fine anyway!

    Thanks again for your suggestions and instructions, now wish me luck!
    Yes, I do!!
    Never mind - Google is my friend!
    Sure is.
    2. how do I determine which of the two networks to use?
    Easy.. pick the best one. ie best signal strength and speed. 5ghz is better speed and poor range. 2.4ghz the opposite. At any point pick the best. Best signal / speed. Close to the router, it will be 5ghz.. further away 2.4ghz will be better. Try both.. it is a 10sec effort.
    The reason to do this manually is the TC is designed to swap channels automatically when there is interference.. It is also so the client on the computer (mac only) will auto swap between 2.4ghz and 5ghz for whichever is faster. So you have auto channels on top of auto band.. and even the Mac gets confused .. the PC has no idea.
    3. What channel should I set for the 5 ghz network?  (If I recall correctly, the TC is presently using channel 6 - does that apply to both networks?)
    No.. 2.4ghz uses channels 1-11 in USA.. 1-13 in Europe Australia..
    There are 3 non-overlapping channels, 1, 6, 11.. pick one and try it. Better still on the PC download the application inssider.. and you will see which channels are in use.. usually all of them if you live in a city in USA or moderately weathly country. Pick the channel with the lowest signal and use that. Since only those three channels are non-overlapping picking channel 9 for instance because nobody is using it, is pointless. Wireless on both channel 6 and channel 11 will then interfere with it. Use the lowest signal channel, out of the three, 1, 6, 11. (13 in Europe 14 in Japan).
    5ghz has a large range of channels, beginning from 36 up to 151 (at least in Australia) .. your country if different will vary. Use the lower channels if possible.. but there is not much interference yet on 5ghz. Usually you can just use 40 which meets lower end equipment. eg early versions of the AEBS and TC do not offer a large range of channels.
    4. Can I leave the security as WEP until I get everything working?  I understand that WPA2 is better
    WEP is equal to a strong door on a tent.. it is next to useless. It keeps out people who are not trying to get in. And offers 1min of difficulty to the guy with the knife. Use no security to do setup.. then use WPA2.. if something doesn't work with wpa2 you can use wpa at a pinch. Throw away any item not compliant with at least WPA. WEP is not a rated security for N wireless.. it could well not work or fall back to G wireless. So for testing just turn off security.. when it is working jump straight to wpa2.
    5. Why turn on the Guest account?  I don't see that it's used in the subsequent steps.
    If you ever want to write to or read the hard disk from PC.. you will have issues with security on Windows not matching the TC.. You do not need to use guest account (this is hard disk access not wireless btw).. if you never want to use hard disk. I added it for completeness. You can also fight your way through the difference in security between a Mac and a PC with win7 in particular.. loads of fun. If the disk is going to be on a private network and the TC has to be really, then use guest network. If anyone wants to break in it is no more difficult than holding down the reset for 1sec and it will reset all the passwords. So what more security do you need. Guest is fine.
    6. Will do.  I do have a workgroup specified on the 3 computers, but it's one that I created and it's not named <WORKGROUP>
    SMB uses workgroup name.. what name you use is irrelevant.. again this is for hard disk access. If you just want internet it is not necessary to worry about. Put into the workgroup name the name of YOUR workgroup. But it makes it appear in the windows networking as a network drive and that can be helpful.
    Somewhere on the Dell PC I've seen that both ipv6 and ipv4 show as not used, don't recall where I saw it though, and there did not appear to be any way to change it.
    You have internet connection it MUST use TCP/IP which has to be either ipv4 or ipv6 or both. That is how the internet works.. you cannot have neither. You change the settings in TCP/IP properties box associated with the wireless card.. go to device manager and the wireless device. Click on it and go to properties.. see TCP/IP and go the advanced.
    You need to learn to use the networking tools. 
    The key tool is ping.. that allows you to see if a device is available and responding on the network.
    Command window is same as terminal on the Mac.. (well near enough). You do low level commands.. both will do ping.
    You can also get all the settings in the network.
    Simple one is ipconfig in windows.. ifconfig in the mac.. that will show the IP address of all the network clients. In windows there is a full description if you do ipconfig /all
    These commands are very important to use and learn about.

  • Entire Apple wireless ecosystem completely borked?

    Hi,
    this is going to sound like a rant - it's not meant to.
    I once had a perfectly fast wireless network and over the last 6 months something has changed so that it is no longer fit for purpose. Admittedly I find networking one of the most challenging things to troubleshoot as an averagely IT-literate domestic computer user.
    So here goes to try to explain my issues:-
    I have an Airport Extreme (Simultaneous Dual-Band) with version 7.4.2 software installed and running WPA 2 Personal in Bridge mode. The AE is attached to a low-end Cisco/Linksys ADSL 2+ modem (G spec) which has wireless switched off so as to leave this all to the AE. I'd ideally like to figure out how to get the Cisco to behave only as a DSL modem and for the AE to handle the DHCP and NAT. However this proved to be beyond me and is out of scope of this discussion.
    I've got my iMac plugged directly into the AE (ethernet). Internet speeds seem to be fine for my area in the iMac (only fine, but that's another issue between me and my ISP - Demon).
    However from the MacBook Pro downstairs in the kitchen, the speed of access to the internet is shockingly slow. I can restore it a reasonable speed by power cycling the AE every 2-3 days.
    The Apple TV (160 GB, v2.4) currently fails to see the network at all. However if I connect it via ethernet to a Airport Express (N) 2 feet away it works reasonably well. Again, speeds are variable but usually improved when I power cycle the the AE.
    Lastly we have a couple of iPhones in the house (software 3.1.2) and wifi speeds (e.g. picking up email) are not what they used to be.
    So - what is the root cause of these issues? Is it the v7.4.2 software on the AE? Would you recommend me ditching this and reverting to 7.4.1 and if so is this likely to cause any problems?
    I also get a sense that speeds get worse in the evening and without intervention on my part will be improved in the morning. I figure that's in ISP issue.
    Anyone willing to point an enthusiastic Apple acolyte in the right direction?
    Regards
    Steffan

    Hi all,
    thanks for your replies.
    I used AirRadar and got the following output:-
    Name Enc Type MAC Address Channel Signal Signal Avg Signal Max Last Seen
    KandS Net WPA2, WPA 00:24:36:A6:F0:A0 36 86% 86% 88% 27/Oct/2009 20:09:31
    KandS Net WPA2, WPA 00:24:36:A6:F0:9F 11 84% 83% 85% 27/Oct/2009 20:09:31
    SolosW_AP None 00:22:6B:E3:FB:1D 2 71% 73% 81% 27/Oct/2009 20:09:31
    BTHomeHub-4AD6 WEP 00:14:7F:7E:87:14 7 35% 34% 36% 27/Oct/2009 20:09:31
    BTHomeHub2-56W3 WPA2, WPA 00:23:4E:A5:9B:A9 6 31% 26% 36% 27/Oct/2009 20:09:31
    BTHomeHub2-QHGM WPA2, WPA 00:24:2B:5E:F4:CA 1 28% 22% 28% 27/Oct/2009 20:09:31
    SitecomAP WPA 00:0C:F6:2B:2C:56 11 27% 27% 27% 27/Oct/2009 20:09:31
    CKnet WPA2 00:1F:33:01:70:3E 11 26% 25% 28% 27/Oct/2009 20:09:31
    BTHomeHub-CE09 WEP 00:1D:68:7B:D3:4F 1 25% 22% 25% 27/Oct/2009 20:09:31
    Thomson6D116A WPA, WPA2 00:1F:9F:48:AC:1B 1 24% 24% 27% 27/Oct/2009 20:09:31
    SKY22989 WPA 00:18:4D:41:52:4E 11 24% 25% 27% 27/Oct/2009 20:09:31
    I am KandS Net on dual bands with channels 36 (5 GHz) and 11 (2.4 GHz). Looks like there three others using channel 11 on the 2.4 GHz band (SitecomAP, CKNet & SKY22989).
    Have switched my 2.4 GHz to channel 13 and will see what that does (not used by any other base station).
    I do have wireless house phones situated close to my AE upstairs and the MBP in the kitchen, but they have been in place long before I had these problems.
    Will let you know if things improve.
    Thanks again for your suggestions.
    Regards
    Steffan
    Message was edited by: Steff Stringer
    Message was edited by: Steff Stringer

  • Controlling video ramping and making it smooth

    Hi. I wondered if anyone could point me in the direction of a good tutorial on video ramping, or explain how to do it well in laymans terms?
    I have tried using the stopwatch option on the slip slide tool, but am unclear how to really control it the way that I want. Say I want variable points of slowing down and speeding up within the clip. How do I control this without ending up with very slow motion at one end and extremely quick motion at the other. In experimenting with the stopwatch, I always end up with each succesive point building upon the previous, where I would rather reset at each succesive clip. Perhaps i am misunderstanding the values...?
    What I want to do is slow a real time sequence of someon sitting in a chair down to about half speed, and then speed it up again as they stand and walk away ending up at about 500% speed which should continue into the next clip and then slow down again smoothly to half speed as they pick something up from a table.
    Please help.
    Thanks

    http://www.kenstone.net/fcphomepage/fcp_4_timeremap.html
    Should get you on your way.
    Jerry

Maybe you are looking for

  • Bundle Patch 03 for OIM 11.1.1.5.0 Error

    I am patching OIM 11.1.1.5.0 to 11.1.1.5.3 using patch number 13704894. I am getting the below error while doing the post install script patch_oim_wls.sh Error is contextdataupgrade: BUILD FAILED */oracle/Oracle/Middleware/Oracle_IDM1/server/setup/de

  • Cost of goods sold entry in PGI based on components of the main material.

    Hi  friends, Suppose material A is assembled using components B, C & D, during PGI of material A is it possible to generate an accounting entry at the component level. i.e accounting entry with debit entries of the cost of B,C & D Please advise. Rega

  • Scenario: SAP  Tables Data to XML File

    Hi , I need to create a Xml file at inbound  by taking input as SAP Tables Data at outbound. What are adapters to be used at outbound and inbound interfaces. Please correct me if iam wrong. At outbound side iam taking jdbc adapter and at inbound side

  • OID connector install

    Prior to deploying the OID connector I created user defined fields for trusted resource reconciliation. I'm now looking to create OID entries for the users I created in OIM. Based on the warning I get attempting to deploy the connector I assume it ex

  • Reg: Tables for Batchman jobs

    Hi Experts , Is there any table which gives the information about scheduling of batchman jobs i.e. table should give the list of the batchman jobs that are scheduled daily, weekly, monthly. I found some tables but these tables(J_5H1_RUNTIME, J_5H1_BW