Collisions (Separating Axis Theorem)

Hi,
I'm working on a 2D game, it's top-down like GTA2, but I'm havinfgproblems with the collision detector. I know there are a lot of posts about collision already but they didn't help me much. I'm using the separating axis theorem (explained here: http://www.harveycartel.org/metanet/tutorials/tutorialA.html#section1) and most of the code is inspired by http://www.codeproject.com/cs/media/PolygonCollision.asp .
Separating axis theorem:
find all axis perpendicular to all the edges of both objects,
project both objects on the axis,
if there is an axis where the projections do not overlap, then the objects do not overlap.
The problem is that I think my code should work. And guess what, it doesn't. I checked the code 30 times this weekend but maybe there is some tiny mistake I overlook each time..
When I run the program with 6 objects I get this:
1 2 3 4 5 6
1: - 0 0 0 0 0
2: 0 - 1 0 0 0
3: 0 1 - 0 0 0
4: 0 0 0 - 0 0
5: 0 0 0 0 - 0
6: 0 0 0 0 0 - (1=intersect, 0=doesn't intersect)
but this is completely wrong. You can run the program yourself to see the exact locations of the objects.
1 is the triangle at the top,
2 and 3 are the triangles who share an edge
4 is the one on the left intersecting with 3
5 is the triangle on the right
6 is the parallelogram
But it really gets weird when I add a 7th object (the one in the comments):
1 2 3 4 5 6 7
1: - 0 0 0 0 0 0
2: 0 - 0 0 0 0 0
3: 0 0 - 0 0 0 0
4: 0 0 0 - 0 0 0
5: 0 0 0 0 - 0 0
6: 0 0 0 0 0 - 0
7: 0 0 0 0 0 0 -
Now 2 and 3 don't intersect anymore! They didn't change I just added another object.
I'm adding a short explanationof all the classes and the code itself. I know it's a lot of code but I added all the test classes so you can just run Test.Test
I hope someone can help me with this.
Thanks,
El Bandano
_<h5>package CollisionDetector:</h5>_
<h6>CollisionDetector</h6>
The class that is supposed to check for collisions. It will take 2 Props and return a CollisionResult
<h6>CollisionResult</h6>
A small class with 2 public fields. For now only the boolean Intersect matters.
<h6>Interval</h6>
Another small class that represents an interval of floats. It's pretty simple. Distance should return something negative if 2 intervals overlap.
_<h5>package World</h5>_
<h6>MovableProp</h6>
An interface of an object. All objects should be convex.
<h6>Vector2D</h6>
A 2D-vector. It has an x and a y value (floats) and some simple methods. a 2D vector can represent a point or an edge/axis. For a point the x and y are the coordinates. For an axis you need a normalized vector (x^2+y^2=1) and the x and y are coordinates on a parrallell line through (0,0).
_<h5>package Test</h5>_
<h6>Test</h6>
The main class. It makes some objects, prints a matrix showin which intersect eachother and shows a window with all objects.
<h6>TestMovProp</h6>
A basic implementation of MovableProp.
<h6>TestPanel</h6>
A panel that draws MovableProp.
_<h5>package CollisionDetector:</h5>_
<h6>CollisionDetector</h6>
package CollsisionDetector;
import World.MovableProp;
import World.Vector2D;
import java.util.ArrayList;
public class CollisionDetector {
    public CollisionDetector(){
    public CollisionResult DetectCollision(MovableProp propA, MovableProp propB) {
        CollisionResult result = new CollisionResult();
        result.Intersect = true;
        result.WillIntersect = true;
        Vector2D[] edges = UniqueEdges(propA, propB);
        // loop through the edges
        // find an axis perpendicular to the edge
        // project the props on the axis
        // check wether they intersect on that axis
        for (Vector2D edge: edges){
            Vector2D axis = edge.getPerpendicular();
            Interval intA = projectPointsOnAxis(propA.getCoordinates(), axis);
            Interval intB = projectPointsOnAxis(propB.getCoordinates(), axis);
            if (intA.distance(intB) > 0)
                result.Intersect = false;
        return result;
    public Interval projectPointsOnAxis(Vector2D[] points, Vector2D axis){
        Interval i = new Interval();
        for (Vector2D p: points)
            i.add(projectPointOnAxis(p, axis));
        return i;
    public float projectPointOnAxis(Vector2D point, Vector2D axis){
        // axis <-> y=a*x
        float a  = axis.y / axis.x;
        // line <-> y=(-a/1)*x+b
        float a2 = -axis.x / axis.y;
        // b = y-a2*x
        float b = point.y - a2*point.x;
        // y = a *x
        // y = a2*x + b
        // => a*x = a2*x + b
        float x = b/(a-a2);
        float y = a*x;
        // is there a better way to do this?
        return new Float(Math.sqrt(x*x + y*y)).floatValue();
     * Put all edges in 1 array, eliminate doubles (parallels).
    public Vector2D[] UniqueEdges(MovableProp propA,MovableProp propB){
        Vector2D[] aEdges = propA.getEdges();
        Vector2D[] bEdges = propB.getEdges();
        ArrayList<Vector2D> tmp = new ArrayList<Vector2D>();
        for (Vector2D v: aEdges){
            tmp.add(v);
        for (Vector2D v: bEdges){
           if (! tmp.contains(v))
                tmp.add(v);
        return tmp.toArray(new Vector2D[tmp.size()]);
}<h6>CollisionResult</h6>
package CollsisionDetector;
import World.Vector2D;
public class CollisionResult {
    public boolean WillIntersect;
    public boolean Intersect;
    public Vector2D MinimumTranslationVector;
    public CollisionResult() {
}<h6>Interval</h6>
package CollsisionDetector;
public class Interval {
    public float min;
    public float max;
    public Interval() {
        min = Float.MAX_VALUE;
        max = Float.MIN_VALUE;
    public void add(float f){
        // no 'else'! In an empty interval both will be true
        if (f>max)
            max = f;
        if (f<min)
            min = f;
    public float distance(Interval interval){
        if (this.min < interval.min) {
            return interval.min - this.min;
        } else {
            return this.min - interval.min;
}_<h5>package World</h5>_
<h6>MovableProp</h6>
package World;
public interface MovableProp {
    public int getNPoints();
    public Vector2D[] getEdges();
    public Vector2D[] getCoordinates();
}<h6>Vector2D</h6>
package World;
public class Vector2D {
    public float x;
    public float y;
    public Vector2D(float x, float y) {
        this.x = x;
        this.y = y;
    public boolean equals(Object obj){
        if (!(obj instanceof Vector2D)){
            return false;
        }else
            return (this.x == ((Vector2D)obj).x && this.y == ((Vector2D)obj).y);
    public String toString() {
        return ("Vector2D  x=" + x + " ,  y=" + y);
    public void normalize(){
        if (x*x + y*y != 1){
            float x2 = x;
            x /= Math.sqrt(x2*x2+y*y);
            y /= Math.sqrt(x2*x2+y*y);
    public Vector2D getPerpendicular(){
        Vector2D per = new Vector2D(-y,x);
        per.normalize();
        return per;
}_<h5>package Test</h5>_
<h6>Test</h6>
package Test;
import CollsisionDetector.CollisionDetector;
import World.MovableProp;
import java.awt.Polygon;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.JFrame;
public class Test {
    public static void main(String args[]) {
        CollisionDetector detect = new CollisionDetector();
        float[] x = new float[3];
        float[] y = new float[3];
        ArrayList<MovableProp> list = new ArrayList<MovableProp>();
        x[0] = 200; x[1] = 300; x[2] = 500;
        y[0] = 400; y[1] = 200; y[2] = 300;
        list.add(new TestMovProp(x,y));
        x[0] = 300; x[1] = 500; x[2] = 600;
        y[0] = 400; y[1] = 400; y[2] = 500;
        list.add(new TestMovProp(x,y));
        x[0] = 200; x[1] = 300; x[2] = 600;
        y[0] = 600; y[1] = 400; y[2] = 500;
        list.add(new TestMovProp(x,y));
        x[0] = 100; x[1] = 200; x[2] = 300;
        y[0] = 800; y[1] = 500; y[2] = 700;
        list.add(new TestMovProp(x,y));
        x[0] = 600; x[1] = 600; x[2] = 700;
        y[0] = 400; y[1] = 700; y[2] = 500;
        list.add(new TestMovProp(x,y));
//        x[0] = 100; x[1] = 001; x[2] = 900;
//        y[0] = 001; y[1] = 900; y[2] = 500;
//        list.add(new TestMovProp(x,y));
        x = new float[4];
        y = new float[4];
        x[0] = 450; x[1] = 550; x[2] = 500; x[3] = 400;
        y[0] = 200; y[1] = 250; y[2] = 650; y[3] = 600;
        list.add(new TestMovProp(x,y));
        int n = list.size();
        boolean[][] matrix = new boolean[n][n];
        for (int i=0; i<n; i++){
            for (int j=0; j<n; j++){
                if (i!=j)
                matrix[i][j] = detect.DetectCollision(list.get(i),list.get(j)).Intersect;
        System.out.print("  ");
        for (int i=0; i<n; i++){
            System.out.print("  " + (i+1));
        for (int i=0; i<n; i++){
            System.out.print("\n" + (i+1) + ":  ");
            for (int j=0; j<n; j++){
                if (i==j)
                    System.out.print("-  ");
                else if (matrix[i][j])
                    System.out.print("1  ");
                else
                    System.out.print("0  ");
        System.out.println();
        JFrame window = new JFrame();
        window.setDefaultCloseOperation(window.EXIT_ON_CLOSE);
        window.pack();
        window.setVisible(true);
        window.setContentPane( new TestPanel(list));
        window.pack();
}<h6>TestMovProp</h6>
package Test;
import World.MovableProp;
import World.Vector2D;
public class TestMovProp implements MovableProp{
    float[] X;
    float[] Y;
    Vector2D[] coor;
    public TestMovProp(float[] x, float[] y) {
        X=x; Y=y;
        coor = new Vector2D[getNPoints()];
        for(int i=0; i< getNPoints(); i++){
            coor[i] = new Vector2D(X, Y[i]);
public Vector2D[] getCoordinates(){
return coor;
public int getNPoints() {
return X.length;
public Vector2D[] getEdges() {
int n = getNPoints();
Vector2D[] v = new Vector2D[n];
for (int i=0; i<n-1; i++){
v[i] = new Vector2D(X[i]-X[i+1], Y[i]-Y[i+1]);
v[i].normalize();
v[n-1] = new Vector2D(X[0]-X[n-1], Y[0]-Y[n-1]);
v[n-1].normalize();
return v;
public String toString() {
String s = "\n";
for (Vector2D v: getCoordinates())
s += ("\n" + v);
return s;
<h6>TestPanel</h6>package Test;
import World.MovableProp;
import World.Vector2D;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Polygon;
import java.util.ArrayList;
import javax.swing.JPanel;
public class TestPanel extends JPanel {
public ArrayList<MovableProp> list;
public TestPanel(ArrayList<MovableProp> list) {
super();
this.list = list;
setPreferredSize(new Dimension(1000,850));
public void paint(Graphics g) {
super.paint(g);
for (MovableProp prop:list){
Vector2D[] coor = prop.getCoordinates();
int n = prop.getNPoints();
g.drawLine((int)coor[0].x, (int)coor[0].y, (int)coor[n-1].x, (int)coor[n-1].y);
for (int i=0; i<n-1; i++){
g.drawLine((int)coor[i].x, (int)coor[i].y, (int)coor[i+1].x, (int)coor[i+1].y);

.java wrote:
I have been search for what seems like hours, Nice try, but in less than 15 seconds I found a complete discussion on the subject.
and I still have not managed to find anybody or anything that can clearly answer these three questions:
1. What is SAT?
2. How does it apply to 2D collision detection? (How would it be different with 3D collision detection?)
3. How can this be implemented in Java using Shape objects?
Note: I am easily confused by geometric terminology.This really looks like a question you should have an answer for in your notes from class, or in your book. If not perhaps you need to go ask your teacher what it is and explain why you don't have it in your notes or book.

Similar Messages

  • Separating Axis Theorem (SAT)

    I have been search for what seems like hours, and I still have not managed to find anybody or anything that can clearly answer these three questions:
    1. What is SAT?
    2. How does it apply to 2D collision detection? (How would it be different with 3D collision detection?)
    3. How can this be implemented in Java using Shape objects?
    Note: I am easily confused by geometric terminology.

    .java wrote:
    I have been search for what seems like hours, Nice try, but in less than 15 seconds I found a complete discussion on the subject.
    and I still have not managed to find anybody or anything that can clearly answer these three questions:
    1. What is SAT?
    2. How does it apply to 2D collision detection? (How would it be different with 3D collision detection?)
    3. How can this be implemented in Java using Shape objects?
    Note: I am easily confused by geometric terminology.This really looks like a question you should have an answer for in your notes from class, or in your book. If not perhaps you need to go ask your teacher what it is and explain why you don't have it in your notes or book.

  • Remove thousands separator from chart (x, y axis)

    Dear all,
    my first application is almost completed, but some finishings are still missing.
    E.g. the display of the year in the chart contains thousands separator. How they can be removed or avoided? Any idea?
    Thank you so much!
    Mehtap

    Hi Tammy,
    thanks. But this does not seem to work for Calendar Year.

  • OBIEE 11G: Can I set limit on number of ticks only on horizontal axis and zoom in if I want to?

    Hello
    Is there a way I can restrict the total number of ticks on horizontal axis only? Say I want to set it to show only 24 ticks on horizontal axis. I am putting date and hour on the horizontal axis, if I take 3 dates of data, I will have 3X24 = 72 ticks on the chart, but I want the chart to show only 24 ticks. So it's pretty much ticks for 3 hours on the horizontal chart in this case.
    Can this be done?
    Second, if the first can be done, then can I then zoom in to any ticks on the horizontal axis, and it would show be the break down of this ticks, which is made up with 3 hour's performance separately?
    Thanks

    The zooming feature was ok, but what if I want to zoom in on just a specific area between the ticks when only 1 click?
    Any thoughts?

  • Problem accessing Application Ejb Jar files from Apache Axis jars

    I have deployed an EAR application, with a structure as shown below,
    MyApp.ear
    |____ MyApp_Ejb.jar
    |____ axis.war
    |_____ WEB-INF
    |_____ lib (This contains all axis specific jars)
    The application deploys just fine. But when i goto happyaxis.jsp and try to view all the web services that have been deployed. I get an exception "No provider type matches QName '{http://xml.apache.org/axis/wsdd/providers/java}SDL".
    Here SDL is a custom provider that i have written and all the required files for the provider are available in MyApp_Ejb.jar.
    I do not get as to why the axis.jar is not able to find classes in MyApp_Ejb.ear, when both these are in the same ear.
    Now i know i can add a utility jar to a war files classpath by adding a classpath line in the War file MANIFEST.MF. But since MyApp_Ejb.jar is defined as a Web Module this solution too doesnt help.
    Separating the provider related files from MyApp_Ejb.jar is not possible since there is too much dependance of other files within that jar.
    So i am looking for a solution where in i can continue to have MyApp_Ejb.jar as my ejb module as well as the axis related jars can find the required classes within MyApp_Ejb.jar. some way of sharing the ejb jar across to axis jars.
    Thanks in advance.
    Vicky

    I have deployed an EAR application, with a structure as shown below,
    MyApp.ear
    |____ MyApp_Ejb.jar
    |____ axis.war
    |_____ WEB-INF
    |_____ lib (This contains all axis specific jars)
    The application deploys just fine. But when i goto happyaxis.jsp and try to view all the web services that have been deployed. I get an exception "No provider type matches QName '{http://xml.apache.org/axis/wsdd/providers/java}SDL".
    Here SDL is a custom provider that i have written and all the required files for the provider are available in MyApp_Ejb.jar.
    I do not get as to why the axis.jar is not able to find classes in MyApp_Ejb.ear, when both these are in the same ear.
    Now i know i can add a utility jar to a war files classpath by adding a classpath line in the War file MANIFEST.MF. But since MyApp_Ejb.jar is defined as a Web Module this solution too doesnt help.
    Separating the provider related files from MyApp_Ejb.jar is not possible since there is too much dependance of other files within that jar.
    So i am looking for a solution where in i can continue to have MyApp_Ejb.jar as my ejb module as well as the axis related jars can find the required classes within MyApp_Ejb.jar. some way of sharing the ejb jar across to axis jars.
    Thanks in advance.
    Vicky

  • Camera Collision Detection - Is It Possible?

    Hi,
    I am making a 3D RPG game and I would like to know if it is possible to get collision detection on a camera created in Adobe Director 11.  I have my 3D character running through an underground maze and he detects correctly on the walls of the maze.  However, I also have a camera as a child to the character so this moves with him.  I have added a bounding-box to this camera but it still doesn't detect whereas the gunBB works fine, as does the characterBB.
    This is really confusing and I don't know what I am doing wrong.  Any help would be really appreciated!
    Thanks, Phil.

    Thanks for the reply.  It is not exactly what I am looking for as the script is different than the style I am using.  This is the script I have got so far, I have also added an extra camera to view what is happening.
    property pSprite, p3Dmember -- reference to the 3D member
    --property pLevel, maze -- Level
    --property pLeftArrow, pRightArrow, pDownArrow, pUpArrow -- arrow keys
    --property pCharacter -- character in the 3D world
    --property pTofuBB, pGunBB, gun --  character + gun
    --property gUseGun, hasGun
    --property pCamera, pCameraBoundingBox --camera and bounding box
    --property barrier,mountains,exitmaze
    --property door1, door2, turret, turretgun
    --property keylist, keypresslist -- for keys pressed
    --on beginSprite me
    --  -- define the 3D cast member
    --  p3Dmember = sprite(me.spriteNum).member
    --  -- reset the 3D world
    --  p3Dmember.resetWorld()
    --  pSprite = sprite(me.spriteNum)
    --  pCamera = pSprite.camera
    --  -- define level as 3DS level Plane - must all be defined after resetWorld()
    --  pLevel = p3Dmember.model("landscape")
    --  mountains = p3Dmember.model("mountains")
    --  turret = p3Dmember.model("turret")
    --  turretgun = p3Dmember.model("turretgun")
    --  maze = p3Dmember.model("maze")
    --  exitmaze = p3Dmember.model("exitmaze")
    --  pCharacter = p3Dmember.model("hero")
    --  gun = p3Dmember.model("gun")
    --  barrier = p3Dmember.model("barrier")
    --  door1 = p3Dmember.model("door1")
    --  door2 = p3Dmember.model("door2")
    --  -- stop hero walking biped animation
    --  pCharacter.bonesPlayer.pause()
    --  -- below for key control
    --  keylist = []
    --  keypresslist = []
    --  -- this sets up a list of keycodes to track.
    --  -- this code covers the arrow keys only, it could be changed to cover a full range of keys
    --  repeat with i = 123 to 126
    --    keylist[i] = i -- this creates a list of keycodes to track
    --    keypresslist[i] = 0 -- this creates a "last state" list that corresponds to the keycode.
    --    --keypresslist tracks the last known state of that key, so we can tell when a keypress has changed.
    --  end repeat
    --  -- key control end
    --  createBoundingBoxes
    --  createLight
    --end
    -- code used to create bounding boxes
    --on createBoundingBoxes
    --  -- create tofu bounding box for character
    --  tofuBB_MR = p3Dmember.newModelResource("tofuBox",#box)
    --  tofuBB_MR.height = 235
    --  tofuBB_MR.width = 235
    --  tofuBB_MR.length = 500
    --  pTofuBB = p3Dmember.newModel("tofuBox",tofuBB_MR)
    --  pTofuBB.worldPosition = pCharacter.worldPosition
    --  -- create parent child relationships
    --  pCharacter.addChild(pTofuBB, #preserveWorld)
    --  invisShader = p3Dmember.newShader("invisShader",#standard)
    --  invisShader.transparent = TRUE
    --  invisShader.blend = 50
    --  pTofuBB.shaderlist = p3Dmember.shader("invisShader")
    --  pCamera = p3Dmember.newCamera("camera")
    --  frontCam = p3Dmember.newCamera("frontCam")
    --  frontCam.fieldOfView = 35
    --  frontCam.transform.position = vector(-14150,-3100,-600)
    --  frontCam.transform.rotation = vector(90,0,180)
    --  pSprite.camera = p3Dmember.camera("frontCam")
    --  pCamera.fieldOfView = 75
    --  pCamera.transform.position = vector(500,1800,450) --450
    --  pCamera.transform.rotation = vector(90,0,180)
    --  pSprite.camera = p3Dmember.camera("camera")
    --  cameraModRes = p3Dmember.newModelResource("cameraModRes",#sphere)
    --  cameraModRes.radius = 200
    --  pCameraBoundingBox = p3Dmember.newModel("CameraBoundingBox",cameraModRes)
    --  pCameraBoundingBox.worldPosition = pCamera.worldPosition
    --  pCameraBoundingBox.shaderList = p3Dmember.shader("invisShader")
    --  pCamera.addChild(pCameraBoundingBox, #preserveWorld)
    --  pCharacter.addChild(pCamera,#preserveWorld)
    --  -- create gun bounding box
    --  gun.worldposition.z = gun.worldposition.z + 200
    --  gunMR = p3Dmember.newModelResource("gunSphere",#sphere)
    --  gunMR.radius = 218
    --  pGunBB = p3Dmember.newModel("gunSphere", gunMR)
    --  pGunBB.worldPosition = gun.worldPosition
    --  pGunBB.shaderList = p3Dmember.shader("invisShader")
    --  pGunBB.addChild(gun, #preserveWorld)
    --end
    -- code below used to light up level
    --on createLight
    --  -- create a point 'bulb' type light
    --  p3Dmember.newLight("Bulb Light", #point )
    --  -- position the light
    --  p3Dmember.light("Bulb Light").transform.position = vector(0,0,100)
    --  -- define light color and intensity
    --  p3Dmember.light("Bulb Light").color = rgb(255,255,255)
    --  -- Make the character model a parent of the light
    --  -- Bulb Light becomes a child of pCharacter
    --  -- This is done so that the light will always move
    --  -- with the character.
    --  pCharacter.addChild(p3Dmember.light("Bulb Light"),#preserveParent)
    --end
    --on keyUp me
    --  --pCharacter.bonesPlayer.pause()
    --  --if keypressed("s")
    --end
    --on keydown me
    --  if keypressed("c") then changeCamera
    --end
    --on changeCamera
    --  -- check the sprites camera and switch
    --  if pSprite.camera = p3Dmember.camera("frontCam") then
    --     pSprite.camera = p3Dmember.camera("camera")
    --     else
    --     pSprite.camera = p3Dmember.camera("frontcam")
    --     end if
    --end
    --on exitFrame me
    -- below detects which keys are pressed
    --repeat with i = 1 to keylist.count
    --inewstate= keypressed( keylist[i] )
    --if keypresslist[i] <> inewstate then -- this means the key changed status from whether it's up or down
    --if inewstate= 0 then
    -- they key was released
    --keyLastReleased = keylist[i]
    --if (keyLastReleased=123) then pLeftArrow = 0 -- 123 = left arrow key
    --if (keyLastReleased=124) then pRightArrow = 0 -- 124 = right arrow key
    --if (keyLastReleased=125) then
    --pDownArrow = 0 -- 125 = down arrow key
    --pCharacter.bonesPlayer.pause()
    --end if
    --if (keyLastReleased=126) then
    --pUpArrow = 0 -- 126 = up arrow key
    --pCharacter.bonesPlayer.pause()
    --end if
    --else
    -- the key was pressed
    --keyLastPressed = keylist[i]
    --if (keyLastPressed=123) then pLeftArrow = 1 -- 123 = left arrow key
    --if (keyLastPressed=124) then pRightArrow = 1 -- 124 = right arrow key
    --if (keyLastPressed=125) then pDownArrow = 1 -- 125 = down arrow key
    --if (keyLastPressed=126) then pUpArrow = 1 -- 126 = up arrow key
    --end if
    --keypresslist[i] = inewstate-- update so we remember its new state.
    --end if
    --end repeat
    -- by the time this repeat loop has finished, keypresslist will contain a complete index of what keys
    -- are held down, and which aren't.
    -- Note: most keyboards have a limit on how many keys they'll track simultaneously.
    --checkCollisions
    --characterMove
    -- gun collision start
    --if gUseGun = TRUE then
    --pTofuBB.addChild(pGunBB,#preserveParent)
    --pGunBB.worldPosition = pTofuBB.worldPosition
    --pGunBB.worldPosition.z = 500
    --pGunBB.worldPosition.x = pCharacter.worldPosition.x - 150 --50
    ---pGunBB.worldPosition.y = -860
    --pGunBB.rotate(0,0,-240)
    --pCharacter.bonesPlayer.pause()
    --gUseGun = FALSE
    --hasGun = TRUE
    --end if
    -- gun collision end
    --end
    --on characterMove
    -- if the right arrow is pressed,
    -- rotate the character 5 degrees about the z-axis
    --if pRightArrow then
    -- rotate character and camera
    --pCharacter.rotate(0,0,-2)
    --end if
    --if the left arrow is pressed,
    -- rotate character -5 degrees about the z-axis
    --if pLeftArrow then
    --pCharacter.rotate(0,0,2)
    --end if
    -- if the up arrow is pressed,
    -- move the character 5 pixels along the y-axis
    --if pUpArrow then
    --if (pcharacter.bonesPlayer.playing = 0) then
    --pCharacter.bonesplayer.loop = true
    --if (_key.shiftDown) then
    --pCharacter.bonesPlayer.playRate = 2
    --if (hasGun = TRUE) then -- running
    --pCharacter.bonesplayer.play("hero", 1, 6270, 8330, 1)
    --else
    --pCharacter.bonesplayer.play("hero", 1, 2067, 4130, 1)
    --end if
    --else
    --pCharacter.bonesPlayer.playRate = 1
    --if (hasGun = TRUE) then -- walking
    --pCharacter.bonesplayer.play("hero", 1, 4200, 6200, 1)
    --else
    --pCharacter.bonesplayer.play("hero", 1, 0, 2000, 1)
    --end if
    --end if
    --end if -- bonesPlayer playing
    --if (_key.shiftDown) then
    --pCharacter.translate(120,0,0)
    --else
    --pCharacter.translate(50,0,0)
    --end if
    --end if
    -- if the down arrow is pressed,
    -- move the character -5 pixels along the y-axis
    --if pDownArrow then
    --if (pcharacter.bonesPlayer.playing = 0) then
    --pCharacter.bonesplayer.loop = true
    --if (_key.shiftDown) then
    --pCharacter.bonesPlayer.playRate = 2
    --if (hasGun = TRUE) then -- running
    --pCharacter.bonesplayer.play("hero", 1, 6270, 8330, 1)
    --else
    --pCharacter.bonesplayer.play("hero", 1, 2067, 4130, 1)
    --end if
    --else
    --pCharacter.bonesPlayer.playRate = 1
    --if (hasGun = TRUE) then -- walking
    --pCharacter.bonesplayer.play("hero", 1, 4200, 6200, 1)
    --else
    --pCharacter.bonesplayer.play("hero", 1, 0, 2000, 1)
    --end if
    --end if
    --end if -- bonesPlayer playing
    --if (_key.shiftDown) then
    --pCharacter.translate(-120,0,0)
    --else
    --pCharacter.translate(-50,0,0)
    --end if
    --end if
    -- floor collision
    --thisPosn = pTofuBB.worldPosition
    -----thisPosn.z = 1000
    --tModelList = [pLevel, maze, door1, door2] -- removed wall as its no longer on level
    --tOptionsList = [#levelOfDetail: #detailed, #modelList: tModelList]
    --thisData = p3Dmember.modelsUnderRay(thisPosn,vector(0,0,-1),tOptionsList)
    --if thisData.count then
    --totalCount = thisData.count
    --repeat with dataIndex = 1 to totalCount
    --terrainPosn = thisData[dataIndex].isectPosition
    --- if (thisData[dataIndex].model = pLevel) then
    --tDiff = (terrainPosn.z - pTofuBB.worldPosition.z) + 375
    --pCharacter.translate(0,0,tDiff,#world)
    --exit repeat
    --end repeat
    --end if
    --end
    --on checkCollisions
    --tModelList = [pGunBB, barrier, mountains, maze, exitmaze, turret, turretgun]
    --tOptionsList = [#maxNumberOfModels: 2, #levelOfDetail: #detailed, #modelList: tModelList, #maxDistance: 300]
    -- make 4 rays around character checking for collisions, 90 degrees apart
    --repeat with i = 1 to 18
    --pCharacter.rotate(0,0,20,#self)
    --returnData = p3Dmember.modelsUnderRay(pCharacter.worldPosition,pCharacter.transform.xAxis,tOptionsList )
    --if (returnData.count) then
    -- first in array is closest
    --checkObjectFoundDistance(returnData[1])
    --end if
    --end repeat
    --end
    --on checkObjectFoundDistance thisData -- check distance from collision with objects
    --dist = thisData.distance
    -- check if distance is less than width of bounding box
    --if (dist < 150) then
    --case thisData[#model].name of
    --"gunSphere":
    --gUseGun = TRUE
    --"barrier":
    -- get distance of penetration
    --diff = 150 - dist
    -- calculate vector perpend icular to the wall's surface to move the character
    -- using the #isectNormal property
    --tVector = thisData.isectNormal * diff
    -- move the character in order to resolve the collision
    --pCharacter.translate(tVector,#world)
    --end case
    --end if
    --if (dist < 150) then
    --case thisData[#model].name of
    --"gunSphere":
    --gUseGun = TRUE
    --"mountains":
    -- get distance of penetration
    --diff = 150 - dist
    -- calculate vector perpend icular to the wall's surface to move the character
    -- using the #isectNormal property
    --tVector = thisData.isectNormal * diff
    -- move the character in order to resolve the collision
    --pCharacter.translate(tVector,#world)
    --end case
    --end if
    --if (dist < 150) then
    --case thisData[#model].name of
    --"gunSphere":
    --gUseGun = TRUE
    --"maze":
    -- get distance of penetration
    --diff = 150 - dist
    -- calculate vector perpend icular to the wall's surface to move the character
    -- using the #isectNormal property
    --tVector = thisData.isectNormal * diff
    -- move the character in order to resolve the collision
    --pCharacter.translate(tVector,#world)
    --end case
    --end if
    --if (dist < 150) then
    --case thisData[#model].name of
    --"gunSphere":
    --gUseGun = TRUE
    --"exitmaze":
    -- get distance of penetration
    --diff = 150 - dist
    -- calculate vector perpend icular to the wall's surface to move the character
    -- using the #isectNormal property
    --tVector = thisData.isectNormal * diff
    -- move the character in order to resolve the collision
    --pCharacter.translate(tVector,#world)
    --end case
    --end if
    --if (dist < 150) then
    --case thisData[#model].name of
    --"gunSphere":
    --gUseGun = TRUE
    --"turret":
    -- get distance of penetration
    --diff = 150 - dist
    -- calculate vector perpend icular to the wall's surface to move the character
    -- using the #isectNormal property
    --tVector = thisData.isectNormal * diff
    -- move the character in order to resolve the collision
    --pCharacter.translate(tVector,#world)
    --end case
    --end if
    --if (dist < 150) then
    --case thisData[#model].name of
    --"gunSphere":
    --gUseGun = TRUE
    --"turretgun":
    -- get distance of penetration
    --diff = 150 - dist
    -- calculate vector perpend icular to the wall's surface to move the character
    -- using the #isectNormal property
    --tVector = thisData.isectNormal * diff
    -- move the character in order to resolve the collision
    --pCharacter.translate(tVector,#world)
    --end case
    --end if
    --end

  • Axis in Pie Graph

    Hi,
    Can we show the X-Axis and Y-Axis for a Pie-Graph??
    I am able to display the Pie-Graph for a given combination through VO but in my display i am not able to see the X-Axis and Y-Axis lines.
    only the graph is getting displayed without the lines.
    I have tried by setting in property inspector the following properties to true.
    "Data Axis Scale From Zero" and "Display Data Markers" both to true
    But still i am not able to see the lines in my screen.
    Can i get some help from anyone regarding this???
    Thanks in advance

    No, there is no provision of showing x and y axis in pie graph. I am still not able to understand how do you want to incorporate and map date on x,y axis along with a pie graph in between. All you can do is to plot a bar graph separately to show the data along x, y axis.
    --Shiv                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Flex Date Time Axis Not showing Correct Values

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
       xmlns:s="library://ns.adobe.com/flex/spark"
       xmlns:mx="library://ns.adobe.com/flex/halo" width="700" height="500">
    <fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
    <![CDATA[
    import mx.collections.ArrayCollection;
    [Bindable]
    public var stockDataAC:ArrayCollection = new ArrayCollection( [
    {date: "2005, 7, 27", close: 41.71},
    {date: "2005, 7, 28", close: 42.21},
    {date: "2005, 3, 29", close: 42.11},
    {date: "2005, 1, 1", close: 42.71},
    {date: "2005, 10, 2", close: 42.99},
    {date: "2005, 9, 3", close: 44} ]);
    public function myParseFunction(s:String):Date {
    // Get an array of Strings from the comma-separated String passed in.
    var a:Array = s.split(",");
    // Create the new Date object. Subtract one from the month property.
    // The month property is zero-based in the Date constructor.
    var newDate:Date = new Date(a[0],a[1]-1,a[2]);
    return newDate;
    ]]>
    </fx:Script>
    <mx:Panel title="DateTimeAxis Example" height="100%" width="100%">
    <mx:LineChart id="mychart" height="100%" width="100%"
      paddingRight="5" paddingLeft="5"
      showDataTips="true" dataProvider="{stockDataAC}">
    <mx:horizontalAxis>
    <mx:DateTimeAxis dataUnits="days" parseFunction="myParseFunction"/>
    </mx:horizontalAxis>
    <mx:verticalAxis>
    <mx:LinearAxis baseAtZero="false" />
    </mx:verticalAxis>
    <mx:series>
    <mx:LineSeries yField="close" xField="date" displayName="AAPL"/>
    </mx:series>
    </mx:LineChart>
    </mx:Panel>
    </s:Application>
    the above code shows reverse values of date on date axis i.e it should show 01/05 2/05 3/05 4/05 but its showing 10/05 09/05 08/05 07/05 on date axis.
    Please help.

    I've seen this bug in Adobe's JIRA so nothing much you can do for now   DateTimeAxis is quite bugged.
    By the way, is it me or mx:datavisu is on low priority these days ? Maybe the team is working on a spark version ?
    https://bugs.adobe.com/jira/browse/FLEXDMV-2231

  • Non uniform intervals in the X-axis of LineChart

    Hi,
    I am using a Flex3 Line chart which takes data from an External XML file.
    But I dont get the DataTip points correctly if i give some numeric values in the X values and
    even then, the values in the X-axis starts from the "0"th position and the interval between the "0"th & 1st value (in X axis) is half of the others (shown in red bar in the attached image) and also for the last one.
    How to have the uniform intervals in the X-axis so that the DataTip shows correct values as in the data?
    Below is the MXML & the XML I use:
    The MXML:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" backgroundColor="0xFFFFFF" creationComplete="fetchData();">
    <mx:HTTPService id="myServ" url="TempChartData.xml" fault="faultHandler(event)"/>
    <mx:Script>
    <![CDATA[
         import mx.controls.Alert;
         import mx.rpc.events.*;    
         import mx.controls.ToolTip;
         //Trigger the HTTPService to fetch data from the back-end
         public function fetchData():void
              myServ.send();
         public function faultHandler(event:FaultEvent):void
              Alert.show(event.fault.message);
    ]]>
    </mx:Script>
    <mx:LineChart id="myChart" width="100%" height="100%" showDataTips="true" dataProvider="{myServ.lastResult.tasks.task}">
         <mx:horizontalAxis>
              <mx:CategoryAxis id="myHorzAxis" categoryField="name" title="My Tasks"/>
         </mx:horizontalAxis>
         <mx:verticalAxis>
              <mx:LinearAxis title="My Data Values"/>
         </mx:verticalAxis>
         <mx:horizontalAxisRenderers>
              <mx:AxisRenderer axis="{myHorzAxis}" labelRotation="45"/>
         </mx:horizontalAxisRenderers>
         <mx:series>
              <mx:LineSeries id="myLineSeries1" xField="name" yField="Value">
              </mx:LineSeries>
         </mx:series>
    </mx:LineChart>
    </mx:Application>
    TempChartData.XML
    <?xml version="1.0" encoding="utf-8"?>
    <tasks usl="25" lsl="-75">
        <task name="1">
            <Value>-115</Value>       
        </task>
        <task name="2">
            <Value>-112</Value>       
        </task>
        <task name="3">
            <Value>-100</Value>       
        </task>   
        <task name="4">
            <Value>0</Value>       
        </task>
        <task name="5">
            <Value>-74</Value>       
    </task>
        <task name="6">
        <Value>0</Value>
        </task>
        <task name="7">
        <Value>-67</Value>
        </task>
    </tasks>

    Please do not post VIs with infinite loops (at least without informing us that they work that way)! The loop should have a stop button on the front panel wired to the stop terminal in the loop. If you use the Abort button to stop the VI, the file never gets closed.
    A long time Forum participant has said that: "Using the Abort button to stop a VI is like using a tree to stop a car. It works but may have unintended consequences!"
    To get the format you want after reading you need to convert the first column in the spreadsheet file from a date-time string to a numeric which can be interpretted by the graph as a timestamp. With the format you have chosen for the file it is somewhat complicated. Spend some time reading the detailed help for the timestamp and string format functions.
    In the VI attached the file is read as string. The first column is separated into 7 numerical values to create a date-time record (cluster) which is then converted to a timestamp and then to DBL. The second column is converted to an array of DBL. The arrays are bundled and connected to an XY graph. The graph X-Axis is formatted as Absolute Time, AM/PM, HH:MMS. You can add the fractional seconds if you want but the scale starts to get crowded.
    Also, the error out wires from the property nodes used to initialize the graphs should be wired to the loop to assure that they execute first.
    Lynn
    Attachments:
    test_3.2.vi ‏26 KB

  • Using ModelsUnderRay Collision detection

    Ok first things first. I know you guys who have been reading
    my other post is going to get confused after reading this post so
    let me make myself clear. First yes I was previously trying to
    Havok, but I could not get my car to work with it. So This is why I
    am now asking stuff about ModelsUnderRay collision detection.
    Second, I found this tutorial at
    http://www.fbe.unsw.edu.au/learning/director/,
    and all things seem to go pretty good with using the max File the
    tutorial uses. Meaning I have not tried this on my car as of yet.
    In addition, considering that things seem to work with the
    tutorial, I now came up with a new question. Basically, if I am
    correct, I think by using the code below, this is not going to work
    with my car when the car is going up a hill. I conclude this by
    knowing that the tutorial just uses a character, meaning it is not
    like a using something like a car that has a chassis and 4 wheels.
    So my question is this... How can I get the chassis to follow the
    angle of the hill if I am using a behaviour that looks something
    like this...
    on collisionDetect me
    -- create a list to store collision data created by
    modelsUnderRay
    -- cast ray to left
    collisionList =
    p3Dmember.modelsUnderRay(pCharacter.worldPosition, \
    -pCharacter.transform.yAxis,#detailed)
    -- if models picked up by ray, then activate checkForCollion
    -- handler and send the collisionList as a parameter
    if (collisionList.count) then
    me.checkForCollision(collisionList[1])
    -- cast ray to right
    collisionList =
    p3Dmember.modelsUnderRay(pCharacter.worldPosition, \
    pCharacter.transform.yAxis,#detailed)
    -- if models picked up by ray, then check for collision
    if (collisionList.count) then
    me.checkForCollision(collisionList[1])
    -- cast ray forward
    collisionList =
    p3Dmember.modelsUnderRay(pCharacter.worldPosition, \
    pCharacter.transform.xAxis,#detailed)
    -- if models picked up by ray, then check for collision
    if (collisionList.count) then
    me.checkForCollision(collisionList[1])
    -- cast ray backward
    collisionList =
    p3Dmember.modelsUnderRay(pCharacter.worldPosition, \
    -pCharacter.transform.xAxis,#detailed)
    -- if models picked up by ray, then check for collision
    if (collisionList.count) then
    me.checkForCollision(collisionList[1])
    end
    on checkForCollision me, collisData
    -- grab the #distance value from the CollisionList
    dist = collisData.distance
    -- check if distance is less than width of bounding box
    if (dist < pCharBoundingBox.resource.width ) then
    -- get distance of penetration
    diff = pCharBoundingBox.resource.width - dist
    -- calculate vector perpendicular to the wall's surface to
    move the character
    -- using the #isectNormal property
    tVector = collisData.isectNormal * diff
    -- move the character in order to resolve the collision
    pCharacter.translate(tVector,#world)
    end if
    end
    on keyDown
    -- check to see which key has been pressed
    -- and set the property relating to that key to TRUE
    if keypressed(123) then pLeftArrow = TRUE -- 123 = left
    arrow key
    if keypressed(124) then pRightArrow = TRUE -- 124 = right
    arrow key
    if keypressed(125) then pDownArrow = TRUE -- 125 = down
    arrow key
    if keypressed(126) then pUpArrow = TRUE -- 125 = up arrow
    key
    -- if 'r' key pressed, return character to starting position
    if keypressed("r") then resetCharacter
    -- if 'c' key is pressed, then switch camera
    if keypressed("c") then changeCamera
    end
    on keyUp
    -- when the arrow keys are released, set the properties to
    FALSE
    pLeftArrow = FALSE
    pRightArrow = FALSE
    pUpArrow = FALSE
    pDownArrow = FALSE
    end
    on exitFrame
    characterMove
    end
    on characterMove
    -- if the right arrow is pressed,
    -- rotate the character 5 degrees about the z-axis
    if pRightArrow then pCharacter.rotate(0,0,-5)
    --if the right arrow is pressed,
    -- rotate character -5 degrees about the z-axis
    if pLeftArrow then pCharacter.rotate(0,0,5)
    -- if the up arrow is pressed,
    -- move the character 5 pixels along the y-axis
    if pUpArrow then pCharacter.translate(0,5,0)
    -- if the down arrow is pressed,
    -- move the character -5 pixels along the y-axis
    if pDownArrow then pCharacter.translate(0,-5,0)
    -- move along terrain
    -- create reference for terrain (ground)
    terrain = p3Dmember.model("Terrain")
    -- store character's position
    charPos = pCharacter.worldPosition
    charPos.y = charPos.y - 20
    -- cast a ray down
    collisData =
    p3Dmember.modelsUnderRay(charPos,vector(0,0,-1),#detailed)
    -- if model is picked up on ray.
    if collisData.count then
    -- store total no of models detected by the ray
    totalCount = collisData.count
    repeat with modelNo = 1 to totalCount
    -- check if over the terrain model
    if (collisData[modelNo].model = terrain) then
    terrainPos = collisData[modelNo].isectPosition
    -- find out the distance the character should move up or
    down
    diff = (terrainPos.z - pCharacter.worldPosition.z)+45
    -- move the character
    pCharacter.translate(0,0,diff,#world)
    end if
    end repeat
    end if
    end

    ok,
    I have been trying to work this out for ahwile and I got
    pretty close on getting this correct but there are still some
    glitches. So far I did a little research in the help files to see
    what the dot product does and this is how I got my calculations
    going so far
    --the code
    on beginSprite me
    I created 2 spheres and a box. Next, I then positioned them
    so that the first sphere is alligned with the front end of the box
    and then I aligned the second sphere to back of the box. I will not
    show you the code of beginSprite because all this does is for
    creating the models and there are no calculations going inside this
    handler. In addition, with these 3 models, my purpose is to say
    lets prtend that the box is the chasis of the car and the sphere
    that is placed at the frent end of the chassis are to represemt the
    2 front wheels and the othere sphere is to represent the 2 back
    wheels of the car. Also, I initlalised a timer to the following
    below
    pTimer = (the milliseconds)
    end beginSprite
    ... note The timere is just for purposes of simulating a
    pretend upward movement for the wheels. See below which should
    explain it better then I can say it in words.
    --the code below is the calculations. The translations is for
    saying that I am pretending that the wheels are inclining up a
    hill. However, the wheels in the true game will be getting
    calculated by finding the distance of collion by using the
    modelsUnderRay function just like you normally would. By the way,
    all models and the camera are set to y is the up vector
    on exitFrame
    if ((the milliseconds) - pTimer) > 1000 then -- increment
    the calculations every one second
    pBall1.translate(0, 0.125, 0) -- This is for saying that
    this is the calculations that I am calculating the front wheels
    need to move up when they incline up the hill.
    pBall2.translate(0, -0.125, 0) -- Just like the front wheel
    pretend calulations but for the back wheels, and use a negative
    translate.
    pos1 = pBall1.transform.position -- get the calculated
    position for the front wheels
    pos2 = pBall2.transform.position -- get the calculated
    position for the back wheels
    norm1 = pos1.getnormalized() -- not sure I understand this,
    but in the help files, it says that when you calculate the dot
    product of 2 vectors that have been normalized, you then get their
    cosine
    norm2 = pos2.getNormalized() -- normalize the back wheels
    position
    dotProduct = norm1.dot(norm2) -- calculate the dot product
    of the 2 vectors
    pBox.rotate(dotAngle, 0, 0) -- I took a guess and thought
    that using the dotProduct will allow me to correctly rotate the
    chassis but the chassis is quite not rotating correctlly
    pTimer = (the milliseconds) -- update the timer so that we
    can recyle the above code again
    end if
    end exitFrame
    ... Ok, now like I said previously, the chassis is rotating
    almost correctlly, but if you continue to do this, and by after the
    third cycle, the front end wheels start to collide with the
    chassis. So in other words, the rotations look correct untill
    exitFrame is called for the third time and after which then the
    front wheels start to collide with the chassis.
    So I am wondering if anyone could help me out to fix this and
    explain what I am doing wrong?

  • Formulas results outside of row and column axis

    The report has an area of row axis and column axis. This area is where the results from BW are displayed.
    We have a requirement where we would have to create formulas using the BW Analyzer results of the row axis and column axis and display the results after the last row of this area.
    For example, after the BW Analyzer displays the result area to the Excel, we are required to take Excel Cell D10 * C7 and put the results to B33.
    <b>B33 = D10*C11</b>
    Excel row 30 is the last row from the row axis result area.
    I have searched through the forum for Cell Editor, but it seems that the requirement is to use 2 structures and use Cell Editor only when there is a formula collision. Our requirement has 1 structure, but I guess we can create the other structure for the column axis results. But still I think Cell Editor is a computation of formula collision within the row and column axis result area.
    My question is will Cell Editor meet our requirement if we want to get formula results from the row and column axis and then display the results outside of the row and column axis result area?
    Our approach was to use the Excel cell formulas in the workbook or possibly macros, but it seems that the Excel formulas will do.
    Would someone clarify about the Cell editor for this requirement and how would you approach this?
    Would this be effective to do the formulas from the query level? We are working on 3.5 SP11.

    Can Cell editor do the following:
    1. Create structures
    2. Run the query
    3. The results of the structures are displayed in the row and column axis of the BEx Analyzer
    4. Save as a workbook
    5. Use the Cell Editor to pick and choose the cells (Not the Excel cells) to create formulas
    6. The formula results are then displayed outside of the row and column axis.
    Would this be another approach?
    What scenario can Cell editor be used? What scenario can Cell editor not be used?
    Thanks

  • Problem in Axis installation

    Hi,
    I am stuck at Step 6 of Axis installation guide found at http://ws.apache.org/axis/java/install.html
    Step 6: Deploying your Web Service
    I have done everything as said like I am setting the environment variables as follows:
    set AXIS_HOME=E:\Java Web Services\axis
    set AXIS_LIB=%AXIS_HOME%\lib
    set AXISCLASSPATH=%AXIS_LIB%\axis.jar;
                %AXIS_LIB%\commons-discovery-0.2.jar;
                      %AXIS_LIB%\commons-logging.jar;
                      %AXIS_LIB%\jaxrpc.jar;
                      %AXIS_LIB%\saaj.jar;
                      %AXIS_LIB%\log4j-1.2.8.jar;
                      %AXIS_LIB%\xml-apis.jar;
                      %AXIS_LIB%\xercesImpl.jarI have separated the jar files here by a new line character just for clear visibility.
    I am running following command from the samples/stock directory
    java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient -lhttp://localhost:7000/axis/services/AdminService deploy.wsddI have my server running at port 7000.
    Everything seems fine but I am getting the following error
    Exception in thread "main" java.lang.NoClassDefFoundError: WebCan anybody help,
    Thanks,
    WBAJ*

    hi..
    I am a niwebie in 'AXIS' . but i had correctly installed it without any problem
    with the help of 'apache.axis.install.pdf' and also tested the examples
    under 'samples\userguide' directoy provided with 'AXIS'.
    Later ,I wanted to run a 'build.xml' file created of my own to run the
    'example3' project under a diffrent directory and configured the 'build.xml'
    accordingly. I succeded but after then .. I could not run any of the examples.
    When i tried to run any 'CLIENT' file from command prompt ....
    " h:\axis\samples\stock > java -cp %AXISCLASSPATH%
    org.apache.axis.client.AdminClient
    -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd
    It works. but if i run..
    h:\axis\samples\stock > java org.apache.axis.client.AdminClient
    -lhttp://localhost:8080/axis/services/AdminService deploy.wsdd
    it shows me
    ''Exception in thread "main" java.lang.NoClassDefFoundError:
    org/apache/axis/client/AdminClient ''
    This is same for all the examples.
    I can't anticipate .. what the problem may be. For ur convenience .. i here
    provide all the classpaths...
    JAVA_HOME H:\Java\j2sdk1.5.0
    AXIS_HOME H:\tomcat\webapps\axis
    AXIS_LIB %AXIS_HOME%\web-inf\lib
    AXISCLASSPATH %AXIS_LIB%\axis.jar;
    %AXIS_LIB%\axis-ant.jar;%
    AXIS_LIB%\commons-discovery-0.2.jar;
    %AXIS_LIB%\commons-logging-1.0.4.jar;
    %AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;
    %AXIS_LIB%\log4j-1.2.8.jar;
    %AXIS_LIB%\xml-apis.jar;
    %AXIS_LIB%\xercesImpl.jar;
    %AXIS_LIB%\xmlsec.jar;
    %AXIS_LIB%\activation.jar;
    %AXIS_LIB%\mailapi_1_3_1.jar;
    H:\tomcat\common\lib\servlet.jar;
    %AXIS_LIB%\wsdl4j-1.5.1.jar;
    %AXIS_LIB%\xmlParserAPIs.jar
    CLASSPATH .;%AXISCLASSPATH%;h:\Java\classes
    It's really urgent for me... i'll be grateful to u if u pls can give any solution .

  • JDeveloper 10.1.3.3.0:  Problem with Apache Axis 1.4 response handler

    I have written both a request handler and a response handler for calling a web service using Apache Axis 1.4.
    The request handler is working, but when the web service returns a soap fault, my response handler is not getting called (I have set breakpoints in both the "onFault" and "invoke" methods of the response handler, which extends "org.apache.axis.handlers.BasicHandler").
    Here is what my WSDD looks like:
    <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
       <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
       <globalConfiguration>
          <requestFlow>
             <handler name="MyRequestHandler" type="java:com.mycompany.MyRequestHandler"/>
          </requestFlow>
          <responseFlow>
             <handler name="MyResponseHandler" type="java:com.mycompany.MyResponseHandler"/>
          </responseFlow>
       </globalConfiguration>
    </deployment>Thanks!
    Jonathan
    Edited by: user1993443 on Mar 6, 2009 9:03 AM

    The OC4J version with comes in jdeveloper has instaled ADF, is a version prepared to test your aplications and well ready for that.
    The OC4J standalone version is this [http://www.oracle.com/technology/tech/java/oc4j/index.html] and is downloaded separately here [http://www.oracle.com/technology/software/products/ias/htdocs/utilsoft.html] .
    The structured folder of the OC4J standAlone is never is contended inside Jdeveloper folder and when you try to install ADF with ADF runtime installer you only need to map to your OC4J folder base.
    Good Luck.

  • Chart Issue,  tooltip separator / on custom XML sustitution not working

    I did not find the way to declaratively change the Tooltip label separator in the chart, I see the XML contains this:
    <tooltip_settings enabled="true">
                <format><![CDATA[{%Name}{enabled:False} - {%Value}The problem is the "-" minus sign as separator between the label and the value - even if the Y axis show where the 0 is, some user might see them as negative number.
    On option is to use custom XML. In that case, since I'm using &ITEM_NAME. in the chart title, this is not replaced.
    Any idea how to overcome on these issue?
    Thanks,
    Peter

    I did not find the way to declaratively change the Tooltip label separator in the chart, I see the XML contains this:
    <tooltip_settings enabled="true">
                <format><![CDATA[{%Name}{enabled:False} - {%Value}The problem is the "-" minus sign as separator between the label and the value - even if the Y axis show where the 0 is, some user might see them as negative number.
    On option is to use custom XML. In that case, since I'm using &ITEM_NAME. in the chart title, this is not replaced.
    Any idea how to overcome on these issue?
    Thanks,
    Peter

  • Value formatting on chart axis in WAD

    Hi experts,
    In WAD charts, I use an ordinary line chart.
    Is there a way to format the value on the axis so that it becomes thousand separated?
    I.e. Instead of a value on the axis of 80000000, we would prefer to have 80 000 000.
    BR,
    Niclas

    I described it in this thread:
    WAD Graph-  Value Axis display value with commas
    Regards
    Erwin

Maybe you are looking for

  • SQL 2005 sa password RECOVERY not reset

    Is there a way to RECOVER the SQL 2005 Standard Edition 'sa' password?  Resetting the password could cause a re-installation of several applications.  The person in charge of it has left the company.. several years ago and there's no record of the pa

  • While attempting to install Acrobat XI Pro (11.0.10) update, it stalls

    Acrobat XI Pro (11.0.00) said there was an update. So I clicked on it, downloaded it and have been attempting to install it. It goes through all the steps installing the update, until it gets to the "Status: Copying new files" and just stalls with "T

  • Dropped my Macbook Pro 13inch

    Hello, I dropped my macbook pro 13inch-unibody and I have a dent in the corner of my screen. it doesn't affect the actualy visual part of the screen but I would like to undent it. Also, I have some scratches on the bottom of the notebook and would li

  • Qty Sold Via Month Via Stock Item

    Hi All, I am trying to write a formula that will show in a cross tablular format the Qty Sales via Month.  (please note i can not use a cross tab report due to formatting issues). My report so far looks like this. Group Header 1   = Stock Category Gr

  • BridgeView gives error when starting historical data engine

    Has anyone come across this problem The software has been operating well for the last 3 years now all of a sudden has given this error when starting the Historical database engine