mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-07-25 11:34:47 +02:00
373 lines
12 KiB
C
373 lines
12 KiB
C
//
|
|
// 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 <PropertyFlags.h>
|
|
|
|
enum EntityPropertyList {
|
|
PROP_PAGED_PROPERTY,
|
|
PROP_CUSTOM_PROPERTIES_INCLUDED,
|
|
|
|
// Core properties
|
|
PROP_SIMULATION_OWNER,
|
|
PROP_PARENT_ID,
|
|
PROP_PARENT_JOINT_INDEX,
|
|
PROP_VISIBLE,
|
|
PROP_NAME,
|
|
PROP_LOCKED,
|
|
PROP_USER_DATA,
|
|
PROP_PRIVATE_USER_DATA,
|
|
PROP_HREF,
|
|
PROP_DESCRIPTION,
|
|
PROP_POSITION,
|
|
PROP_DIMENSIONS,
|
|
PROP_ROTATION,
|
|
PROP_REGISTRATION_POINT,
|
|
PROP_CREATED,
|
|
PROP_LAST_EDITED_BY,
|
|
PROP_ENTITY_HOST_TYPE, // not sent over the wire
|
|
PROP_OWNING_AVATAR_ID, // not sent over the wire
|
|
PROP_QUERY_AA_CUBE,
|
|
PROP_CAN_CAST_SHADOW,
|
|
PROP_VISIBLE_IN_SECONDARY_CAMERA, // not sent over the wire
|
|
PROP_RENDER_LAYER,
|
|
PROP_PRIMITIVE_MODE,
|
|
PROP_IGNORE_PICK_INTERSECTION,
|
|
// Grab
|
|
PROP_GRAB_GRABBABLE,
|
|
PROP_GRAB_KINEMATIC,
|
|
PROP_GRAB_FOLLOWS_CONTROLLER,
|
|
PROP_GRAB_TRIGGERABLE,
|
|
PROP_GRAB_EQUIPPABLE,
|
|
PROP_GRAB_DELEGATE_TO_PARENT,
|
|
PROP_GRAB_LEFT_EQUIPPABLE_POSITION_OFFSET,
|
|
PROP_GRAB_LEFT_EQUIPPABLE_ROTATION_OFFSET,
|
|
PROP_GRAB_RIGHT_EQUIPPABLE_POSITION_OFFSET,
|
|
PROP_GRAB_RIGHT_EQUIPPABLE_ROTATION_OFFSET,
|
|
PROP_GRAB_EQUIPPABLE_INDICATOR_URL,
|
|
PROP_GRAB_EQUIPPABLE_INDICATOR_SCALE,
|
|
PROP_GRAB_EQUIPPABLE_INDICATOR_OFFSET,
|
|
|
|
// Physics
|
|
PROP_DENSITY,
|
|
PROP_VELOCITY,
|
|
PROP_ANGULAR_VELOCITY,
|
|
PROP_GRAVITY,
|
|
PROP_ACCELERATION,
|
|
PROP_DAMPING,
|
|
PROP_ANGULAR_DAMPING,
|
|
PROP_RESTITUTION,
|
|
PROP_FRICTION,
|
|
PROP_LIFETIME,
|
|
PROP_COLLISIONLESS,
|
|
PROP_COLLISION_MASK,
|
|
PROP_DYNAMIC,
|
|
PROP_COLLISION_SOUND_URL,
|
|
PROP_ACTION_DATA,
|
|
|
|
// Cloning
|
|
PROP_CLONEABLE,
|
|
PROP_CLONE_LIFETIME,
|
|
PROP_CLONE_LIMIT,
|
|
PROP_CLONE_DYNAMIC,
|
|
PROP_CLONE_AVATAR_ENTITY,
|
|
PROP_CLONE_ORIGIN_ID,
|
|
|
|
// Scripts
|
|
PROP_SCRIPT,
|
|
PROP_SCRIPT_TIMESTAMP,
|
|
PROP_SERVER_SCRIPTS,
|
|
|
|
// Certifiable Properties
|
|
PROP_ITEM_NAME,
|
|
PROP_ITEM_DESCRIPTION,
|
|
PROP_ITEM_CATEGORIES,
|
|
PROP_ITEM_ARTIST,
|
|
PROP_ITEM_LICENSE,
|
|
PROP_LIMITED_RUN,
|
|
PROP_MARKETPLACE_ID,
|
|
PROP_EDITION_NUMBER,
|
|
PROP_ENTITY_INSTANCE_NUMBER,
|
|
PROP_CERTIFICATE_ID,
|
|
PROP_CERTIFICATE_TYPE,
|
|
PROP_STATIC_CERTIFICATE_VERSION,
|
|
|
|
// Used to convert values to and from scripts
|
|
PROP_LOCAL_POSITION,
|
|
PROP_LOCAL_ROTATION,
|
|
PROP_LOCAL_VELOCITY,
|
|
PROP_LOCAL_ANGULAR_VELOCITY,
|
|
PROP_LOCAL_DIMENSIONS,
|
|
|
|
// These properties are used by multiple subtypes but aren't in the base EntityItem
|
|
PROP_SHAPE_TYPE,
|
|
PROP_COMPOUND_SHAPE_URL,
|
|
PROP_COLOR,
|
|
PROP_ALPHA,
|
|
PROP_PULSE_MIN,
|
|
PROP_PULSE_MAX,
|
|
PROP_PULSE_PERIOD,
|
|
PROP_PULSE_COLOR_MODE,
|
|
PROP_PULSE_ALPHA_MODE,
|
|
PROP_TEXTURES,
|
|
PROP_BILLBOARD_MODE,
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// ATTENTION: add new shared EntityItem properties to the list ABOVE this line
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// We need as many of these as the number of unique properties of a derived EntityItem class
|
|
PROP_DERIVED_0,
|
|
PROP_DERIVED_1,
|
|
PROP_DERIVED_2,
|
|
PROP_DERIVED_3,
|
|
PROP_DERIVED_4,
|
|
PROP_DERIVED_5,
|
|
PROP_DERIVED_6,
|
|
PROP_DERIVED_7,
|
|
PROP_DERIVED_8,
|
|
PROP_DERIVED_9,
|
|
PROP_DERIVED_10,
|
|
PROP_DERIVED_11,
|
|
PROP_DERIVED_12,
|
|
PROP_DERIVED_13,
|
|
PROP_DERIVED_14,
|
|
PROP_DERIVED_15,
|
|
PROP_DERIVED_16,
|
|
PROP_DERIVED_17,
|
|
PROP_DERIVED_18,
|
|
PROP_DERIVED_19,
|
|
PROP_DERIVED_20,
|
|
PROP_DERIVED_21,
|
|
PROP_DERIVED_22,
|
|
PROP_DERIVED_23,
|
|
PROP_DERIVED_24,
|
|
PROP_DERIVED_25,
|
|
PROP_DERIVED_26,
|
|
PROP_DERIVED_27,
|
|
PROP_DERIVED_28,
|
|
PROP_DERIVED_29,
|
|
PROP_DERIVED_30,
|
|
PROP_DERIVED_31,
|
|
|
|
PROP_AFTER_LAST_ITEM,
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// WARNING! Do not add props here unless you intentionally mean to reuse PROP_DERIVED_X indexes
|
|
//
|
|
// 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
|
|
//
|
|
// Only add properties here that are only used by one subclass. Otherwise, they should go above to prevent collisions
|
|
|
|
// Particles
|
|
PROP_MAX_PARTICLES = PROP_DERIVED_0,
|
|
PROP_LIFESPAN = PROP_DERIVED_1,
|
|
PROP_EMITTING_PARTICLES = PROP_DERIVED_2,
|
|
PROP_EMIT_RATE = PROP_DERIVED_3,
|
|
PROP_EMIT_SPEED = PROP_DERIVED_4,
|
|
PROP_SPEED_SPREAD = PROP_DERIVED_5,
|
|
PROP_EMIT_ORIENTATION = PROP_DERIVED_6,
|
|
PROP_EMIT_DIMENSIONS = PROP_DERIVED_7,
|
|
PROP_ACCELERATION_SPREAD = PROP_DERIVED_8,
|
|
PROP_POLAR_START = PROP_DERIVED_9,
|
|
PROP_POLAR_FINISH = PROP_DERIVED_10,
|
|
PROP_AZIMUTH_START = PROP_DERIVED_11,
|
|
PROP_AZIMUTH_FINISH = PROP_DERIVED_12,
|
|
PROP_EMIT_RADIUS_START = PROP_DERIVED_13,
|
|
PROP_EMIT_ACCELERATION = PROP_DERIVED_14,
|
|
PROP_PARTICLE_RADIUS = PROP_DERIVED_15,
|
|
PROP_RADIUS_SPREAD = PROP_DERIVED_16,
|
|
PROP_RADIUS_START = PROP_DERIVED_17,
|
|
PROP_RADIUS_FINISH = PROP_DERIVED_18,
|
|
PROP_COLOR_SPREAD = PROP_DERIVED_19,
|
|
PROP_COLOR_START = PROP_DERIVED_20,
|
|
PROP_COLOR_FINISH = PROP_DERIVED_21,
|
|
PROP_ALPHA_SPREAD = PROP_DERIVED_22,
|
|
PROP_ALPHA_START = PROP_DERIVED_23,
|
|
PROP_ALPHA_FINISH = PROP_DERIVED_24,
|
|
PROP_EMITTER_SHOULD_TRAIL = PROP_DERIVED_25,
|
|
PROP_PARTICLE_SPIN = PROP_DERIVED_26,
|
|
PROP_SPIN_START = PROP_DERIVED_27,
|
|
PROP_SPIN_FINISH = PROP_DERIVED_28,
|
|
PROP_SPIN_SPREAD = PROP_DERIVED_29,
|
|
PROP_PARTICLE_ROTATE_WITH_ENTITY = PROP_DERIVED_30,
|
|
|
|
// Model
|
|
PROP_MODEL_URL = PROP_DERIVED_0,
|
|
PROP_MODEL_SCALE = PROP_DERIVED_1,
|
|
PROP_JOINT_ROTATIONS_SET = PROP_DERIVED_2,
|
|
PROP_JOINT_ROTATIONS = PROP_DERIVED_3,
|
|
PROP_JOINT_TRANSLATIONS_SET = PROP_DERIVED_4,
|
|
PROP_JOINT_TRANSLATIONS = PROP_DERIVED_5,
|
|
PROP_RELAY_PARENT_JOINTS = PROP_DERIVED_6,
|
|
PROP_GROUP_CULLED = PROP_DERIVED_7,
|
|
// Animation
|
|
PROP_ANIMATION_URL = PROP_DERIVED_8,
|
|
PROP_ANIMATION_ALLOW_TRANSLATION = PROP_DERIVED_9,
|
|
PROP_ANIMATION_FPS = PROP_DERIVED_10,
|
|
PROP_ANIMATION_FRAME_INDEX = PROP_DERIVED_11,
|
|
PROP_ANIMATION_PLAYING = PROP_DERIVED_12,
|
|
PROP_ANIMATION_LOOP = PROP_DERIVED_13,
|
|
PROP_ANIMATION_FIRST_FRAME = PROP_DERIVED_14,
|
|
PROP_ANIMATION_LAST_FRAME = PROP_DERIVED_15,
|
|
PROP_ANIMATION_HOLD = PROP_DERIVED_16,
|
|
|
|
// Light
|
|
PROP_IS_SPOTLIGHT = PROP_DERIVED_0,
|
|
PROP_INTENSITY = PROP_DERIVED_1,
|
|
PROP_EXPONENT = PROP_DERIVED_2,
|
|
PROP_CUTOFF = PROP_DERIVED_3,
|
|
PROP_FALLOFF_RADIUS = PROP_DERIVED_4,
|
|
|
|
// Text
|
|
PROP_TEXT = PROP_DERIVED_0,
|
|
PROP_LINE_HEIGHT = PROP_DERIVED_1,
|
|
PROP_TEXT_COLOR = PROP_DERIVED_2,
|
|
PROP_TEXT_ALPHA = PROP_DERIVED_3,
|
|
PROP_BACKGROUND_COLOR = PROP_DERIVED_4,
|
|
PROP_BACKGROUND_ALPHA = PROP_DERIVED_5,
|
|
PROP_LEFT_MARGIN = PROP_DERIVED_6,
|
|
PROP_RIGHT_MARGIN = PROP_DERIVED_7,
|
|
PROP_TOP_MARGIN = PROP_DERIVED_8,
|
|
PROP_BOTTOM_MARGIN = PROP_DERIVED_9,
|
|
PROP_UNLIT = PROP_DERIVED_10,
|
|
|
|
// Zone
|
|
// Keylight
|
|
PROP_KEYLIGHT_COLOR = PROP_DERIVED_0,
|
|
PROP_KEYLIGHT_INTENSITY = PROP_DERIVED_1,
|
|
PROP_KEYLIGHT_DIRECTION = PROP_DERIVED_2,
|
|
PROP_KEYLIGHT_CAST_SHADOW = PROP_DERIVED_3,
|
|
// Ambient light
|
|
PROP_AMBIENT_LIGHT_INTENSITY = PROP_DERIVED_4,
|
|
PROP_AMBIENT_LIGHT_URL = PROP_DERIVED_5,
|
|
// Skybox
|
|
PROP_SKYBOX_COLOR = PROP_DERIVED_6,
|
|
PROP_SKYBOX_URL = PROP_DERIVED_7,
|
|
// Haze
|
|
PROP_HAZE_RANGE = PROP_DERIVED_8,
|
|
PROP_HAZE_COLOR = PROP_DERIVED_9,
|
|
PROP_HAZE_GLARE_COLOR = PROP_DERIVED_10,
|
|
PROP_HAZE_ENABLE_GLARE = PROP_DERIVED_11,
|
|
PROP_HAZE_GLARE_ANGLE = PROP_DERIVED_12,
|
|
PROP_HAZE_ALTITUDE_EFFECT = PROP_DERIVED_13,
|
|
PROP_HAZE_CEILING = PROP_DERIVED_14,
|
|
PROP_HAZE_BASE_REF = PROP_DERIVED_15,
|
|
PROP_HAZE_BACKGROUND_BLEND = PROP_DERIVED_16,
|
|
PROP_HAZE_ATTENUATE_KEYLIGHT = PROP_DERIVED_17,
|
|
PROP_HAZE_KEYLIGHT_RANGE = PROP_DERIVED_18,
|
|
PROP_HAZE_KEYLIGHT_ALTITUDE = PROP_DERIVED_19,
|
|
// Bloom
|
|
PROP_BLOOM_INTENSITY = PROP_DERIVED_20,
|
|
PROP_BLOOM_THRESHOLD = PROP_DERIVED_21,
|
|
PROP_BLOOM_SIZE = PROP_DERIVED_22,
|
|
PROP_FLYING_ALLOWED = PROP_DERIVED_23,
|
|
PROP_GHOSTING_ALLOWED = PROP_DERIVED_24,
|
|
PROP_FILTER_URL = PROP_DERIVED_25,
|
|
PROP_KEY_LIGHT_MODE = PROP_DERIVED_26,
|
|
PROP_AMBIENT_LIGHT_MODE = PROP_DERIVED_27,
|
|
PROP_SKYBOX_MODE = PROP_DERIVED_28,
|
|
PROP_HAZE_MODE = PROP_DERIVED_29,
|
|
PROP_BLOOM_MODE = PROP_DERIVED_30,
|
|
// Avatar priority
|
|
PROP_AVATAR_PRIORITY = PROP_DERIVED_31,
|
|
|
|
// Polyvox
|
|
PROP_VOXEL_VOLUME_SIZE = PROP_DERIVED_0,
|
|
PROP_VOXEL_DATA = PROP_DERIVED_1,
|
|
PROP_VOXEL_SURFACE_STYLE = PROP_DERIVED_2,
|
|
PROP_X_TEXTURE_URL = PROP_DERIVED_3,
|
|
PROP_Y_TEXTURE_URL = PROP_DERIVED_4,
|
|
PROP_Z_TEXTURE_URL = PROP_DERIVED_5,
|
|
PROP_X_N_NEIGHBOR_ID = PROP_DERIVED_6,
|
|
PROP_Y_N_NEIGHBOR_ID = PROP_DERIVED_7,
|
|
PROP_Z_N_NEIGHBOR_ID = PROP_DERIVED_8,
|
|
PROP_X_P_NEIGHBOR_ID = PROP_DERIVED_9,
|
|
PROP_Y_P_NEIGHBOR_ID = PROP_DERIVED_10,
|
|
PROP_Z_P_NEIGHBOR_ID = PROP_DERIVED_11,
|
|
|
|
// Web
|
|
PROP_SOURCE_URL = PROP_DERIVED_0,
|
|
PROP_DPI = PROP_DERIVED_1,
|
|
PROP_SCRIPT_URL = PROP_DERIVED_2,
|
|
PROP_MAX_FPS = PROP_DERIVED_3,
|
|
PROP_INPUT_MODE = PROP_DERIVED_4,
|
|
PROP_SHOW_KEYBOARD_FOCUS_HIGHLIGHT = PROP_DERIVED_5,
|
|
|
|
// Polyline
|
|
PROP_LINE_POINTS = PROP_DERIVED_0,
|
|
PROP_STROKE_WIDTHS = PROP_DERIVED_1,
|
|
PROP_STROKE_NORMALS = PROP_DERIVED_2,
|
|
PROP_STROKE_COLORS = PROP_DERIVED_3,
|
|
PROP_IS_UV_MODE_STRETCH = PROP_DERIVED_4,
|
|
PROP_LINE_GLOW = PROP_DERIVED_5,
|
|
PROP_LINE_FACE_CAMERA = PROP_DERIVED_6,
|
|
|
|
// Shape
|
|
PROP_SHAPE = PROP_DERIVED_0,
|
|
|
|
// Material
|
|
PROP_MATERIAL_URL = PROP_DERIVED_0,
|
|
PROP_MATERIAL_MAPPING_MODE = PROP_DERIVED_1,
|
|
PROP_MATERIAL_PRIORITY = PROP_DERIVED_2,
|
|
PROP_PARENT_MATERIAL_NAME = PROP_DERIVED_3,
|
|
PROP_MATERIAL_MAPPING_POS = PROP_DERIVED_4,
|
|
PROP_MATERIAL_MAPPING_SCALE = PROP_DERIVED_5,
|
|
PROP_MATERIAL_MAPPING_ROT = PROP_DERIVED_6,
|
|
PROP_MATERIAL_DATA = PROP_DERIVED_7,
|
|
PROP_MATERIAL_REPEAT = PROP_DERIVED_8,
|
|
|
|
// Image
|
|
PROP_IMAGE_URL = PROP_DERIVED_0,
|
|
PROP_EMISSIVE = PROP_DERIVED_1,
|
|
PROP_KEEP_ASPECT_RATIO = PROP_DERIVED_2,
|
|
PROP_SUB_IMAGE = PROP_DERIVED_3,
|
|
|
|
// Grid
|
|
PROP_GRID_FOLLOW_CAMERA = PROP_DERIVED_0,
|
|
PROP_MAJOR_GRID_EVERY = PROP_DERIVED_1,
|
|
PROP_MINOR_GRID_EVERY = PROP_DERIVED_2,
|
|
|
|
// Gizmo
|
|
PROP_GIZMO_TYPE = PROP_DERIVED_0,
|
|
// Ring
|
|
PROP_START_ANGLE = PROP_DERIVED_1,
|
|
PROP_END_ANGLE = PROP_DERIVED_2,
|
|
PROP_INNER_RADIUS = PROP_DERIVED_3,
|
|
PROP_INNER_START_COLOR = PROP_DERIVED_4,
|
|
PROP_INNER_END_COLOR = PROP_DERIVED_5,
|
|
PROP_OUTER_START_COLOR = PROP_DERIVED_6,
|
|
PROP_OUTER_END_COLOR = PROP_DERIVED_7,
|
|
PROP_INNER_START_ALPHA = PROP_DERIVED_8,
|
|
PROP_INNER_END_ALPHA = PROP_DERIVED_9,
|
|
PROP_OUTER_START_ALPHA = PROP_DERIVED_10,
|
|
PROP_OUTER_END_ALPHA = PROP_DERIVED_11,
|
|
PROP_HAS_TICK_MARKS = PROP_DERIVED_12,
|
|
PROP_MAJOR_TICK_MARKS_ANGLE = PROP_DERIVED_13,
|
|
PROP_MINOR_TICK_MARKS_ANGLE = PROP_DERIVED_14,
|
|
PROP_MAJOR_TICK_MARKS_LENGTH = PROP_DERIVED_15,
|
|
PROP_MINOR_TICK_MARKS_LENGTH = PROP_DERIVED_16,
|
|
PROP_MAJOR_TICK_MARKS_COLOR = PROP_DERIVED_17,
|
|
PROP_MINOR_TICK_MARKS_COLOR = PROP_DERIVED_18,
|
|
|
|
// WARNING!!! DO NOT ADD PROPS_xxx here unless you really really meant to.... Add them UP above
|
|
};
|
|
|
|
typedef PropertyFlags<EntityPropertyList> 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
|