|
| MapElementT () |
| The default constructor. More...
|
|
| MapElementT (const MapElementT &Elem) |
| The copy constructor for copying a map element. More...
|
|
virtual | ~MapElementT () |
| The virtual destructor. More...
|
|
virtual void | Load_cmap (TextParserT &TP, MapDocumentT &MapDoc, bool IgnoreGroups) |
|
virtual void | Save_cmap (std::ostream &OutFile, unsigned long ElemNr, const MapDocumentT &MapDoc) const |
|
MapEditor::CompMapEntityT * | GetParent () const |
| Returns the entity that this element is a part of, or NULL if the element has no parent entity. More...
|
|
void | SetParent (MapEditor::CompMapEntityT *Ent) |
| Sets the parent entity that is element is a part of. More...
|
|
bool | IsSelected () const |
| Returns whether this element is currently selected in the map document. More...
|
|
void | SetSelected (bool Selected=true) |
| Sets the selection state of this element. More...
|
|
virtual bool | IsTranslucent () const |
| Returns whether this map element is (entirely or partially) translucent. More...
|
|
virtual wxColour | GetColor (bool ConsiderGroup=true) const =0 |
| This method returns the "inherent" color of this map element. More...
|
|
virtual wxString | GetDescription () const |
|
GroupT * | GetGroup () const |
| Returns NULL when this map element is in no group, or the pionter to the group it is a member of otherwise. More...
|
|
void | SetGroup (GroupT *Group) |
| Sets the group this element is a member of (use NULL for "no group"). More...
|
|
bool | IsVisible () const |
| Returns whether this map element is currently visible (in the 2D, 3D and other views). More...
|
|
bool | CanSelect () const |
| Returns whether this map element can currently be selected (in the 2D, 3D and other views). More...
|
|
void | GetToggleEffects (ArrayT< MapElementT * > &RemoveFromSel, ArrayT< MapElementT * > &AddToSel, bool AutoGroupEntities) |
| Computes how the selection must be changed in order to toggle the given element when the element's entity and group memberships are taken into account. More...
|
|
virtual void | AdvanceTime (float t) |
| This is periodically called in order to have the element advance its internal clock by t seconds. More...
|
|
virtual void | Render2D (Renderer2DT &Renderer) const |
|
virtual void | Render3D (Renderer3DT &Renderer) const |
|
virtual BoundingBox3fT | GetBB () const =0 |
| Returns the spatial bounding-box of this map element. More...
|
|
virtual bool | TraceRay (const Vector3fT &RayOrigin, const Vector3fT &RayDir, float &Fraction, unsigned long &FaceNr) const |
| Traces a ray against this map element, and returns whether it was hit. More...
|
|
virtual bool | TracePixel (const wxPoint &Pixel, int Radius, const ViewWindow2DT &ViewWin) const |
| This method determines if this map element is intersected/affected by the specified disc in ViewWin. More...
|
|
virtual TrafoMementoT * | GetTrafoState () const |
| Returns a memento that encapsulates the transform-related state of this element. More...
|
|
virtual void | RestoreTrafoState (const TrafoMementoT *TM) |
| Restores the transform-related state of this element from the given memento. More...
|
|
virtual void | TrafoMove (const Vector3fT &Delta, bool LockTexCoords) |
| Translates this element by the given vector (in world-space). More...
|
|
virtual void | TrafoRotate (const Vector3fT &RefPoint, const cf::math::AnglesfT &Angles, bool LockTexCoords) |
| Rotates this element about the given reference point (in world-space). More...
|
|
virtual void | TrafoScale (const Vector3fT &RefPoint, const Vector3fT &Scale, bool LockTexCoords) |
| Scales this element about the given reference point (in world-space). More...
|
|
virtual void | TrafoMirror (unsigned int NormalAxis, float Dist, bool LockTexCoords) |
| Mirrors this element along the given mirror plane (in world-space). More...
|
|
virtual void | Transform (const Matrix4x4fT &Matrix, bool LockTexCoords) |
| Why does this method not replace all the other Trafo*() methods? This method is the most generic, allowing transformations that e.g. More...
|
|
unsigned int | GetFrameCount () const |
|
void | SetFrameCount (unsigned int FrameCount) |
|
virtual const
cf::TypeSys::TypeInfoT * | GetType () const |
|
This is the base class for all elements ("objects") that can exist in a map.
Generally, elements can exist stand-alone, without being assigned to a parent entity; they are intended to be fully functional even without a parent entity. Examples include newly created elements, elements in the clipboard, temporary copies (e.g. for preview rendering in Selection tool), and elements inside commands (e.g. state before or after a transform). For stand-alone elements, GetParent() returns NULL
.
Usually though, elements are kept by an entity. The entity that an element is a part of can be learned with the GetParent() method.
bool MapElementT::TracePixel |
( |
const wxPoint & |
Pixel, |
|
|
int |
Radius, |
|
|
const ViewWindow2DT & |
ViewWin |
|
) |
| const |
|
virtual |
This method determines if this map element is intersected/affected by the specified disc in ViewWin.
The disc for the test is defined by the given center pixel and the given radius. For example, the caller can learn by the result of this method whether the map element should respond to a mouse-click at the same pixel. Therefore, this method can be considered as the 2D analogue of the TraceRay() method.
Reimplemented in MapBezierPatchT, MapTerrainT, MapBrushT, MapModelT, MapPlantT, and MapEntRepresT.
bool MapElementT::TraceRay |
( |
const Vector3fT & |
RayOrigin, |
|
|
const Vector3fT & |
RayDir, |
|
|
float & |
Fraction, |
|
|
unsigned long & |
FaceNr |
|
) |
| const |
|
virtual |
Traces a ray against this map element, and returns whether it was hit.
The ray for the trace is defined by RayOrigin + RayDir*Fraction, where Fraction is a scalar >= 0. If a hit was detected, the Fraction is returned. Hit brushes return the number of the hit face as well. This method has been implemented mainly for "picking", that is, left-click selection in the 3D views (it makes sure that also objects that "clip nothing" in the engine can be picked), but it can also be used for any other purpose.
- Parameters
-
RayOrigin | The point in world space where the ray starts. |
RayDir | A unit vector in world space that describes the direction the ray extends to. |
Fraction | On hit, the scalar along RayDir at which the hit occurred is returned here. |
FaceNr | If this map element is a brush and it was hit, the number of the hit face is returned here. |
- Returns
- true if the ray hit this map element, false otherwise. Additional hit data (i.e. Fraction and FaceNr) is returned via reference paramaters.
Reimplemented in MapBezierPatchT, MapTerrainT, MapBrushT, and MapEntRepresT.
virtual void MapElementT::Transform |
( |
const Matrix4x4fT & |
Matrix, |
|
|
bool |
LockTexCoords |
|
) |
| |
|
inlinevirtual |
Why does this method not replace all the other Trafo*() methods? This method is the most generic, allowing transformations that e.g.
are non-orthogonal (like shears or non-uniform scales). This in turn conflicts with map primitives that can only store and deal with a restricted fixed set of transformations, e.g. an origin, a rotation and a uniform scale. These values cannot properly be re-computed from a general matrix with non-orthogonal basis vectors.
- Parameters
-
Matrix | The matrix that describes the transform to be applied. |
LockTexCoords | Transform the texture-space along with the geometry. |
Reimplemented in MapBezierPatchT, MapTerrainT, MapBrushT, MapPlantT, MapModelT, and MapEntRepresT.