Compile Time Changes

// Class: cm.core.Snapper
Removed: private LayerSet systemVolumeLayer : public readable, copy=reference, ignore modify notice
Removed: private LayerSet userVolumeLayer : public readable, copy=reference, ignore modify notice
Removed: private symbol attachedSpaceVolume : public readable, ignore modify notice
Removed: private Guid _chunkId
Add: private CollInfo _collInfo : ignore modify notice;
// Class: cm.core.Animation
Removed: extend public bool allowIdleRepoValidation() : deprecated
// Class: cm.core.World
Add: extend public bool isCollWorldG3()

_chunkId has been moved to the CollInfo object.

// Class: cm.core.Entity
Removed: public symbol sectionIdG2 : ignore modify notice;
Removed: public symbol sectionParentIdG2;

Add: extend public symbol sectionIdG2()
Add: extend public symbol sectionIdG2=(symbol id)

Add: extend public symbol sectionParentIdG2()
Add: extend public symbol sectionParentIdG2=(symbol id)

These removed fields have been moved to methods and should be implemented in concrete subclasses. Snapper already implements these methods.

// Class: cm.core.Space
Removed: private symbol _sectionIdG2

// Class: cm.core.AlternativeDialog
Old: final private bool inCollWorldG2()
New: final private bool inCollWorld()

// Class: cm.core.EventViewer
Removed: extend public bool contains(Object z)
Removed: extend public Object info(symbol key, Object z=null, Object env=null)
Removed: extend public CoreObject{} snappers()

New class for in dialog core properties in - cm/core/inDialogCoreProperties.cm - cm/core/inDialogCorePropertiesWindow.cm

The core properties classes has been renamed. The class AbstractPropertiesFactory has been renamed to CoreProperties and the class AbstractPropertyFactory has been renamed to CoreProperty. Due to these name changes all method/function parameters in core classes has also been renamed to be consistent with the new naming.

CoreProperties parameters are now named 'properties'. CoreProperty parameters are now named 'property'.

The AbstractPropertiesFactory classes has been renamed and the class hierarchy has been restructured.

The following class name changes has been made to what used to be AbstractPropertiesFactory classes.

Old: public class AbstractPropertiesFactory
New: public class CoreProperties

Old: public class PropertiesFactory
New: public class CoreAnimationProperties

Old: public class QuickPropertiesFactory
New: public class CoreQuickProperties

Old: public class SpaceVesselPropertiesFactory
New: public class SpaceVesselProperties

Old: public class PropsSchemePropertiesFactory
New: public class PropsSchemeProperties

The old class hierarchy

 AbstractPropertiesFactory  --  cm.core
 |---PropertiesFactory
 |   |---DsCoreInWindowPropertiesFactory
 |   |   |---PropertiesWindowFactory
 |   |---DsCoreMemBtnPropertiesFactory
 |   |---PropsSchemePropertiesFactory
 |   |---QuickPropertiesFactory
 |   |   |---SpaceVesselPropertiesFactory
 |   |---UnitLoadPropertiesFactory

Has been turned into the new class hierarchy

CoreProperties  --  cm.core
|---CoreAnimationProperties
|---CoreQuickProperties
|   |---SpaceVesselProperties
|---DsCoreInWindowPropertiesFactory
|   |---PropertiesWindowFactory
|---DsCoreMemBtnPropertiesFactory
|---PropsSchemeProperties
|---UnitLoadPropertiesFactory

Interface changes

// Class: CoreProperties

Old: public PropObj owner : stream=null, copy=null;
New: public CorePropObj owner : stream=null, copy=null;

Old: public str factoryKey;
New: public str propertiesKey;

Old: public AbstractPropertyFactory[] propertyFactories;
New: public CoreProperty[] orderedProperties;

Old: public constructor(Window parent, PropObj owner, str->Object args=null);
New: public constructor(Window parent, CorePropObj owner, str->Object args=null);

Old: public void buildProperties(PropObj owner, bool finalize=true, symbol{} attributes=null,
                                 str{} excludeProps=null, str->Object args=null);
New: public void buildProperties(PreCorePropObj z, bool finalize=true, symbol{} attributes=null,
                                 BuildPropertiesEnv env=null, str->Object args=null);

Old: public void addFactoryToVesselInvalidate(AbstractPropertyFactory property);
New: public void addPropertyToVesselInvalidate(CoreProperty property);

Old: public void updateAuxillaryFactoryData(AbstractPropertyFactory property);
New: public void updateAuxillaryPropertyData(CoreProperty property);

The AbstractPropertyFactory classes has been renamed.

Old: public class AbstractPropertyFactory
New: public class CoreProperty

Old: public class CheckBoxPropertyFactory
New: public class CheckBoxCoreProperty

Old: public class ButtonPropertyFactory
New: public class ButtonCoreProperty

Old: public class DisplayPropertyFactory
New: public class DisplayCoreProperty

Old: public class ButtonsPropertyFactory
New: public class ButtonsCoreProperty

Old: public class ListPropertyFactory
New: public class ListCoreProperty

Old: public class InputPropertyFactory
New: public class InputCoreProperty

Old: public class SliderPropertyFactory
New: public class SliderCoreProperty

Old: public class ColorButtonPropertyFactory
New: public class ColorButtonCoreProperty

Old: public class ComboPropertyFactory
New: public class ComboCoreProperty

Old: public class SimpleMultiLineInputFactory
New: public class SimpleMultiLineInputProperty

Interface changes

// Class: CoreProperty
Old: public PropertiesFactory propertiesFactory;
New: public CoreProperties properties;

Old: public PropObj owner : copy=null, stream=null;
New: public PreCorePropObj owner : copy=null, stream=null;

Old: public constructor(PropertiesFactory factory, PropObj owner, str key, Object label=null,
                        Object domain=null, Object value=null, Object defaultValue=null,
                        class Object classType=null,
                        bool lockable=false,
                        symbol{} vesselTags=null,
                        str->Object args=null, Object env=null);

New: public constructor(CoreProperties properties, PreCorePropObj owner, str key, Object label=null,
                        Object domain=null, Object value=null, Object defaultValue=null,
                        class Object classType=null,
                        bool lockable=false,
                        symbol{} vesselTags=null,
                        str->Object args=null, Object env=null);

Old: public constructor(PropertiesFactory factory, PropObj owner, Object env);
New: public constructor(CoreProperties properties, PreCorePropObj owner, Object env);

Removed: public Object env();
Use: public PropInputSetting inputSetting();

Removed: public Object value=(Object v);
Use: public Object setValue(Object v, Object env=null);

The AbstractPropertiesUI classes has been renamed.

Old: public class AbstractPropertiesUI
New: public class CorePropertiesWindow

Old: public class QuickPropertiesUI
New: public class CoreQuickPropertiesWindow

Old: public class AbstractPropertiesUIDragEnv
New: public class CorePropertiesWindowDragEnv

Old: public class QuickPropertiesUIDragEnv
New: public class CoreQuickPropertiesWindowDragEnv

The following changes has been made to PropInputSetting.

// Class: PropertyInputSetting
Old: public function(PropertiesFactory factory, PropObj owner, Object env):AbstractPropertyFactory createProp;
New: public function(CoreProperties properties, PreCorePropObj owner, Object env):CoreProperty createProp;

This class PropInputSettingOrderNode has been removed. Since version 12.0 it only carried the group index. Set the index directly on the PropInputSetting instead.

The following changes has been made to the core properties protocol in PreCorePropObj.

// Class: PreCorePropObj
Deprecated: public bool visibleInFactory(str key, PropObj owner, symbol{} attributes=null);
Use: public bool visibleInProperties(str key, PropObj owner, symbol{} attributes=null);

The following interface changes has been made to CorePropObj.

// Class: CorePropObj
Deprecated: public void orderFactoryProperties(PropertyOrder order, CoreProperties properties);
Use: public void postBuildOrderProperties(PropertyOrder order, CoreProperties properties);

Old: extend public void additionalCorePropertyObjects(PreCorePropObj[] objs)
New: extend public void additionalCorePropertyObjects(PreCorePropObj[] objs, symbol{} attributes)

The following classes and interfaces related to them have been removed

Removed: public class GLView3D
Removed: public class GLPreview3D
Removed: public class ComboView3D
Removed: public class SnapperRepository3D
Removed: public class SnapperRepositoryCache3D

renderingHiddenLines have been removed, the affected interfaces have been adjusted to not use it.

Removed: public bool renderingHiddenLine