MCPcopy Create free account
hub / github.com/codereader/DarkRadiant / constructClone

Method constructClone

radiantcore/entity/EntityNode.cpp:95–118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93}
94
95void EntityNode::constructClone(const EntityNode& original)
96{
97 // We just got cloned, it's possible that this node is the parent of a scaled model node
98 auto originalChildModel = original.getModelKey().getNode();
99
100 if (originalChildModel)
101 {
102 model::ModelNodePtr originalModel = Node_getModel(originalChildModel);
103
104 // Check if the original model node is scaled
105 if (originalModel && originalModel->hasModifiedScale())
106 {
107 assert(getModelKey().getNode()); // clone should have a child model like the original
108 auto transformable = scene::node_cast<ITransformable>(getModelKey().getNode());
109
110 if (transformable)
111 {
112 transformable->setType(TRANSFORM_PRIMITIVE);
113 transformable->setScale(originalModel->getModelScale());
114 transformable->freezeTransform();
115 }
116 }
117 }
118}
119
120void EntityNode::destruct()
121{

Callers 5

cloneMethod · 0.80
cloneMethod · 0.80
cloneMethod · 0.80
cloneMethod · 0.80
cloneMethod · 0.80

Calls 7

Node_getModelFunction · 0.85
getNodeMethod · 0.45
hasModifiedScaleMethod · 0.45
setTypeMethod · 0.45
setScaleMethod · 0.45
getModelScaleMethod · 0.45
freezeTransformMethod · 0.45

Tested by

no test coverage detected