Posted By

fl0shizzle on 05/06/14


Tagged

pathfinding


Versions (?)

Pathfinding Implementation


 / Published in: Java
 

Implementation of the A* pathfinding algorithm

  1. package jme3test.helloworld;
  2.  
  3. import com.jme3.math.Vector3f;
  4. import java.util.ArrayList;
  5.  
  6. public class PathFinder {
  7.  
  8. private boolean[][] grid;
  9. private int[][] gridF;
  10. private int gridSizeX, gridSizeY;
  11. private ArrayList<Vector3f> pathList;
  12. private float worldX, worldY;
  13.  
  14. public PathFinder(float worldXM, float worldYM, Buildings buildingsM) {
  15. worldX = worldXM;
  16. worldY = worldYM;
  17. createGrid(buildingsM);
  18. }
  19.  
  20. private void createGrid(Buildings buildings) {
  21. gridSizeX = (int) worldX * 2;
  22. gridSizeY = (int) worldY * 2;
  23. Debug dbg = new Debug();
  24. dbg.writeToFile(Integer.toString(gridSizeX));
  25. dbg.writeToFile(Integer.toString(gridSizeY));
  26. grid = new boolean[gridSizeX][gridSizeY];
  27. gridF = new int[gridSizeX][gridSizeY];
  28.  
  29. VectorToInt vti = new VectorToInt();
  30. int[] firstCorner, secondCorner;
  31. int horizontalDist;
  32.  
  33. for (int x = 0; x < buildings.getNumberOfBuildings(); x++) {
  34.  
  35. firstCorner = vti.getInt((Vector3f) buildings.getBuildings()[x][2][1]);
  36. secondCorner = vti.getInt((Vector3f) buildings.getBuildings()[x][2][2]);
  37.  
  38. horizontalDist = Math.abs((vti.getInt((Vector3f) buildings.getBuildings()[x][2][1])[0])
  39. - (vti.getInt((Vector3f) buildings.getBuildings()[x][2][0])[0]));
  40. //Back left corner - front left corner, to get distance (always a positive number)
  41.  
  42. int firstCoord, secondCoord;
  43. int firstCoordRA, secondCoordRA;
  44. int temp;
  45. firstCoord = firstCorner[2] + (int) worldY;
  46. secondCoord = secondCorner[2] + (int) worldY;
  47.  
  48. if (firstCoord > secondCoord) {
  49. temp = firstCoord;
  50. firstCoord = secondCoord;
  51. secondCoord = temp;
  52. }
  53.  
  54. firstCoordRA = firstCorner[0] + (int) worldX;
  55. secondCoordRA = (firstCorner[0] + (int) worldX) - horizontalDist;
  56.  
  57. if (firstCoordRA < secondCoordRA) {
  58. temp = firstCoordRA;
  59. firstCoordRA = secondCoordRA;
  60. secondCoordRA = temp;
  61. }
  62.  
  63. for (int n = firstCoord; n <= secondCoord; n++) {
  64. //For back left corner X values to back right corner X values
  65.  
  66. for (int i = firstCoordRA; i >= secondCoordRA; i--) {
  67. //For the length of the building
  68. dbg.writeToFile(Integer.toString(n) + " " + Integer.toString(i));
  69. grid[n][i] = true;
  70. //Set building present in grid to true
  71. }
  72. }
  73. }
  74. }
  75.  
  76. public void setPath(Vector3f start, Vector3f end) {
  77.  
  78. ArrayList<int[]> openList = new ArrayList<int[]>();
  79. ArrayList<int[]> closedList = new ArrayList<int[]>();
  80. boolean inClosedList;
  81. boolean inOpenList;
  82.  
  83. int[] currentSquare;
  84. int[] destination, startSquare, adjacentSquare;
  85. boolean nextStep = true;
  86. int gVal;
  87.  
  88.  
  89. VectorToInt vti = new VectorToInt();
  90. int startX = vti.getInt(start)[0] + (int) worldX;
  91. int startY = vti.getInt(start)[2] + (int) worldY;
  92. int endX = vti.getInt(end)[0] + (int) worldX;
  93. int endY = vti.getInt(end)[2] + (int) worldY;
  94.  
  95. startSquare = coordsArray(startX, startY, 0, 0, 0);
  96. destination = coordsArray(endX, endY, 0, 0, 0);
  97. //Change destination from vector to int coordinates (parent and gvalue are 0)
  98.  
  99. openList.add(startSquare);
  100. //Add start square to open list (parent and gvalue are 0 as unknown)
  101.  
  102.  
  103. for (int i = (startSquare[0] - 1); i <= (startSquare[0] + 1); i++) {
  104. for (int n = (startSquare[1] - 1); n <= (startSquare[1] + 1); n++) {
  105. //For the current square's neighbours
  106.  
  107. if (!(i == startSquare[0] && n == startSquare[1])) {
  108. //If it's not the start square
  109. if (!(i < 0) && !(i > (gridSizeX - 1)) && !(n < 0)
  110. && !(n > (gridSizeY - 1))) {
  111.  
  112. if (grid[i][n] == false) {
  113.  
  114. if (i != startSquare[0] && n != startSquare[1]) {
  115. //Diagonal
  116. gVal = 14;
  117. } else {
  118. //Straight line
  119. gVal = 10;
  120. }
  121.  
  122. adjacentSquare = coordsArray(i, n, startSquare[0], startSquare[1], gVal);
  123. gridF[i][n] = calcFCost(gVal, calcHeuristic(adjacentSquare, destination));
  124.  
  125. //Save F cost to current square.
  126.  
  127. openList.add(adjacentSquare);
  128.  
  129. }
  130. }
  131. }
  132. }
  133. }
  134.  
  135. closedList.add(startSquare);
  136. openList.remove(0);
  137. //Add start square to open list and remove from open list
  138.  
  139. //Calculate F points for current open list
  140. int currValue, fValue;
  141. int[] lowestSquare = new int[5];
  142. fValue = gridF[openList.get(0)[0]][openList.get(0)[1]];
  143. for (int i = 1; i < openList.size(); i++) {
  144.  
  145. currValue = gridF[openList.get(i)[0]][openList.get(i)[1]];
  146.  
  147. if (currValue < fValue) {
  148. fValue = currValue;
  149. lowestSquare = openList.get(i);
  150. }
  151.  
  152. }
  153.  
  154. closedList.add(lowestSquare);
  155. openList.remove(lowestSquare);
  156. currentSquare = lowestSquare;
  157.  
  158. while (nextStep) {
  159. //Choose new current square
  160.  
  161. for (int i = (currentSquare[0] - 1); i <= (currentSquare[0] + 1); i++) {
  162. for (int n = (currentSquare[1] - 1); n <= (currentSquare[1] + 1); n++) {
  163. //For the current square's neighbours
  164.  
  165. inClosedList = inList(closedList, i, n);
  166. inOpenList = inList(openList, i, n);
  167.  
  168. if (!(i < 0) && !(i > (gridSizeX - 1)) && !(n < 0)
  169. && !(n > (gridSizeY - 1))) {
  170.  
  171. if (grid[i][n] == false && inClosedList == false && inOpenList == false) {
  172.  
  173. if (i != currentSquare[0] && n != currentSquare[1]) {
  174. //Diagonal
  175. gVal = 14;
  176. } else {
  177. //Straight line
  178. gVal = 10;
  179. }
  180.  
  181. gVal = currentSquare[4] + gVal;
  182. //gVal = g distance + parent's gVal
  183. adjacentSquare = coordsArray(i, n, currentSquare[0], currentSquare[1], gVal);
  184. gridF[i][n] = calcFCost(gVal, calcHeuristic(adjacentSquare, destination));
  185.  
  186. //Save F cost to current square.
  187.  
  188. openList.add(adjacentSquare);
  189. //if the square is traversable, add to open list
  190. }
  191.  
  192. if (grid[i][n] == false && inOpenList == true) {
  193. //Check if existing square has shorter path available
  194. int checkGVal = 0;
  195.  
  196. if (i != currentSquare[0] && n != currentSquare[1]) {
  197. //Diagonal
  198. gVal = 14;
  199. } else {
  200. //Straight line
  201. gVal = 10;
  202. }
  203.  
  204. gVal = currentSquare[4] + gVal;
  205. //gVal = g distance + parent's gVal
  206. int temp = 0;
  207.  
  208. for (int x = 0; x < openList.size(); x++) {
  209. if (openList.get(x)[0] == i && openList.get(x)[1] == n) {
  210. checkGVal = openList.get(x)[4];
  211. temp = x;
  212. break;
  213. }
  214. }
  215.  
  216. if (gVal < checkGVal) {
  217. adjacentSquare = coordsArray(openList.get(temp)[0],
  218. openList.get(temp)[1], currentSquare[0], currentSquare[1], gVal);
  219. gridF[i][n] = calcFCost(gVal, calcHeuristic(adjacentSquare, destination));
  220. openList.remove(temp);
  221. openList.add(adjacentSquare);
  222. }
  223. }
  224. }
  225. }
  226. }
  227.  
  228.  
  229. fValue = gridF[openList.get(0)[0]][openList.get(0)[1]];
  230. for (int i = 1; i < openList.size(); i++) {
  231.  
  232. currValue = gridF[openList.get(i)[0]][openList.get(i)[1]];
  233.  
  234. if (currValue < fValue) {
  235. fValue = currValue;
  236. lowestSquare = openList.get(i);
  237. }
  238.  
  239. }
  240.  
  241. closedList.add(lowestSquare);
  242. openList.remove(lowestSquare);
  243. currentSquare = lowestSquare;
  244.  
  245.  
  246. if (currentSquare[0] == destination[0] && currentSquare[1] == destination[1]) {
  247. //If final destination reached
  248.  
  249. nextStep = false;
  250. } else if (openList.isEmpty()) {
  251. //Or target square can't be found
  252. nextStep = false;
  253. }
  254. }
  255.  
  256. setVectorList(closedList);
  257.  
  258. }
  259.  
  260. private void setVectorList(ArrayList<int[]> closedList) {
  261. Vector3f vector;
  262. float x, y;
  263. pathList = new ArrayList<Vector3f>();
  264.  
  265. for (int i = 0; i < closedList.size(); i++) {
  266. x = (float) closedList.get(i)[0] - worldX;
  267. y = (float) closedList.get(i)[1] - worldY;
  268.  
  269. vector = new Vector3f(x, 4f, y);
  270. pathList.add(vector);
  271. }
  272. }
  273.  
  274. private boolean inList(ArrayList<int[]> list, int i, int n) {
  275. boolean isOnList = false;
  276. for (int x = 0; x < list.size(); x++) {
  277. //check if it's on the closed list
  278. if (list.get(x)[0] == i && list.get(x)[1] == n) {
  279. isOnList = true;
  280. break;
  281. } else {
  282. isOnList = false;
  283. }
  284. }
  285.  
  286. return isOnList;
  287.  
  288. }
  289.  
  290. private int calcFCost(int gCost, int h) {
  291. int fCost;
  292. fCost = gCost + h;
  293. return fCost;
  294. }
  295.  
  296. private int calcHeuristic(int[] currLocation, int[] dest) {
  297. int h;
  298. h = (((Math.abs(currLocation[0] - dest[0]))
  299. + (Math.abs(currLocation[1] - dest[1]))) - 1) * 10;
  300. return h;
  301. }
  302.  
  303. private int[] coordsArray(int x, int y, int parentX, int parentY, int gVal) {
  304. int[] array = new int[5];
  305. array[0] = x;
  306. array[1] = y;
  307. array[2] = parentX;
  308. array[3] = parentY;
  309. array[4] = gVal;
  310. return array;
  311. }
  312.  
  313. public ArrayList<Vector3f> getPath() {
  314. return pathList;
  315. }
  316. }

Report this snippet  

Comments

RSS Icon Subscribe to comments
Posted By: wilberthackel on September 2, 2015

high quality replica watches watches swiss Mechanical movement replica watches

Replica PID 06701:Rolex Daytona Working Chronograph Man Size Brown Strap Watches - $203.00 : Professional replica watches stores, offshorelimitedwatches.com

sddm

{ margin: 0 auto; padding: 0; z-index: 30; background-color:#F4F4F4; width: 80px; height:23px; float: right; margin-top: 4px; margin-right: 70px;}

sddm li

{ margin: 0; padding: 0; list-style: none; float: left; font: bold 12px arial}

sddm li a

{ display: block; margin: 0 1px 0 0; padding: 4px 10px; width: 60px; background: #F4F4F4; color: #D5D5D5; text-align: center; text-decoration: none}

sddm li a:hover

{ background: #49A3FF}

sddm div

{ position: absolute; visibility: hidden; margin: 0; padding: 0; background: #EAEBD8; border: 1px solid #5970B2}

#sddm div a
{   position: relative;
    display: block;
    margin: 0;
    padding: 5px 10px;
    width: auto;
    white-space: nowrap;
    text-align: left;
    text-decoration: none;
    background: #EAEBD8;
    color: #2875DE;
    font: 12px arial}

#sddm div a:hover
{   background: #49A3FF;
    color: #FFF}
    Welcome!
        <a href="http://www.offshorelimitedwatches.com/index.php?main_page=login">Sign In</a>
or    <a href="http://www.offshorelimitedwatches.com/index.php?main_page=create_account">Register</a>

Your cart is empty

<ul>



    <ul>
        <li><a href="http://www.offshorelimitedwatches.com/index.php">Home</a></li>
    <li><a href="http://www.offshorelimitedwatches.com/replica-rolex-c-92.html">Replica Rolex Watches</a></li>
    <li><a href="http://www.offshorelimitedwatches.com/replica-omega-c-59.html">Replica OMEGA Watches</a></li>
    <li><a href="http://www.offshorelimitedwatches.com/replica-cartier-c-19.html">Replica Cartier Watches</a></li>
    </ul>




</ul>

Currencies

US Dollar Euro GB Pound Canadian Dollar Australian Dollar Jappen Yen Norske Krone Swedish Krone Danish Krone CNY

Categories

Watch Accessories Rolex Air King Cellini Datejust Datejust II Day Date Day Date II Daytona Daytona II Explorer GMT Masterpiece Masterpiece II Milgauss Sea Dweller Submariner Yachtmaster Breitling Cartier IWC Jaeger-Lecoultre Longines Omega Watches Panerai Patek Philippe Rado U-Boat

Featured -   [more] Replica PID 00763:Breitling Chronomat Evolution Tourbillon Man Size Stainless Steel Strap Watches$769.00  $214.00Save: 72% offReplica PID 00775:Breitling Chronomat Evolution Automatic Man Size Stainless Steel Strap Watches$802.00  $219.00Save: 73% offReplica PID 00770:Breitling Chronomat Evolution Working Man Size Stainless Steel Strap Watches$762.00  $225.00Save: 70% offReplica PID 00766:Breitling Chronomat Evolution Chronograph Man Size Stainless Steel Strap Watches$1,338.00  $229.00Save: 83% off

  <a href="http://www.offshorelimitedwatches.com/">Home</a>&nbsp;::&nbsp;

Rolex ::  Daytona ::  Replica PID 06701:Rolex Daytona Working Chronograph Man Size Brown Strap Watches

.jqzoom{

float:left;

position:relative;

padding:0px;

cursor:pointer; width:301px; height:300px; }

Replica PID 06701:Rolex Daytona Working Chronograph Man Size Brown Strap Watches

$648.00  $203.00Save: 69% off

Add to Cart:           
  • Description

Welcome to replica watches outlet stores, the site for all your replica watches needs. The internet is full of vendors and sites trying to sell you replica watches and it isn't always easy finding the most reliable sites. We guarantee the best services with the best replica watches online. replica watches are everywhere, and it's important that you're getting the best available on the market today.

Attributes Movement Japanese Quartz Strap Material Leather Strap Colors Brown Dial Colors White Gender Man Size Weight 0.19kilogram Size Man Size(40 mm) The replica watch is fitted with an accurate Japanese Quartz Working Chronograph movementWatch function Fully Functional Working Chronograph (Stopwatch Feature and Functional Sub dials)The watch comes with cool PVD case in high qualityThe high quality real leather strap is complete with deployment buckleThe cheap watch is fitted with a scratch-resistant mineral crystal glassWater-ResistantThe exactly copied watch has a screw-in crownWe always make sure we check all our watches and pack our watches properly, bubble-wrapped before we ship them out. All orders are shipped either

Related Products

Replica PID 07219:Rolex Daytona Automatic Diamond Lady Size, Man Size Black Strap Watches

Replica PID 07663:Rolex Daytona Working Chronograph Man Size Black Strap Watches

Replica PID 07065:Rolex Daytona Working Chronograph Man Size Two Tone Strap Watches

Replica PID 07056:Rolex Daytona Automatic CZ Man Size Blue Strap Watches

.articles{width:900px; margin:0 auto;} .articles ul{width:900px; } .articles li{width:450px; float:left;}

Home   Shipping   Wholesale   Order Tracking   Coupons   Payment Methods   Contact Us  

    <a href="http://www.ourwatchau.com/replica-omega-watches-c-4.html">REPLICA OMEGA</a> &nbsp;&nbsp;
    <a href="http://www.ourwatchau.com/replica-patek-philippe-c-24.html">REPLICA PATEK PHILIPPE </a> &nbsp;&nbsp;
    <a href="http://www.ourwatchau.com/replica-rolex-watches-c-3.html">REPLICA ROLEX </a> &nbsp;&nbsp;
    <a href="http://www.ourwatchau.com/replica-iwc-watches-c-7.html">REPLICA IWC </a>&nbsp;&nbsp;
    <a href="http://www.ourwatchau.com/replica-cartier-watches-c-16.html">REPLICA CARTIER </a>&nbsp;&nbsp;
    <a href="http://www.ourwatchau.com/replica-breitling-c-2.html">REPLICA BREITLING </a>&nbsp;&nbsp;

Copyright © 2012-2015 All Rights Reserved.

swiss replica watches aaa+ swiss replica watches

Posted By: wilberthackel on September 2, 2015

montblanc pens montblanc pen mont blanc

MontBlanc Boheme Paso Boble Dark Red Ballpoint Pen - $128.00 : Professional montblanc pen stores, themontblancoutlet.com

sddm

{ margin: 0 auto; padding: 0; z-index: 30; background-color:#F4F4F4; width: 80px; height:23px; float: right; margin-right: 70px;}

sddm li

{ margin: 0; padding: 0; list-style: none; float: left; font: bold 12px arial}

sddm li a

{ display: block; margin: 0 1px 0 0; padding: 4px 10px; width: 60px; background: #C6C1B4; color: #DCD8CF; text-align: center; text-decoration: none}

sddm li a:hover

{ background: #49A3FF}

sddm div

{ position: absolute; visibility: hidden; margin: 0; padding: 0; background: #EAEBD8; border: 1px solid #5970B2}

#sddm div a
{   position: relative;
    display: block;
    margin: 0;
    padding: 5px 10px;
    width: auto;
    white-space: nowrap;
    text-align: left;
    text-decoration: none;
    background: #EAEBD8;
    color: #2875DE;
    font: 12px arial}

#sddm div a:hover
{   background: #49A3FF;
    color: #FFF}
Welcome to Montblanc Online Outlet










    Welcome!
        <a href="http://www.themontblancoutlet.com/index.php?main_page=login">Sign In</a>
or    <a href="http://www.themontblancoutlet.com/index.php?main_page=create_account">Register</a>

Your cart is empty

Payment Shipping &amp Returns Wholesale Contact Us

<ul>



    <ul>
    <li><a href="http://www.themontblancoutlet.com/index.php">Home</a></li>
    <li><a href="http://www.themontblancoutlet.com/montblanc-boheme-c-13.html">Montblanc Boheme</a></li>
    <li><a href="http://www.themontblancoutlet.com/montblanc-meisterstuck-c-12.html">Montblanc Meisterstuck</a></li>
    <li><a href="http://www.themontblancoutlet.com/montblanc-starwalker-c-14.html">Montblanc StarWalker</a></li>

    </ul>





</ul>

Currencies

US Dollar Euro GB Pound Canadian Dollar Australian Dollar Jappen Yen Norske Krone Swedish Krone Danish Krone CNY

Categories

Montblanc Boheme Boheme Ballpoint Pens Boheme Fountain Pens Boheme Rollerball Pens Montblanc Limited Edition Mont Blanc Refill Montblanc Meisterstuck Montblanc Starwalker

Featured -   [more] MontBlanc Meisterstuck Platinum-plated Fountain Pen$1,200.00  $150.00Save: 88% offMontBlanc Meisterstuck Le Grand Platinum Fountain Pen$730.00  $126.00Save: 83% offMontBlanc Meisterstuck Silver Barley Fountain Pen$1,640.00  $156.00Save: 90% off

  <a href="http://www.themontblancoutlet.com/">Home</a>&nbsp;::&nbsp;

Montblanc Boheme ::  Boheme Ballpoint Pens ::  MontBlanc Boheme Paso Boble Dark Red Ballpoint Pen

.jqzoom{

float:left;

position:relative;

padding:0px;

cursor:pointer; width:301px; height:300px; }

MontBlanc Boheme Paso Boble Dark Red Ballpoint Pen

$845.00  $128.00Save: 85% off

Add to Cart:           
  • {list-style-type:none; font-size:12px; text-decoration:none; margin:0; padding:0;} a {behavior:url(xuxian.htc)} .woaicss { overflow:hidden; margin:10px auto;} .woaicsstitle {width:720px; height:30px;background: #323031 url("../images/tabbg.png") no-repeat 0 0; overflow:hidden;} .woaicsstitle li {display:block; float:left; margin:0 2px 0 0; display:inline; text-align:center;} .woaicsstitle li a {display:block; width:120px; heigth:30px; line-height:34px; color:#fff;} .woaicsstitle li a:hover {color:red; text-decoration:underline;} .woaicsstitlebg1 {background-position:0 0;} .woaicsstitlebg2 {background-position:0 -30px;} .woaicsstitlebg3 {background-position:0 -60px;} .woaicsstitlebg4 {background-position:0 -90px;} .woaicsscon {display:block;background:url() no-repeat 0 0; overflow:hidden; BORDER: #aecbd4 1px solid; width: 690px;padding: 15px;}//images/20110424/con_bg.png/ .woaicsscon ul { margin:12px auto;} .woaicsscon li {line-height:30px; margin:0 auto; white-space:nowrap; text-overflow:ellipsis; overflow: hidden;} .woaicsscon li a {color:#03c;} .woaicsscon li a:hover {color:#069; text-decoration:underline;} .woaicsscopy {margin:10px auto; text-align:center;} .woaicsscopy a {color:#f00;}
  <p>Overview</p>

Ballpoint pen with twist mechanism, barrel with grid guilloche, platinum-plated forepart and cone inlaid with Montblanc emblem, platinum-plated rings and clip set with a synthetic onyx-coloured gemstone

Details

Writing System: Ballpoint pen with twist mechanism Barrel: Black precious resin with grid guilloche pattern, platinum-plated forepart, cone and fittings, inlaid with Montblanc emblem Trim: Three platinum-plated rings embossed with the Montblanc brand name Clip: Platinum-plated clip set with a synthetic onyx-coloured gemstone, with individual serial number

The Montblanc brand is committed to its 100 years old traditions, and master craftsmanship and believes that "True perfection never ages". As an Authorized dealer for many years, our Montblanc pen shop commits to service our customers in the most respectful and appreciative manner. We are dedicated to bringing you the best Montblanc pens sale we can find, at the best prices we can offer. We hope you find what you are looking for here and invite you to contact us here if you have any question.

    <p><a href="http://www.themontblancoutlet.com/images/images/l/201202/13292378470.jpg"> <a href="http://www.themontblancoutlet.com/montblanc-boheme-paso-boble-dark-red-ballpoint-pen-p-62.html"></a></p><p><a href="http://www.themontblancoutlet.com/images/images/v/201202/13292378470.jpg"> <a href="http://www.themontblancoutlet.com/montblanc-boheme-paso-boble-dark-red-ballpoint-pen-p-62.html"></a></p><p><a href="http://www.themontblancoutlet.com/images/images/s/201202/13292378470.jpg"> <a href="http://www.themontblancoutlet.com/montblanc-boheme-paso-boble-dark-red-ballpoint-pen-p-62.html"></a></p>

Shipping Method and Cost

We usually use the shipping methods by EMS, DHL, the tracking numbers are available after we ship.

Shipping Time

Orders received on Saturdays, Sundays and public holidays, as well as orders received after 1pm on weekdays, will be processed the next working day. We will do our every effort to make sure you receive the parcel in time, but we are not responsible for shipping delays, which can be affected by the shipping carrier, delivery destination, weather, holidays or incorrect/insufficient delivery information.

Shipping Address

We apologize for the inconvenience, but we cannot ship to P.O. boxes. All parcels will be held for picking up if cannot be signed or delivered. So please provide us with the most up-to-date, accurate and detailed shipping information with your phone number for the shipping. If an item is returned because it was not deliverable due to an incorrect address, customer will have to be responsible for both the shipping and return charges.

Tracking

The shipping of your parcel is traceable online. After your order is shipped out, a confirmation email with the online tracking number and link will be sent to you.

EMS: http://www.ems.com.cn/mailtracking/eyoujianchaxun.html

DHL:http://www.dhl.com/en/express/tracking.html

Returns policy

We are committed to your complete satisfaction. All ordered items here are closely to the word here "what you see on our website are what you get in 7days".Before enjoying easy exchange and return policy,you must contact us with returning shipping address before sending the items back.All items sent back to us must be in their original condition i.e. not worn, altered or washed, with all tags attached. All ordered items are the right items you pick here.We promise you of the right order package.So if returning right items for a refund:all returned items are subject to a 15% restocking fee and 20% bank commision.Shipping and handling charges are non-refundable. We do not cover the shipping cost of returns or exchanges of right order package, you will be responsible for the shipping and handling costs. Additionally, we recommend that you add tracking and insurance for your own protection, as we cannot be responsible for lost shipments. All returned merchandise should be sent to the shipping address we email you after you get our feedback here! Exchanges We will accept exchanges for a different size or color within 30 days of the original order dispatch date. Please contact us with your Order ID and one of our team members will help you.

If you would like to exchange items to a different style, you would have to return your items for a refund* (as per Return policy) and place a new order for the style you prefer. You must contact us before sending the items back. All items sent back to us must be in their original condition i.e. not worn, altered or washed, with all tags attached. Worn or dirty items will be returned back to you. We do not cover the shipping cost of exchanges, you will be responsible for the return postage and for the shipping and handling cost of shipping the exchanged items back to you.

We recommend that you add tracking and insurance when sending items to us for your own protection, as we cannot be responsible for lost shipments. Shipping and handling charges are non-refundable. Order Cancellation Cancellation of an order must be requested before the order has been dispatched.Cause that we process all orders as quickly as possible within 6-8hours after orders placing,so we are not always able to cancel an order after it is placed.All cancellation items are subject to a 20% bank commision. Hope you can understand in this key point.Cancellation requests after the order has been dispatched will be treated in accordance with our Return policy. Friendly Notice: If you did not receive your 10-digit tracking number within 3 days after placing your order, your e-mail server may have seen it as spam. In this case, please contact us for assistance in orders' tracking.

If have any questions about the shipping of your order, please feel free to contact with us.

Payment Methods

1.VISA Card We are through the VISA Card Company to accept your payment! When you create the order information on our site, you could choose to pay the bill via Visa, which is absolutely secure. You could check on www.visa.com to make sure its security. (1) NOTE: If returned as DECLINED, please call your bank and tell them to unblock your deal. VISA Card is easy and safe to make an online purchase with. Please feel free to contact us if you need further help.

(2) Possible reasons for payment declined: 1. Guests did not correctly fill out payment information 2. Issuing bank does not support online shopping 3. Guest card balance is not enough 4. Guests have an adverse payment records which did not pass the VISA Card filtration system (non-payment, document deception etc.)

2 Master Card

Master Card is also a very easy and quick way to send and receive money when doing transactions. You could pay the bill via Master Card,which is absolutely secure. You could check on www.mastercard.com to make sure its security.

Please feel free to contact us if you need further help.

  1. Western Union: Western Union are very welcome. You will get a 20% discount when you use it. Steps: (1) Please calculate your total amount (2) Deduct the 20% money (3) Transfer the left money to us by Western Union (4) Send us the information(MTCN, total amount, country) at the page of Contact Us. How to use Western Union: Our Official Western Union Information:First Name,Last Name,Country

Western Union has three payment methods: (1) Using Cash, Credit, or Debit Cards to send money through online. Supported by Australia, Canada, European countries and United States. The steps are: Firstly, access to the western Union's home Site: http://www.westernunion.com/ and choose your country. Secondly, sign in your Western Union account or create a new one. Thirdly, click "send money", fill in the Money Transfer form and click "continue". Fourthly, fill in the form with your information (billing address, name, phone number, and your card number) Sometimes, you need to confirm your transfer as the email from Western Union tells you. (2) transferring at a western union agent location. You may visit http://www.westernunion.com/info/agentLocator.asp?country=global to find which one is the nearest and fill in a form. And the staff there will help you to complete the payment. (3) by your phone Notice: (1) When finish the transaction, the system will give you the MTCN (10 digits). (2) Please write them down and then send MTCN with your remitter¡¯s (payer¡¯s) name (First name, Last Name), the exact delivery address, total amount (USD) to us at the page of Contact Us. If your currency is not in USD, you do not have to exchange it into USD, which will be done automatically by the western Union. But please do not set the currency into the one that you actually use at the website of western union or at the location of western union, which will automatically be transformed into USD in number. Please tell us the amount in USD in the end and then your order will go through. (3) Please feel free to Contact Us by email or Live Chat if you need further help. We will dispatch your order once we receive your information.

Please feel free to contact us if you need further help.

Related Products

MontBlanc Boheme Sapphire Ballpoint Pen

MontBlanc Boheme Paso Boble Red Ballpoint Pen

MontBlanc Boheme Doue Ligne Ballpoint Pen

MontBlanc Boheme Paso Boble Dark Red Ballpoint Pen

.articles{width:900px; margin:0 auto;} .articles ul{width:900px; } .articles li{width:450px; float:left;}

    <ul>
    <li><a href="http://www.themontblancoutlet.com/index.php">Home</a></li>
    <li><a href="http://www.themontblancoutlet.com/index.php?main_page=shippinginfo">Shipping</a></li>
    <li><a href="http://www.themontblancoutlet.com/index.php?main_page=Payment_Methods">Wholesale</a></li>
    <li><a href="http://www.themontblancoutlet.com/index.php?main_page=shippinginfo">Order Tracking</a></li>
    <li><a href="http://www.themontblancoutlet.com/index.php?main_page=Coupons">Coupons</a></li>
    <li><a href="http://www.themontblancoutlet.com/index.php?main_page=Payment_Methods">Payment Methods</a></li>
    <li><a href="http://www.themontblancoutlet.com/index.php?main_page=contact_us">Contact Us</a></li>      

    </ul>



 <ul>
    <li><a href="http://www.montblancoutlet.co/">Montblanc Ballpoint Pen</a></li>
    <li><a href="http://www.montblancoutlet.co/">Mont Blanc Marlene Dietrich</a></li>
    <li><a href="http://www.montblancoutlet.co/">Mont Blanc Etoile De Pens</a></li>
    <li><a href="http://www.montblancoutlet.co/">Montblanc Fountain Pen</a></li>
    <li><a href="http://www.montblancoutlet.co/">Montblanc Rollerball Pen</a></li>
</ul>

Copyright © 2012-2015 All Rights Reserved.

pens mont blanc pens

Posted By: wilberthackel on September 2, 2015

fake chanel bags AAA Replica Handbags Outlet chanel bag replica high quality

Replica Necklace CHJ0001 - $70.00 : Professional chanel outlet stores, rosypink-chanel.us

sddm

{ margin: 0 auto; padding: 0; z-index: 30; background-color:#F4F4F4; width: 80px; height:23px; float: right; margin-right: 70px;}

sddm li

{ margin: 0; padding: 0; list-style: none; float: left; font: bold 12px arial}

sddm li a

{ display: block; margin: 0 1px 0 0; padding: 4px 10px; width: 60px; background: #F6F5F5; color: #666; text-align: center; text-decoration: none}

sddm li a:hover

{ background: #49A3FF}

sddm div

{ position: absolute; visibility: hidden; margin: 0; padding: 0; background: #EAEBD8; border: 1px solid #5970B2}

#sddm div a
{   position: relative;
    display: block;
    margin: 0;
    padding: 5px 10px;
    width: auto;
    white-space: nowrap;
    text-align: left;
    text-decoration: none;
    background: #EAEBD8;
    color: #2875DE;
    font: 12px arial}

#sddm div a:hover
{   background: #49A3FF;
    color: #FFF}

Payment |  Shipping & Returns  |  Wholesale |  Contact Us

    Welcome!
        <a href="http://www.rosypink-chanel.us/index.php?main_page=login">Sign In</a>
or    <a href="http://www.rosypink-chanel.us/index.php?main_page=create_account">Register</a>

Your cart is empty

    <li><a href="http://www.rosypink-chanel.us/">Home</a></li>
    <li><a href="http://www.rosypink-chanel.us/chanel-2014-new-arrivals-c-1.html">Chanel 2014 New Arrivals</a></li>
    <li><a href="http://www.rosypink-chanel.us/chanel-255-series-c-7.html">Chanel 2.55 Bags</a></li>
    <li><a href="http://www.rosypink-chanel.us/chanel-le-boy-bags-c-3.html">Chanel Boy Bags</a></li>

Currencies

US Dollar Euro GB Pound Canadian Dollar Australian Dollar Jappen Yen Norske Krone Swedish Krone Danish Krone CNY

Categories

Chanel Classic Chanel Shoulder Chanel wallets 2012 Chanel wallets 2013 Chanel 2.55 Series Chanel 2009 Collection Chanel 2010 Collection Chanel 2014 New Arrivals Chanel Belts Chanel Boston Chanel Bubble Chanel Cambon Chanel Clutch Chanel coco Chanel Cruise 2012 Chanel Cruise 2013 Chanel Cruise 2014 Chanel Denim Chanel Flap Chanel Jewelry Chanel Bracelet Chanel Brooch Chanel Earrings Chanel Necklace Chanel Jumbo Chanel Le Boy Bags Chanel Maxi Chanel Nappa Chanel Original Le Boy Chanel Scarf Chanel Sunglasses Chanel Tote Chanel Watch Cosmetic Pouch Iphone/Ipad Case

Featured -   [more] Replica Chanel Antique lambskin leather Flap Bag with Gold chain$277.00  $231.00Save: 17% offReplica Sunglasses CCS113$178.00  $141.00Save: 21% offReplica Replica Chanel Belt CC5015-Black$164.00  $132.00Save: 20% off

  <a href="http://www.rosypink-chanel.us/">Home</a>&nbsp;::&nbsp;

Chanel Jewelry ::  Chanel Necklace ::  Replica Necklace CHJ0001

.jqzoom{

float:left;

position:relative;

padding:0px;

cursor:pointer; width:301px; height:300px; }

Replica Necklace CHJ0001

$91.00  $70.00Save: 23% off

Add to Cart:           
  • Description

Chanel Necklace CHJ0001 hotsale, come with box,dust bag.Chanel Necklace online shop,offer latest fashion AAA+++ quality replica Chanel jewelry.100% 1:1 replica designer Chanel Necklace with the same material and design as the authentic. We have our own professional team to ensure that our goods are perfect.Not only it looks but also the touch are the same as the originals.Few people can recognize it is not an original one.What you can receive is just the same as the pictures here you see.

Related Products

Replica Necklace CHJ0040

Replica Necklace CHJ0055

Replica Necklace CHJ0032

Replica Necklace CHJ0009

    <a href="http://www.bagco.co/">Chanel New Arrivals</a> &nbsp;&nbsp;
    <a href="http://www.bagco.co/">Chanel Coco bags</a> &nbsp;&nbsp;
    <a href="http://www.bagco.co/">Chanel 2.55 Series</a> &nbsp;&nbsp;
    <a href="http://www.bagco.co/">Chanel Cruise</a> &nbsp;&nbsp;
    <a href="http://www.bagco.co/">Chanel Flap Bags</a>&nbsp;&nbsp;

Copyright © 2012-2015 All Rights Reserved.

chanel outlet discount chanel

Posted By: wilberthackel on September 2, 2015

[b][url=http://www.rosypink-chanel.us/]chanchanel outlet discount chanel

You need to login to post a comment.