Adjust how check is performed.

This commit is contained in:
Kasen IO 2020-05-30 20:56:28 -04:00
parent 3c21a4d3f6
commit 778276bb43

View file

@ -578,34 +578,31 @@ var toolBar = (function () {
entityID = Entities.addEntity(properties); entityID = Entities.addEntity(properties);
var POST_ADJUST_ENTITY_TYPES = ["Model"];
var dimensionsCheckCallback = function(){ var dimensionsCheckCallback = function(){
if (POST_ADJUST_ENTITY_TYPES.indexOf(properties.type) !== -1) { // Adjust position of entity per bounding box after it has been created and auto-resized.
// Adjust position of entity per bounding box after it has been created and auto-resized. var initialDimensions = Entities.getEntityProperties(entityID, ["dimensions"]).dimensions;
var initialDimensions = Entities.getEntityProperties(entityID, ["dimensions"]).dimensions; var DIMENSIONS_CHECK_INTERVAL = 200;
var DIMENSIONS_CHECK_INTERVAL = 200; var MAX_DIMENSIONS_CHECKS = 10;
var MAX_DIMENSIONS_CHECKS = 10; var dimensionsCheckCount = 0;
var dimensionsCheckCount = 0; var dimensionsCheckFunction = function () {
var dimensionsCheckFunction = function () { dimensionsCheckCount++;
dimensionsCheckCount++; var properties = Entities.getEntityProperties(entityID, ["dimensions", "registrationPoint", "rotation"]);
var properties = Entities.getEntityProperties(entityID, ["dimensions", "registrationPoint", "rotation"]); if (!Vec3.equal(properties.dimensions, initialDimensions)) {
if (!Vec3.equal(properties.dimensions, initialDimensions)) { position = adjustPositionPerBoundingBox(position, direction, properties.registrationPoint,
position = adjustPositionPerBoundingBox(position, direction, properties.registrationPoint, properties.dimensions, properties.rotation);
properties.dimensions, properties.rotation); position = grid.snapToSurface(grid.snapToGrid(position, false, properties.dimensions),
position = grid.snapToSurface(grid.snapToGrid(position, false, properties.dimensions), properties.dimensions);
properties.dimensions); Entities.editEntity(entityID, {
Entities.editEntity(entityID, { position: position
position: position });
}); selectionManager._update(false, this);
selectionManager._update(false, this); } else if (dimensionsCheckCount < MAX_DIMENSIONS_CHECKS) {
} else if (dimensionsCheckCount < MAX_DIMENSIONS_CHECKS) { Script.setTimeout(dimensionsCheckFunction, DIMENSIONS_CHECK_INTERVAL);
Script.setTimeout(dimensionsCheckFunction, DIMENSIONS_CHECK_INTERVAL); }
} };
}; Script.setTimeout(dimensionsCheckFunction, DIMENSIONS_CHECK_INTERVAL);
Script.setTimeout(dimensionsCheckFunction, DIMENSIONS_CHECK_INTERVAL);
}
} }
// Make sure the entity is loaded before we try to figure out // Make sure the model entity is loaded before we try to figure out
// its dimensions. // its dimensions.
var MAX_LOADED_CHECKS = 10; var MAX_LOADED_CHECKS = 10;
var LOADED_CHECK_INTERVAL = 100; var LOADED_CHECK_INTERVAL = 100;
@ -613,25 +610,22 @@ var toolBar = (function () {
var entityIsLoadedCheck = function() { var entityIsLoadedCheck = function() {
isLoadedCheckCount++; isLoadedCheckCount++;
if (isLoadedCheckCount === MAX_LOADED_CHECKS || Entities.isLoaded(entityID)) { if (isLoadedCheckCount === MAX_LOADED_CHECKS || Entities.isLoaded(entityID)) {
var dimensionsToUse; var naturalDimensions = Entities.getEntityProperties(entityID, "naturalDimensions").naturalDimensions;
if (POST_ADJUST_ENTITY_TYPES.indexOf(properties.type) !== -1) {
// If it is a "Model", use natural dimensions...
dimensionsToUse = Entities.getEntityProperties(entityID, "naturalDimensions").naturalDimensions;
} else {
// If it is not a "Model", use local dimensions...
dimensionsToUse = Entities.getEntityProperties(entityID, "localDimensions").localDimensions;
}
Entities.editEntity(entityID, { Entities.editEntity(entityID, {
visible: true, visible: true,
dimensions: dimensionsToUse dimensions: naturalDimensions
}) })
dimensionsCheckCallback(); dimensionsCheckCallback();
return; return;
} }
Script.setTimeout(entityIsLoadedCheck, LOADED_CHECK_INTERVAL); Script.setTimeout(entityIsLoadedCheck, LOADED_CHECK_INTERVAL);
} }
Script.setTimeout(entityIsLoadedCheck, LOADED_CHECK_INTERVAL);
var POST_ADJUST_ENTITY_TYPES = ["Model"];
if (POST_ADJUST_ENTITY_TYPES.indexOf(properties.type) !== -1) {
Script.setTimeout(entityIsLoadedCheck, LOADED_CHECK_INTERVAL);
}
SelectionManager.addEntity(entityID, false, this); SelectionManager.addEntity(entityID, false, this);
SelectionManager.saveProperties(); SelectionManager.saveProperties();