Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8702491
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T02:40:06+00:00 2026-06-13T02:40:06+00:00

I have a program where camera.position.[x|y|z] changes according to mouse position. This is verified

  • 0

I have a program where camera.position.[x|y|z] changes according to mouse position. This is verified by this console output:

enter image description here

However, the rendering of the object at which the camera is looking, doesn’t change. It stands still, as can be seen here:

https://dl.dropbox.com/u/2070405/stackoverflow2/index.html

How do I best approach debugging such behavior?

The program consists of index.html, js/main.js, js/myLibs/dragPanControls.js*, js/require.js, js/libs/three.js/build/three.js

This is main.js:

// CONFIGURE require.js BEFORE LOADING MODULES:

requirejs.config({
    shim: {
        'libs/three.js/build/three': {
            deps: [],
            exports: 'three' //'three' will not be accessible, but any values that three.js writes to the global object will become available to me if I import 'three'.
            /*init: function () {
                // if I want 'three' to actually refer to something, I can do so by returning whatever I want it to refer to, in this init function
                console.log("init three. Is THREE available? ", THREE);
                return this;
            }*/
        }
    }
});


// NOW START LOADING MODULES:

require(["myLibs/dragPanControls", "libs/three.js/build/three", "myLibs/testlib"], function(DPC, three, testlib) {
    console.log("Function call called after all modules are loaded and accessible");


// HELLO WORLD EXAMPLE:

    var camera, scene, renderer;
    var geometry, material, mesh;

    init();
    animate();

    function init() {

        camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000);
        camera.position.z = 1000;

        scene = new THREE.Scene();

        geometry = new THREE.CubeGeometry(200, 200, 200);
        material = new THREE.MeshBasicMaterial({
            color: 0xff0000,
            wireframe: true
        });

        mesh = new THREE.Mesh(geometry, material);
        scene.add(mesh);

        renderer = new THREE.CanvasRenderer();
        renderer.setSize(window.innerWidth, window.innerHeight);

        document.body.appendChild(renderer.domElement);

        console.log("DPC? ", DPC);
        console.log("testlib.success? ", testlib.success);
        //console.log("DragPanControls? ", DragPanControls);
        console.log("DPC.DragPanControls? ", DPC.DragPanControls);
        cameraControls  = new DPC.DragPanControls(camera);

    };

    function animate() {

        // note: three.js includes requestAnimationFrame shim
        requestAnimationFrame(animate);

        //mesh.rotation.x += 0.01;
        //mesh.rotation.y += 0.02;

        cameraControls.update();

        console.log("camera.position.x: ", camera.position.x);

        renderer.render(scene, camera);

    };

});

This is js/myLibs/dragPanControls.js:

/** @namespace */
define(["../libs/three.js/build/three"],
    function () {

        // Setup work:

        var DragPanControls;


        DragPanControls = function(object, domElement)
        {
            console.log("drapancontrols kan finde THREE? ", THREE);

            this._object    = object;
            this._domElement= domElement || document;

            // parameters that you can change after initialisation
            this.target = new THREE.Vector3(0, 0, 0);
            this.speedX = 0.03;
            this.speedY = 0.03;
            this.rangeX = -40;
            this.rangeY = +40;

            // private variables
            this._mouseX    = 0;
            this._mouseY    = 0;

            var _this   = this;
            this._$onMouseMove  = function(){ _this._onMouseMove.apply(_this, arguments); };
            this._$onTouchStart = function(){ _this._onTouchStart.apply(_this, arguments); };
            this._$onTouchMove  = function(){ _this._onTouchMove.apply(_this, arguments); };

            this._domElement.addEventListener( 'mousemove', this._$onMouseMove, false );
            this._domElement.addEventListener( 'touchstart', this._$onTouchStart,false );
            this._domElement.addEventListener( 'touchmove', this._$onTouchMove, false );
        }

        DragPanControls.prototype.destroy   = function()
        {
            this._domElement.removeEventListener( 'mousemove', this._$onMouseMove, false );
            this._domElement.removeEventListener( 'touchstart', this._$onTouchStart,false );
            this._domElement.removeEventListener( 'touchmove', this._$onTouchMove, false );
        }

        DragPanControls.prototype.update    = function(event)
        {
            this._object.position.x += ( this._mouseX * this.rangeX - this._object.position.x ) * this.speedX;
            this._object.position.y += ( this._mouseY * this.rangeY - this._object.position.y ) * this.speedY;
            this._object.lookAt( this.target );

            //console.log("this._mouseX: ", this._mouseX);
            //console.log("this.rangeX: ", this.rangeX);

            //console.log("this._object.position.x: ", this._object.position.x);
            //console.log("this._object.position.y: ", this._object.position.y);
        }

        DragPanControls.prototype._onMouseMove  = function(event)
        {
            this._mouseX    = ( event.clientX / window.innerWidth ) - 0.5;
            this._mouseY    = ( event.clientY / window.innerHeight) - 0.5;
        }

        DragPanControls.prototype._onTouchStart = function(event)
        {
            if( event.touches.length != 1 ) return;

            // no preventDefault to get click event on ios

            this._mouseX    = ( event.touches[ 0 ].pageX / window.innerWidth ) - 0.5;
            this._mouseY    = ( event.touches[ 0 ].pageY / window.innerHeight) - 0.5;
        }

        DragPanControls.prototype._onTouchMove  = function(event)
        {
            if( event.touches.length != 1 ) return;

            event.preventDefault();

            this._mouseX    = ( event.touches[ 0 ].pageX / window.innerWidth ) - 0.5;
            this._mouseY    = ( event.touches[ 0 ].pageY / window.innerHeight) - 0.5;
        }

        // Return module:
        return {
            DragPanControls: DragPanControls
        };
    }
);

*kindly lended from jeromeetienne

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T02:40:08+00:00Added an answer on June 13, 2026 at 2:40 am

    You are using code you copied from the net that was designed to work with an older version of the library.

    Instead, use a any one of a number of camera controllers available in the three.js examples/js/controls directory. For example:

    controls = new THREE.OrbitControls( camera );
    

    These controls are not part of the library as of r.52, so you will have to include the source explicitly.

    Here is a Fiddle that shows the use of a camera controller: http://jsfiddle.net/WV49w/3/

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

If my program wants to have a feature which need to access Camera and
I'm writing this Java program in which I have a JFrame and a Thread.
I have a program that gets the FOV angle of the device's rear-facing camera,
I have program that has a variable that should never change. However, somehow, it
I have program, that must interact with a console program before my program can
I have a program which creates JButtons which are then added to a JPanel
I have a 3D model which has position, uv, normal, indices info. I need
I am creating a program to talk to a IP Camera, of this model:
i am developing a program which uses the android camera to take pictures. but
I wish to program with the Kinect ToF camera, however I am not certain

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.