// // EntityPropertyFlags.h // libraries/entities/src // // Created by Brad Hefta-Gaub on 12/4/13. // Copyright 2013 High Fidelity, Inc. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #ifndef hifi_EntityPropertyFlags_h #define hifi_EntityPropertyFlags_h #include enum EntityPropertyList { PROP_PAGED_PROPERTY, PROP_CUSTOM_PROPERTIES_INCLUDED, // these properties are supported by the EntityItem base class PROP_VISIBLE, PROP_POSITION, PROP_DIMENSIONS, PROP_ROTATION, PROP_DENSITY, PROP_VELOCITY, PROP_GRAVITY, PROP_DAMPING, PROP_LIFETIME, PROP_SCRIPT, // these properties are supported by some derived classes PROP_COLOR, // these are used by models only PROP_MODEL_URL, PROP_ANIMATION_URL, PROP_ANIMATION_FPS, PROP_ANIMATION_FRAME_INDEX, PROP_ANIMATION_PLAYING, PROP_ANIMATION_ALLOW_TRANSLATION, // these properties are supported by the EntityItem base class PROP_REGISTRATION_POINT, PROP_ANGULAR_VELOCITY, PROP_ANGULAR_DAMPING, PROP_COLLISIONLESS, PROP_DYNAMIC, // 24 // property used by Light entity PROP_IS_SPOTLIGHT, PROP_DIFFUSE_COLOR, PROP_AMBIENT_COLOR_UNUSED, // FIXME - No longer used, can remove and bump protocol PROP_SPECULAR_COLOR_UNUSED, // FIXME - No longer used, can remove and bump protocol PROP_INTENSITY, // Previously PROP_CONSTANT_ATTENUATION PROP_LINEAR_ATTENUATION_UNUSED, PROP_QUADRATIC_ATTENUATION_UNUSED, PROP_EXPONENT, PROP_CUTOFF, // available to all entities PROP_LOCKED, // 34 PROP_TEXTURES, // used by Model entities PROP_ANIMATION_SETTINGS_UNUSED, // FIXME - No longer used, can remove and bump protocol PROP_USER_DATA, // all entities -- 37 PROP_SHAPE_TYPE, // used by Model + zones entities // used by ParticleEffect entities PROP_MAX_PARTICLES, // 39 PROP_LIFESPAN, // 40 -- used by all entities PROP_EMIT_RATE, PROP_EMIT_SPEED, PROP_EMIT_STRENGTH, PROP_EMIT_ACCELERATION, // FIXME - doesn't seem to get set in mark all changed???? PROP_PARTICLE_RADIUS, // 45!! PROP_COMPOUND_SHAPE_URL, // used by Model + zones entities PROP_MARKETPLACE_ID, // all entities PROP_ACCELERATION, // all entities PROP_SIMULATION_OWNER, // formerly known as PROP_SIMULATOR_ID PROP_NAME, // all entities -- 50 PROP_COLLISION_SOUND_URL, PROP_RESTITUTION, PROP_FRICTION, // 53 PROP_VOXEL_VOLUME_SIZE, PROP_VOXEL_DATA, PROP_VOXEL_SURFACE_STYLE, //for lines PROP_LINE_WIDTH, PROP_LINE_POINTS, // used by hyperlinks PROP_HREF, PROP_DESCRIPTION, // 61 PROP_FACE_CAMERA, PROP_SCRIPT_TIMESTAMP, PROP_ACTION_DATA, PROP_X_TEXTURE_URL, // used by PolyVox PROP_Y_TEXTURE_URL, // used by PolyVox PROP_Z_TEXTURE_URL, // used by PolyVox // Used by PolyLine entity PROP_NORMALS, PROP_STROKE_COLORS, PROP_STROKE_WIDTHS, PROP_IS_UV_MODE_STRETCH, // used by particles PROP_SPEED_SPREAD, PROP_ACCELERATION_SPREAD, PROP_X_N_NEIGHBOR_ID, // used by PolyVox PROP_Y_N_NEIGHBOR_ID, // used by PolyVox PROP_Z_N_NEIGHBOR_ID, // used by PolyVox PROP_X_P_NEIGHBOR_ID, // used by PolyVox PROP_Y_P_NEIGHBOR_ID, // used by PolyVox PROP_Z_P_NEIGHBOR_ID, // used by PolyVox // Used by particles PROP_RADIUS_SPREAD, PROP_RADIUS_START, PROP_RADIUS_FINISH, PROP_ALPHA, // Supported by some derived classes //Used by particles PROP_COLOR_SPREAD, PROP_COLOR_START, PROP_COLOR_FINISH, PROP_ALPHA_SPREAD, PROP_ALPHA_START, PROP_ALPHA_FINISH, PROP_EMIT_ORIENTATION, PROP_EMIT_DIMENSIONS, PROP_EMIT_RADIUS_START, PROP_POLAR_START, PROP_POLAR_FINISH, PROP_AZIMUTH_START, PROP_AZIMUTH_FINISH, PROP_ANIMATION_LOOP, PROP_ANIMATION_FIRST_FRAME, PROP_ANIMATION_LAST_FRAME, PROP_ANIMATION_HOLD, PROP_ANIMATION_START_AUTOMATICALLY, PROP_EMITTER_SHOULD_TRAIL, PROP_PARENT_ID, PROP_PARENT_JOINT_INDEX, PROP_LOCAL_POSITION, // only used to convert values to and from scripts PROP_LOCAL_ROTATION, // only used to convert values to and from scripts PROP_QUERY_AA_CUBE, // how the EntityTree considers the size and position on an entity // ModelEntity joint state PROP_JOINT_ROTATIONS_SET, PROP_JOINT_ROTATIONS, PROP_JOINT_TRANSLATIONS_SET, PROP_JOINT_TRANSLATIONS, PROP_COLLISION_MASK, // one byte of collision group flags PROP_FALLOFF_RADIUS, // for Light entity PROP_FLYING_ALLOWED, // can avatars in a zone fly? PROP_GHOSTING_ALLOWED, // can avatars in a zone turn off physics? PROP_CLIENT_ONLY, // doesn't go over wire PROP_OWNING_AVATAR_ID, // doesn't go over wire PROP_SHAPE, PROP_DPI, PROP_LOCAL_VELOCITY, // only used to convert values to and from scripts PROP_LOCAL_ANGULAR_VELOCITY, // only used to convert values to and from scripts PROP_LAST_EDITED_BY, PROP_SERVER_SCRIPTS, PROP_FILTER_URL, // Certificable Properties PROP_ITEM_NAME, PROP_ITEM_DESCRIPTION, PROP_ITEM_CATEGORIES, PROP_ITEM_ARTIST, PROP_ITEM_LICENSE, PROP_LIMITED_RUN, // PROP_MARKETPLACE_ID is above PROP_EDITION_NUMBER, PROP_ENTITY_INSTANCE_NUMBER, PROP_CERTIFICATE_ID, PROP_HAZE_MODE, PROP_HAZE_RANGE, PROP_HAZE_COLOR, PROP_HAZE_GLARE_COLOR, PROP_HAZE_ENABLE_GLARE, PROP_HAZE_GLARE_ANGLE, PROP_HAZE_ALTITUDE_EFFECT, PROP_HAZE_CEILING, PROP_HAZE_BASE_REF, PROP_HAZE_BACKGROUND_BLEND, PROP_HAZE_ATTENUATE_KEYLIGHT, PROP_HAZE_KEYLIGHT_RANGE, PROP_HAZE_KEYLIGHT_ALTITUDE, //////////////////////////////////////////////////////////////////////////////////////////////////// // ATTENTION: add new properties to end of list just ABOVE this line PROP_AFTER_LAST_ITEM, //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// // WARNING! Do not add props here unless you intentionally mean to reuse PROP_ indexes // // These properties of TextEntity piggy back off of properties of ModelEntities, the type doesn't matter // since the derived class knows how to interpret it's own properties and knows the types it expects PROP_TEXT_COLOR = PROP_COLOR, PROP_TEXT = PROP_MODEL_URL, PROP_LINE_HEIGHT = PROP_ANIMATION_URL, PROP_BACKGROUND_COLOR = PROP_ANIMATION_FPS, PROP_COLLISION_MODEL_URL_OLD_VERSION = PROP_ANIMATION_FPS + 1, // Aliases/Piggyback properties for Zones. These properties intentionally reuse the enum values for // other properties which will never overlap with each other. We do this so that we don't have to expand // the size of the properties bitflags mask PROP_KEYLIGHT_COLOR = PROP_COLOR, PROP_KEYLIGHT_INTENSITY = PROP_INTENSITY, PROP_KEYLIGHT_AMBIENT_INTENSITY = PROP_CUTOFF, PROP_KEYLIGHT_DIRECTION = PROP_EXPONENT, PROP_STAGE_SUN_MODEL_ENABLED = PROP_IS_SPOTLIGHT, PROP_STAGE_LATITUDE = PROP_DIFFUSE_COLOR, PROP_STAGE_LONGITUDE = PROP_AMBIENT_COLOR_UNUSED, PROP_STAGE_ALTITUDE = PROP_SPECULAR_COLOR_UNUSED, PROP_STAGE_DAY = PROP_LINEAR_ATTENUATION_UNUSED, PROP_STAGE_HOUR = PROP_QUADRATIC_ATTENUATION_UNUSED, PROP_STAGE_AUTOMATIC_HOURDAY = PROP_ANIMATION_FRAME_INDEX, PROP_BACKGROUND_MODE = PROP_MODEL_URL, PROP_SKYBOX_COLOR = PROP_ANIMATION_URL, PROP_SKYBOX_URL = PROP_ANIMATION_FPS, PROP_KEYLIGHT_AMBIENT_URL = PROP_ANIMATION_PLAYING, // Aliases/Piggyback properties for Web. These properties intentionally reuse the enum values for // other properties which will never overlap with each other. PROP_SOURCE_URL = PROP_MODEL_URL, // Aliases/Piggyback properties for Particle Emmitter. These properties intentionally reuse the enum values for // other properties which will never overlap with each other. PROP_EMITTING_PARTICLES = PROP_ANIMATION_PLAYING, // WARNING!!! DO NOT ADD PROPS_xxx here unless you really really meant to.... Add them UP above }; typedef PropertyFlags EntityPropertyFlags; // this is set at the top of EntityItemProperties.cpp to PROP_AFTER_LAST_ITEM - 1. PROP_AFTER_LAST_ITEM is always // one greater than the last item property due to the enum's auto-incrementing. extern EntityPropertyList PROP_LAST_ITEM; #endif // hifi_EntityPropertyFlags_h