// Class: cm.abstract.dataSymInterface.DsiSelOptionEnv Deprecated: public bool propagateStretch; Deprecated: public bool propagateStretchAbsValue; // Class: cm.abstract.dataSymInterface.catalog.DsMeasureParamType Deprecated: extend public str{} stretchMeasureParams() { Deprecated: extend public str{} stretchMeasureParams=(str{} stretchMeasureParams) { Deprecated: extend public void appendStretchMeasureParam(str measureParam) { Deprecated: extend public bool removeStretchMeasureParam(str measureParam) {
Json-functionality in DsiPData
has been refactored into a separate class called DsiPDataJsonInterface
, and is available by calling .jsonInterface()
on the DsiPData
-object.
Example:
Old: dsiPData.toJson(); New: dsiPData.jsonInterface.toJson();
// Class: cm.abstract.dataSymbol.DsSyncGroupContainer Old: extend public bool syncOptions(DsPData target, str matchingSyncGroupId=null, str{} matchingPropKeys=null, str{} visited=null, bool recursive=true, Object env=null) { New: extend public bool syncOptions(DsPData target, str matchingSyncGroupId=null, str{} matchingPropKeys=null, str{} visited=null, str{} visitedSyncGroups=null, bool recursive=true, Object env=null) { // Class: cm.abstract.dataSymbol.DsPData Deprecated: public str->(str->(< double, double>)) propagateStretchInfo: copy=null, stream=null; Deprecated: extend public void clearPropagateStretchInfo() // Package: cm.abstract.dataSymbol.propDefs Deprecated: private void propagateStretch(DsPData data, PreCorePropObj owner, SFeature feature, double value, double delta, DsiSelOModifyEnv env) {
Fixed a bug with DsMaterialLimb where the filter wouldn't work due to the limbs not being fully built.
Removed: public class DsPreviewSnapperGLView3D
The following class and interface related to it have been removed
Removed: public class IndSoulGLView3D
Legacy package that has been removed.
Added support for MaterialTreeViewItem
in appendItemIfPassedFilter()
on AbsMaterialDialog
.
PMSifExport
class
AOSifExport
with 12.0getPickSurface()
(cm/abstract/office/functions.cm) now takes in an optional Space
argument.Worksurface
snapping properties have been renamed
gCurrentWorksurfaceConnectAutoMode
-> gWksfConnectAutoMode
gCurrentWorksurfaceConnectSide
-> gWksfConnectSide
gCurrentWorksurfaceConnectSpecificType
-> gWksfConnectType
OfficeSnapperManagerDialog
_w
, _d
, _h
, and _overrideW
fields public on PanelFrame
-This was a small change to allow for people to actually override the setters/getters for those fields.
pickedUp()
since it didn't seem to ever get hit.
PfSnapClickAnimation
was moved to its own file cm/abstract/office/pfSnapclickAnimation.cmtrue
from trySnapToDeskingSystem()
on WorksurfaceSnapping
` This was to fix an issue where other snapping methods wouldn't get hit in some cases.AOMultiPData
to get str->Graph
and str->Primitive3D
maps for graphics from its DsPData
s.The following class and interfaces related to it has been removed
Removed: public class OfficeSnapperManagerGLView3D
// Class: cm.abstract.revHistory.RevHData Old: extend public Snapper[] affectedSnappers(World world) New: extend public Snapper[] affectedSnappers() Old: extend public void append(Snapper z, RevHItem item) New: extend public void append(RevHItem item) Old: extend public void appendNew(Snapper z) New: extend public void appendNew() Old: extend public void removeItem(int idx, Snapper snapper=null) New: extend public void removeItem(int idx) // Class: cm.abstract.revHistory.RevHItem Old: extend public void setValue(RevHData data, str key, str v) New: extend public void setValue(str key, str v)
// Class: cm.application.PaperSelectionPanel Old: final public void updateNewAndDeleteButtons(bool refresh=true) New: final public void updateDeleteButtons(bool refresh=true) Old: final public void updateNewLoadCopyButtons(bool refresh=true) New: final public void updateNewLoadCopySaveButtons(bool refresh=true)
// 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
// Functions Add: public bool hasBlock(Snapper{} snappers)
// Class: cm.core.block.Block Add: extend public bool shouldRemoveBlockSpace() Add: extend public bool allowExistWithoutOwners() Add: extend public symbol sectionIdG3() Add: extend public bool isCollBlockG3() Add: extend public bool isCollSharedG3() Add: extend public bool isCollCommittedSharedG3() Add: extend public void updateCollBlockAfterAppendG3(Snapper appended) Add: extend public void updateCollBlockAfterRemoveG3(Snapper removed)
// Class: cm.core.block.BlockStreamData Add: public symbol sectionIdG3; Add: public collBlockSharedStateG3 collSharedStateG3 = collBlockSharedStateG3.notShared; Add: extend public bool isCollSharedG3()
// Class: cm.core.block.BlockSpace Add: public collBlockSharedStateG3 collSharedStateG3 = collBlockSharedStateG3.notShared; Add: extend public void propagateSectionIdG3() Add: extend public bool isCollSharedG3() Add: extend public bool isCollCommittedSharedG3() Add: extend public void collShareG3(symbol sharedId, collBlockSharedStateG3 sharedState, bool propagate=true) Add: extend public void collUnshareG3(symbol normalId, bool propagate=true)
// Class: cm.core.block.BlockTreeViewItem Add: extend public bool allowExplodeBlock()
// Functions: Add: public void validateCurrentArticleView(Space space) Add: public void updateCalculationArea() Add: public void updateCalculationDialogCaption()
// Class: cm.core.calc.CalculationView Add: extend public void notifyModified()
// Class: cm.core.calc.PartColumnTool Add: extend public bool modifiesView()
// Functions: Add: public CustomCategoryRecord registerCustomCategory(World world, CustomCategoryRecord category, symbol parent) Add: public void saveCustomCategories(World world)
The package cm.core.lightworks has been removed.
// Functions: New: public PartTag getPartTag(World world, str uid) New: public void removePartTag(World world, str uid) New: public PartTagCategory getPartTagCategory(World world, str uid) New: public void removePartTagCategory(World world, str uid) New: public void removePartTagCategoryFromWorld(World world, PartTagCategory tc, bool undoable=true) New: public void removePartTagFromWorld(World world, PartTag tag, bool undoable=true) New: public void updatePartTagCategoriesOnLoad(World world)
// Class: cm.core.partTag.PartTagDialog Old: final public void updateView(bool keepSelection=false, bool refresh=false) New: final public void updateView(bool keepSelection=false) Old: extend public bool isPartTagReadOnly() New: extend public bool collPartTagsReadOnlyG2(World world)
// Class: cm.core.partTag.PartTagUndo Removed: public Space space : copy=reference; Add: public World world : copy=reference; Old: public constructor(PartTag tag, PartTagCategory cat, Space space, bool isRemoveOp=false) New: public constructor(PartTag tag, PartTagCategory cat, World world, bool isRemoveOp=false)
// Class: cm.core.propsScheme.PropsSchemeContainer Removed: extend public void initializeContainer() : deprecated { Removed: extend public str getCurrent(str key) : deprecated { Removed: extend public void loadDrawingSchemes(str systemKey) : deprecated //Removed methods are replaced with new methods below Old: extend public void initializeContainer2(World w=null) New: extend public void initializeContainer(World w=null) Old: extend public str getCurrent2(str key, World w=null) New: extend public str getCurrent(str key, World w=null) Old: extend public void loadDrawingSchemes2(str systemKey, World w=null) New: extend public void loadDrawingSchemes(str systemKey, World w=null) // Class: cm.core.propsScheme.PropsSchemeManager Removed: final public bool assignToContainer(PropsScheme scheme, bool replace=false) : deprecated //Replaced with new method below Old: final public bool assignToContainer2(PropsScheme scheme, bool replace=false, PropsSchemeContainer container=null) New: final public bool assignToContainer(PropsScheme scheme, bool replace=false, PropsSchemeContainer container=null) Removed: public void registerSchemesParent(str[] systemKeys, str parentSystemKey) : deprecated // Package: cm.core.propsScheme Removed: public class OpenSchemePropertyPropDef extends PropDef : deprecated { } //Now using PropsSchemeQPPropDef instead (in cm.core.propsScheme) // Class: cm.core.propsScheme.SchemePainterDialog Removed: public bool applyAll=true; Removed: extend public Snapper{} beforeUserApply(Snapper{} snappers, Space space, World world) { Removed: extend public Snapper{} afterUserApply(Snapper{} snappers, Space space, World world) { Removed: private void applyAllCB(Control c) { // Class: cm.core.propsScheme.SpecificPropsScheme Removed: public bool removeEmptyNodes(PropsSchemeUIFactory factory, PropsSchemeData data) { New: public bool hideEmptyNodes(PropsSchemeUIFactory factory) { // Class: cm.core.propsScheme.layout.PsLayout Removed: extend public PsLayoutAbstractPropertyEntry[] getEntriesFromSection(str k) { New: extend public PsLayoutAbstractPropertyEntry[] getEntriesFromSection(str sectionKey, str tabKey) { Removed: extend public PsLayoutSection getSection(str k) { New: extend public PsLayoutSection getSection(str sectionKey, str tabKey) { Removed: extend public void addToSection(str sectionKey, PsLayoutAbstractPropertyEntry entry) { New: extend public void addToSection(str tabKey, str sectionKey, PsLayoutAbstractPropertyEntry entry) { // Class: cm.core.propsScheme.layout.PsLayoutPropertyEntryUIFactory Old: extend public void controlChanged(Control c, str key, Object value) New: extend public void controlChanged(Control c, str key, Object value, Object env=null) // Package: cm.core.propsScheme.layout.editor Removed: public class PsLayoutEditCustomKeyDialog extends SlimCaptionDialog : abstract { Removed: package class PsLayoutItemTVIEditKeyDialog extends PsLayoutEditCustomKeyDialog { Removed: package class PsLayoutPropertyEditKeyDialog extends PsLayoutEditCustomKeyDialog { Removed: package class PsLayoutSectionEditKeyDialog extends PsLayoutEditCustomKeyDialog { Removed: private void keyEditedCallback(Control c) { Removed: private void keyApplyCB(Control c) { Removed: public void closeOpenEditKeyDialog() { Removed: public void showLayoutItemTVIEditKeyDialog(Window window) { Removed: public void showLayoutPropertyEditKeyDialog(Window window) { Removed: public void showLayoutSectionEditKeyDialog(Window window) //Moved edit key to the PsLayoutEditLabelDialog instead. If you need to control how that is built, please override the following in PsLayoutEditLabelDialog New: extend public void buildKeyEdit() {
// File: cm.core.red3D.redViewCamera3D.cm
Old: public float magicFovDiv2Calculation(angle fov, int w, int h)
New: public float magicFovDiv2Calculation(angle fov, float w, float h)
The following class and interfaces related to it has been removed
Removed: public class REDAndLWComboView3D
// Class: cm.core.selection.SpaceSelection Add: extend public void loadedAsFavorite()
// Class: cm.core.selection.SpaceSelectionBound Add: extend public bool readOnly()
// File: cm.core.spaceVolume.spaceVolumes.cm Old: public SpaceVolume attachedSpaceVolume(Snapper z) New: public SpaceVolume attachedSpaceVolumeObject(Snapper z)
// Class: cm.core.viewport.ViewportSnapper Add: extend public ViewContentFilterEnv visibilitySettingsViewContentFilterEnv() Add: extend public LayerSet layerSet()
// Class: cm.core.viewport.ViewportSnapper3D Add: extend public symbol{} localCollDepIdsG3() Add: extend public bool addLocalCollDepG3(symbol depId) Add: extend public bool removeLocalCollDepG3(symbol depId) Add: extend public void clearLocalCollDepsG3() Add: extend public void localCollDepsChangedG3() Add: extend public void removeCollFileDepsG3() Add: extend public void restoreCollFileDepsG3(Space space=null) Add: extend public void updateLocalCollDepsG3()
// Class: cm.visibility.categorize.CategorizeDialogCard Old: extend public bool isCategoryReadOnly() New: extend public bool isCategoryReadOnly(CustomCategoryRecord cat)
isCategoryReadOnly
now returns the read only status for a given category. To get the read only status for all categories, use isCategoriesReadOnly
instead.
// Class: cm.core.xclip.XClipVisibility Add: extend public LayerSet collLayerSetG3()
// Class: cm.core.xclip.XClipWormholeSnapper Add: extend public symbol{} sourceSectionIdsG3() Add: extend public symbol{} localCollDepIdsG3() Add: extend public bool addLocalCollDepG3(symbol depId) Add: extend public bool removeLocalCollDepG3(symbol depId) Add: extend public void clearLocalCollDepsG3() Add: extend public void localCollDepsChangedG3() Add: extend public void updateLocalCollDepsG3() Add: extend public void removeCollFileDepsG3() Add: extend public void restoreCollFileDepsG3(Space space=null)
The following classes and interfaces referencing them have been removed.
Removed: public class CachedLOD3D Removed: public class LODPainter3D Removed: public class LWRepository3D Removed: public class PrimitiveLOD3D
// Class: cm.std.architectural.FloorViewItem Old: extend public bool updateLockAndSolid(ViewItemButton button) New: extend public bool updateLock(ViewItemButton lockButton)
// Class: cm.core.Photo Removed: extend public RenderSettings giSettings() Removed: extend public RenderSettings giSettings=(RenderSettings settings)
The methods above was empty since 10.5. If you want to control the GI quality you need to do this through Photo.renderSettingsG2. For instance:
RenderSettingsG2 settings = photo.renderSettingsG2; settings.masterQuality = renderQuality.medium;
Keep in mind that the code above affects overall quality of the rendering. If you need to tweak the GI settings explicitly you can do the following:
photo.renderSettingsG2."RAY_GI_CACHE_HEMI_SAMPLING_RATE" = 22; photo.renderSettingsG2."RAY_GI_ESTIMATOR_SAMPLING_RATE" = 200; photo.renderSettingsG2."RAY_GI_CACHE_PRECISE" = false; photo.renderSettingsG2."RAY_GI_CACHE_PASSES_COUNT" = 1; photo.renderSettingsG2."RAY_GI_CACHE_INTERP_SAMPLES_COUNT" = 20;
// Class: cm.test.tscript.TScript Old: final public void insert(Snapper snapper, point2D pos=(0, 0), angle yaw=0 deg) New: final public void insert(Snapper snapper, point2D pos=(0, 0), angle yaw=0 deg, bool flush=true)
// Class: cm.win.DateRangeSelector Old: extend public void setStartDate(Date d) New: extend public void setStartDate(Date d, bool invokeCB=true) Old: extend public void setEndDate(Date d) New: extend public void setEndDate(Date d, bool invokeCB=true)
// Class: cm.win.Window New: extend public bool allowKeyBindingAction(str actionKey)
// Class: custom.dataCatalog.builder.geometry.DcMeasureParamSub Deprecated: public Display stretchMeasureParamsLabel; Deprecated: public TreeView stretchMeasureParamsTreeView; Deprecated: extend public void buildAdditionalProductConstrols(DcAddProductTreeViewItem parent, FrameStyle frameStyle) // Package: custom.dataCatalog.builder.undo Deprecated: public class DcAddStretchMeasureParamUndo extends DcUndoOp { Deprecated: public class DcRemoveStretchMeasureParamUndo extends DcUndoOp { // Class: custom.dataCatalog.builder.scheme.DcDBBuilderEditSchemeCard Removed: private str _updateKey; Removed: private bool _forceRebuild; // Class: custom.dataCatalog.builder.DcMenuSubWindow Old: extend public void closeDataFile(bool clearUndo=true, bool openNew=false) { New: extend public void closeDataFile(bool clearUndo=true, bool openNew=false, bool update=true) { Old: final private void postCloseDataFile(bool clearUndo, bool openNew) New: final private void postCloseDataFile(bool clearUndo, bool openNew, bool update) { // Class: custom.dataCatalog.builder.dcCurrentCatalogs.cm Old: extend public void removeCurrentDataCatalogs() { New: extend public void removeCurrentDataCatalogs(bool update) {