#include <opennurbs_texture_mapping.h>
Public Member Functions | |
ON_TextureMapping () ON_NOEXCEPT | |
ON_TextureMapping (const ON_TextureMapping &src) | |
virtual | ~ON_TextureMapping () |
const ON_Brep * | CustomMappingBrepPrimitive (void) const |
const ON_Mesh * | CustomMappingMeshPrimitive (void) const |
const ON_Object * | CustomMappingPrimitive (void) const |
const ON_Surface * | CustomMappingSurfacePrimitive (void) const |
void | Dump (ON_TextLog &) const override |
Creates a text dump of the object. More... | |
virtual int | Evaluate (const ON_3dPoint &P, const ON_3dVector &N, ON_3dPoint *T) const |
Evaluate the mapping to get a texture coordinate. More... | |
virtual int | Evaluate (const ON_3dPoint &P, const ON_3dVector &N, ON_3dPoint *T, const ON_Xform &P_xform, const ON_Xform &N_xform) const |
int | EvaluateBoxMapping (const ON_3dPoint &P, const ON_3dVector &N, ON_3dPoint *T) const |
int | EvaluateCylinderMapping (const ON_3dPoint &P, const ON_3dVector &N, ON_3dPoint *T) const |
int | EvaluatePlaneMapping (const ON_3dPoint &P, const ON_3dVector &N, ON_3dPoint *T) const |
int | EvaluateSphereMapping (const ON_3dPoint &P, const ON_3dVector &N, ON_3dPoint *T) const |
bool | GetMappingBox (ON_Plane &plane, ON_Interval &dx, ON_Interval &dy, ON_Interval &dz) const |
bool | GetMappingCylinder (ON_Cylinder &cylinder) const |
Get a cylindrical projection parameters from this texture mapping. More... | |
bool | GetMappingPlane (ON_Plane &plane, ON_Interval &dx, ON_Interval &dy, ON_Interval &dz) const |
Get plane mapping parameters from this texture mapping. More... | |
bool | GetMappingSphere (ON_Sphere &sphere) const |
Get a spherical projection parameters from this texture mapping. More... | |
bool | GetTextureCoordinates (const ON_Mesh &mesh, ON_SimpleArray< ON_3fPoint > &T, const ON_Xform *mesh_xform=0, bool bLazy=false, ON_SimpleArray< int > *Tside=0) const |
Get texture coordinates. This calculation is expensive. When possible, use a MappingMatch() query to avoid unnecessary calculations. More... | |
bool | GetTextureCoordinates (const ON_Mesh &mesh, ON_SimpleArray< ON_2fPoint > &T, const ON_Xform *mesh_xform=0, bool bLazy=false, ON_SimpleArray< int > *Tside=0) const |
bool | HasMatchingTextureCoordinates (const ON_Mesh &mesh, const ON_Xform *object_xform=nullptr) const |
Quickly check to see if a mesh or tag has texture coordinates set by this mapping. More... | |
bool | HasMatchingTextureCoordinates (const class ON_MappingTag &tag, const ON_Xform *object_xform=nullptr) const |
bool | IsPeriodic (void) const |
bool | IsValid (class ON_TextLog *text_log=nullptr) const override |
Tests an object to see if its data members are correctly initialized. More... | |
ON__UINT32 | MappingCRC () const |
ON_TextureMapping & | operator= (const ON_TextureMapping &src) |
bool | Read (ON_BinaryArchive &binary_archive) override |
Low level archive writing tool used by ON_BinaryArchive::ReadObject(). More... | |
bool | RequiresVertexNormals () const |
bool | ReverseTextureCoordinate (int dir) |
Reverses the texture in the specified direction. More... | |
bool | SetBoxMapping (const ON_Plane &plane, ON_Interval dx, ON_Interval dy, ON_Interval dz, bool bIsCapped) |
Create a box projection texture mapping. More... | |
void | SetCustomMappingPrimitive (ON_Object *) |
bool | SetCylinderMapping (const ON_Cylinder &cylinder, bool bIsCapped) |
Create a cylindrical projection texture mapping. More... | |
bool | SetPlaneMapping (const ON_Plane &plane, const ON_Interval &dx, const ON_Interval &dy, const ON_Interval &dz) |
Create a planar projection texture mapping. More... | |
bool | SetSphereMapping (const ON_Sphere &sphere) |
Create a spherical projection texture mapping. More... | |
bool | SetSurfaceParameterMapping (void) |
Create a mapping that will convert surface parameters into normalized (0,1)x(0,1) texture coordinates. More... | |
unsigned int | SizeOf () const override |
bool | SwapTextureCoordinate (int i, int j) |
Swaps the specified texture coordinates. More... | |
bool | TileTextureCoordinate (int dir, double count, double offset) |
Tiles the specified texture coordinates. More... | |
bool | Write (ON_BinaryArchive &binary_archive) const override |
Low level archive writing tool used by ON_BinaryArchive::WriteObject(). More... | |
Public Member Functions inherited from ON_ModelComponent | |
ON_ModelComponent () ON_NOEXCEPT | |
ON_ModelComponent (const ON_ModelComponent &source) | |
ON_ModelComponent (ON_ModelComponent::Type component_type) ON_NOEXCEPT | |
Sets and locks the component type attribute. More... | |
ON_ModelComponent (ON_ModelComponent::Type component_type, const ON_ModelComponent &source) ON_NOEXCEPT | |
Locked status of source attributes is not copied to permit copy and modify operations. More... | |
~ON_ModelComponent ()=default | |
bool | ChangeName (const wchar_t *new_name, class ON_ComponentManifest *manifest) |
Change the name of a component and optionally update a manifest. More... | |
bool | ClearComponentType () |
Set the model serial number value to the ON_ModelComponent::Unset.Type() and change the state so TypeIsSet() returns false. More... | |
bool | ClearId () |
Set the component id value to the ON_ModelComponent::Unset.ModelComponentId() and change the state so ModelComponentIdIsSet() returns false. More... | |
bool | ClearIndex () |
Set the component index value to the ON_ModelComponent::Unset.ModelComponentIndex() and change the state so ModelComponentIndexIsSet() returns false. More... | |
unsigned int | ClearModelComponentAttributes (unsigned int attributes_filter) |
Writes the attributes identified by the component_filter parameter. More... | |
bool | ClearModelComponentStatus () |
bool | ClearModelSerialNumber () |
Sets the model serial number, reference model serial number and instance definition model serial number values to 0 and flags these values as unset. More... | |
bool | ClearName () |
Set the component name value to the ON_ModelComponent::Unset.Name() and change the state so NameIsSet() and DeletedNameIsSet() both return false. More... | |
bool | ClearParentId () |
int | CompareName (const ON_UUID &other_parent_id, const wchar_t *other_name) const |
int | CompareName (const wchar_t *other_name) const |
int | CompareNameExact (const ON_UUID &other_parent_id, const wchar_t *other_name) const |
int | CompareNameExact (const wchar_t *other_name) const |
ON_ModelComponent::Type | ComponentType () const |
bool | ComponentTypeIsLocked () const |
bool | ComponentTypeIsSet () const |
ON__UINT64 | ContentVersionNumber () const |
Whenever an attribute is changed, the content version number is incremented. The ContentVersionNumber() is commonly used by consumers of the model component attributes to trigger updates when needed. More... | |
unsigned int | CopyFrom (const ON_ModelComponent &src, unsigned int attributes_filter) |
ON__UINT32 | DataCRC (ON__UINT32 current_remainder) const override |
Returns a CRC calculated from the information that defines the object. This CRC can be used as a quick way to see if two objects are not identical. More... | |
const ON_wString | DeletedName () const |
const ON_NameHash & | DeletedNameHash () const |
bool | DeletedNameIsSet () const |
bool | DeleteName () |
If NameIsSet() is true, then the name is deleted in a waty that can be undone by calling UndeleteName() and the DeletedNameIsSet() property is changed to true. More... | |
bool | EraseIdentification (bool bIgnoreLocks) |
const wchar_t * | GetName (ON_wString &component_name) const |
const ON_UUID & | Id () const |
bool | IdIsLocked () const |
bool | IdIsNil () const |
bool | IdIsNotNil () const |
bool | IdIsSet () const |
const ON_UUID & | IfIdIsNilSetId () |
If the it is nil, call SetId(). More... | |
int | Index () const |
int | Index (int unset_index_value) const |
bool | IndexIsLocked () const |
bool | IndexIsSet () const |
unsigned int | InstanceDefinitionModelSerialNumber () const |
bool | IsDeleted () const |
bool | IsHidden () const |
bool | IsLocked () const |
bool | IsReferenceComponent () const |
bool | IsSystemComponent () const |
void | LockAllSettingsExceptName () |
void | LockComponentType () |
Calling LockType() will prhibit future changes to the Type attribute. More... | |
void | LockId () |
Calling LockModelComponentId() will prhibit future changes to the ModelComponentId attribute. More... | |
void | LockIndex () |
Calling LockModelComponentIndex() will prhibit future changes to the ModelComponentIndex attribute. More... | |
void | LockModelComponentStatus () |
void | LockModelSerialNumber () |
Calling LockModelSerialNumber() will prohibit future changes to the ModelSerialNumber(), ReferenceModelSerialNumber(), and InstanceDefinitionModelSerialNumber() attributes. More... | |
void | LockName () |
Calling LockName() will prohibit future changes to the Name attribute. More... | |
void | LockParentId () |
ON_ComponentStatus | ModelComponentStatus () const |
bool | ModelComponentStatusIsLocked () const |
bool | ModelComponentStatusIsSet () const |
ON_UUID | ModelObjectId () const override |
All objects in an opennurbs model have an id ( ON_Layer.m_layer_id, ON_Font.m_font_id, ON_Material.m_material_id, ON_3dmObjectAttributes.m_uuid ). More... | |
unsigned int | ModelSerialNumber () const |
bool | ModelSerialNumberIsLocked () const |
bool | ModelSerialNumberIsSet () const |
const ON_wString | Name () const |
const wchar_t * | NameAsPointer () const |
Expert user function that gets a pointer to the name. More... | |
const ON_NameHash & | NameHash () const |
Get a platform independent hash of the name suitable for equality testing and binary searching. When testing for equality or doing binary searches, using ON_NameHash values is faster than using the CompareName or ON_wString::CompareAttributeName. More... | |
bool | NameIsEmpty () const |
bool | NameIsLocked () const |
bool | NameIsNotEmpty () const |
bool | NameIsSet () const |
const ON_NameHash | NewNameHash (const wchar_t *new_name) const |
ON_ModelComponent & | operator= (const ON_ModelComponent &source) |
const ON_UUID & | ParentId () const |
bool | ParentIdIsLocked () const |
bool | ParentIdIsNil () const |
bool | ParentIdIsNotNil () const |
bool | ParentIdIsSet () const |
bool | ReadModelComponentAttributes (class ON_BinaryArchive &archive) |
unsigned int | ReferenceModelSerialNumber () const |
ON__UINT64 | RuntimeSerialNumber () const |
const ON_UUID & | SetAndLockId () |
Sets the id to a new value created by ON_CreateUuid() and locks the id attribute so it cannot be changed. More... | |
bool | SetAsSystemComponent () |
bool | SetAsUnsetSystemComponent () |
bool | SetComponentType (ON_ModelComponent::Type component_component_type) |
bool | SetDeletedModelComponentState (bool bDeleted, class ON_ComponentManifest *manifest) |
void | SetHiddenModelComponentState (bool bHidden) |
bool | SetId (const ON_UUID &component_id) |
const ON_UUID & | SetId () |
Sets the id to a new value created by ON_CreateUuid(). More... | |
bool | SetIdentification (const class ON_ComponentManifestItem &manifest_item, const wchar_t *manifest_name, bool bSetId, bool bParentId, bool bSetName, bool bSetIndex) |
Set a component's id, name and index to the manifest_item values. More... | |
bool | SetIndex (int component_index) |
bool | SetLocalizedSystemComponentName (const wchar_t *system_component_localized_name) |
void | SetLockedModelComponentState (bool bLocked) |
bool | SetModelComponentStatus (ON_ComponentStatus component_status) |
bool | SetModelSerialNumber (unsigned int model_serial_number) |
Specify the model that is managing this component. More... | |
bool | SetModelSerialNumber (unsigned int model_serial_number, unsigned int reference_model_serial_number, unsigned int instance_definition_model_serial_number) |
Specify the model that is managing this component. More... | |
bool | SetName (const wchar_t *component_name) |
bool | SetParentId (const ON_UUID &parent_id) |
bool | UndeleteName () |
bool | WriteModelComponentAttributes (class ON_BinaryArchive &archive, unsigned int attributes_filter) const |
Public Member Functions inherited from ON_Object | |
ON_Object () ON_NOEXCEPT | |
ON_Object (const ON_Object &) | |
virtual | ~ON_Object () |
virtual ON_AggregateComponentStatus | AggregateComponentStatus () const |
Call whenever a component status setting is modifed by directly changing it on a component in a way that will result in any saved information about the parent object's aggretate component status becoming invalid. More... | |
bool | AttachUserData (class ON_UserData *pUserData) |
Attach user data to an object. More... | |
unsigned int | ClearAllComponentStates () const |
Set all active level component states to ON_ComponentStatus::NoneSet. More... | |
virtual unsigned int | ClearComponentStates (ON_ComponentStatus states_to_clear) const |
Clear the specified states on every component. More... | |
virtual unsigned int | ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const |
Clear states on an individual component. More... | |
unsigned int | CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution) |
Expert user tool that copies user data items with positive values of ON_UserData.m_userdata_copycount from source_object to "this. More... | |
void | CopyUserData (const ON_Object &source_object) |
Calls CopyUserData(source_object,ON_Object::UserDataConflictResolution::source_object). More... | |
virtual bool | DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count) |
Delete the portions of the object identified in ci_list[]. More... | |
virtual void | DestroyRuntimeCache (bool bDelete=true) |
Expert user function. If you are using openNURBS in its default configuration to read and write 3dm archives, you never need to call this function. Many objects employ lazy creation of (runtime) caches that save information to help speed geometric calculations. This function will destroy all runtime information. More... | |
bool | DetachUserData (class ON_UserData *pUserData) |
Remove user data from an object. More... | |
void | EmergencyDestroy () |
Sets m_user_data_list = 0. More... | |
class ON_UserData * | FirstUserData () const |
User data is stored as a linked list of ON_UserData classes. FirstUserData gets the first item in the linked list. This is the most recent item attached using AttachUserData(). Remark: To iterate through all the user data on an object, call FirstUserData() and then use ON_UserData::Next() to traverse the list. More... | |
virtual unsigned int | GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const |
class ON_UserData * | GetUserData (const ON_UUID &userdata_uuid) const |
Get a pointer to user data. More... | |
bool | GetUserString (const wchar_t *key, ON_wString &string_value) const |
Get user string from the object. More... | |
int | GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const |
Get a list of all user string keys on the object. More... | |
int | GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const |
Get a list of all user strings on the object. More... | |
bool | IsKindOf (const ON_ClassId *pClassId) const |
Low level tool to test if an object is derived from a specified class. More... | |
virtual void | MarkAggregateComponentStatusAsNotCurrent () const |
Call whenever a component status setting is modifed by directly changing it on a component in a way that will result in any saved information about the parent object's aggretate component status becoming invalid. More... | |
virtual void | MemoryRelocate () |
The MemoryRelocate() function is called when an object's location in memory is changed. For example, if an object resides in a chunk of memory that is grown by calling a realloc that has to allocate a new chunk and copy the contents of the old chunk to the new chunk, then the location of the object's memory changes. In practice this happens when classes derived from ON_Object are stored in dynamic arrays, like the default implementation of ON_ObjectArray<>'s that use realloc to grow the dynamic array. More... | |
unsigned int | MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems) |
Expert user tool that moves user data items from source_object to "this. More... | |
void | MoveUserData (ON_Object &source_object) |
Calls MoveUserData(source_object,ON_Object::UserDataConflictResolution::source_object,true). More... | |
virtual ON::object_type | ObjectType () const |
Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on. More... | |
ON_Object & | operator= (const ON_Object &) |
void | PurgeUserData () |
PurgeUserData() removes all user data from object. More... | |
virtual unsigned int | SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const |
Set states on an individual component. More... | |
virtual unsigned int | SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const |
Copy status settings to an individual component. More... | |
bool | SetUserString (const wchar_t *key, const wchar_t *string_value) |
Attach a user string to the object. This information will perisist through copy construction, operator=, and file IO. More... | |
int | SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace) |
Append entries to the user string list More... | |
void | TransformUserData (const class ON_Xform &xform) |
Objects derived from ON_Geometry must call TransformUserData() in their Transform() member function. More... | |
virtual bool | UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map) |
Uses the destination_manifest to update references to other components. This is typically done when a component's references came from a "source" context and are being updated to the "destination" context. For example, inserting one model into another when index, id, and name conflicts need to be resolved at the time of insertion. More... | |
int | UserStringCount () const |
Static Public Member Functions | |
static const ON_TextureMapping * | FromModelComponentRef (const class ON_ModelComponentReference &model_component_reference, const ON_TextureMapping *none_return_value) |
static ON_TextureMapping::PROJECTION | ProjectionFromUnsigned (unsigned int projection_as_unsigned) |
static const ON_wString | ProjectionToString (ON_TextureMapping::PROJECTION texture_mapping_projection) |
static const ON_wString | SpaceToString (ON_TextureMapping::TEXTURE_SPACE texture_mapping_space) |
static ON_TextureMapping::TEXTURE_SPACE | TextureSpaceFromUnsigned (unsigned int texture_space_as_unsigned) |
static ON_TextureMapping::TYPE | TypeFromUnsigned (unsigned int type_as_unsigned) |
static const ON_wString | TypeToString (ON_TextureMapping::TYPE texture_mapping_type) |
Static Public Member Functions inherited from ON_ModelComponent | |
static int | CompareId (const ON_ModelComponent &a, const ON_ModelComponent &b) |
static int | CompareIdAndName (const ON_ModelComponent &a, const ON_ModelComponent &b) |
static int | CompareName (const ON_ModelComponent &a, const ON_ModelComponent &b) |
static int | CompareNameAndId (const ON_ModelComponent &a, const ON_ModelComponent &b) |
static int | CompareNameExact (const ON_ModelComponent &a, const ON_ModelComponent &b) |
static ON_ModelComponent::Type | ComponentTypeFromUnsigned (unsigned int component_type_as_unsigned) |
static bool | ComponentTypeIsValid (ON_ModelComponent::Type component_type) |
static bool | ComponentTypeIsValidAndNotMixed (ON_ModelComponent::Type component_type) |
static const ON_wString | ComponentTypeToString (ON_ModelComponent::Type) |
static bool | IndexRequired (ON_ModelComponent::Type component_type) |
static unsigned int | Internal_SystemComponentHelper () |
For internal use. Never call this function. More... | |
static const wchar_t * | IsNamePathSeparator (const wchar_t *s) |
Test a string to see if its beginning matches the string returned by ON_ModelComponent::NamePathSeparator. More... | |
*</code > *</example > *static const wchar_t * | IsReferencePrefixDelimiter (const wchar_t *s) |
Test a string to see if its beginning matches the string returned by ON_ModelComponent::NameReferenceDelimiter. More... | |
static const wchar_t * | IsReferencePrefixSeparator (const wchar_t *s) |
Test a string to see if its beginning matches the string returned by ON_ModelComponent::NameReferenceSeparator. More... | |
static bool | IsValidComponentName (const wchar_t *candidate_component_name) |
static bool | IsValidComponentName (const ON_wString &candidate_component_name) |
static bool | IsValidComponentName (size_t length, const wchar_t *candidate_component_name) |
static bool | IsValidComponentName (const class ON_ComponentManifest &model_manfest, const ON_ModelComponent &model_component, bool bPermitReferencePrefix, ON_wString &valid_name) |
static bool | IsValidComponentNameFirstCodePoint (ON__UINT32 unicode_code_point) |
static bool | IsValidComponentNameFirstCodePoint (int length, const wchar_t *candidate_component_name) |
static const ON_wString | NameLeaf (const wchar_t *name) |
static const ON_wString | NameParent (const wchar_t *name, bool bIncludeReference) |
static const ON_wString | NameReferencePrefix (const wchar_t *name) |
static const ON_wString | RemoveAllReferencePrefixDelimiters (const wchar_t *name) |
Remove all occurances of ON::NameReferenceDelimiter() from name. More... | |
static const ON_wString | RemoveReferencePrefix (const wchar_t *name) |
static const ON_wString | RemoveTrailingNamePathSeparator (const wchar_t *name) |
Remove any trailing occurance of ON_ModelComponent::NamePathSeparator from name. More... | |
static const ON_wString | RemoveTrailingReferencePrefixDelimiter (const wchar_t *name) |
Remove any trailing occurance of ON_ModelComponent::NameReferenceDelimiter from name. More... | |
static const ON_wString | RemoveTrailingReferencePrefixSeparator (const wchar_t *name) |
Remove any trailing occurance of ON_ModelComponent::NameReferenceSeparator from name. More... | |
static void | SplitName (const wchar_t *name, ON_wString &reference_prefix, ON_wString &name_parent, ON_wString &name_leaf) |
static bool | UniqueNameIgnoresCase (ON_ModelComponent::Type component_type) |
static bool | UniqueNameIncludesParent (ON_ModelComponent::Type component_type) |
static bool | UniqueNameRequired (ON_ModelComponent::Type component_type) |
Static Public Attributes | |
static const ON_TextureMapping | SurfaceParameterTextureMapping |
static const ON_TextureMapping | Unset |
Static Public Attributes inherited from ON_ModelComponent | |
static const ON_wString | NamePathSeparator |
Returns the string "::". This is the string Rhino uses in layer full path names to separate the names of individual layers. More... | |
static const ON_wString | ReferencePrefixDelimiter |
Returns the string " : ". This is the string Rhino uses to separate the reference file names from and model component names read from those files. More... | |
static const ON_wString | ReferencePrefixSeparator |
Returns the string ">". This is the string Rhino uses to separate the block definition name and linked file name in grandparent layers. More... | |
static const ON_ModelComponent | Unset |
*static const ON_wString WorksessionReferencePrefix *const | wchar_t |
Additional Inherited Members | |
Protected Member Functions inherited from ON_ModelComponent | |
void | IncrementContentVersionNumber () const |
|
strong |
|
strong |
|
strong |
ON_TextureMapping::ON_TextureMapping | ( | ) |
ON_TextureMapping::ON_TextureMapping | ( | const ON_TextureMapping & | src | ) |
|
virtual |
const ON_Brep* ON_TextureMapping::CustomMappingBrepPrimitive | ( | void | ) | const |
const ON_Mesh* ON_TextureMapping::CustomMappingMeshPrimitive | ( | void | ) | const |
const ON_Object* ON_TextureMapping::CustomMappingPrimitive | ( | void | ) | const |
const ON_Surface* ON_TextureMapping::CustomMappingSurfacePrimitive | ( | void | ) | const |
|
overridevirtual |
Creates a text dump of the object.
Dump() is intended for debugging and is not suitable for creating high quality text descriptions of an object.
The default implementations of this virtual function prints the class's name.
Reimplemented from ON_ModelComponent.
|
virtual |
Evaluate the mapping to get a texture coordinate.
P | [in] Vertex location |
N | [in] If the mapping projection is ray_projection, then this is the vertex unit normal. Otherwise N is ignored. |
T | [out] Texture coordinate (u,v,w) |
P_xform | [in] Transformation to be applied to P before performing the mapping calculation. |
N_xform | [in] Transformation to be applied to N before performing the mapping calculation. One way to calculate N_xform is to use the call P_xform::GetVectorTransform(N_xform). |
Nonzero if evaluation is successful. When the mapping is a box or capped cylinder mapping, the value indicates which side was evaluated.
Cylinder mapping: 1 = cylinder wall, 2 = bottom cap, 3 = top cap Box mapping: 1 = front 2 = right 3 = back 4 = left 5 = bottom 6 = top
|
virtual |
int ON_TextureMapping::EvaluateBoxMapping | ( | const ON_3dPoint & | P, |
const ON_3dVector & | N, | ||
ON_3dPoint * | T | ||
) | const |
int ON_TextureMapping::EvaluateCylinderMapping | ( | const ON_3dPoint & | P, |
const ON_3dVector & | N, | ||
ON_3dPoint * | T | ||
) | const |
int ON_TextureMapping::EvaluatePlaneMapping | ( | const ON_3dPoint & | P, |
const ON_3dVector & | N, | ||
ON_3dPoint * | T | ||
) | const |
int ON_TextureMapping::EvaluateSphereMapping | ( | const ON_3dPoint & | P, |
const ON_3dVector & | N, | ||
ON_3dPoint * | T | ||
) | const |
|
static |
model_component_reference | [in] |
none_return_value | [in] value to return if ON_Material::Cast(model_component_ref.ModelComponent()) is nullptr |
bool ON_TextureMapping::GetMappingBox | ( | ON_Plane & | plane, |
ON_Interval & | dx, | ||
ON_Interval & | dy, | ||
ON_Interval & | dz | ||
) | const |
plane | [out] The center of the box is at plane.origin and the sides of the box are parallel to the plane's coordinate planes. |
dx | [out] The "front" and "back" sides of the box are in spanned by the vectors plane.yaxis and plane.zaxis. The back plane contains the point plane.PointAt(dx[0],0,0) and the front plane contains the point plane.PointAt(dx[1],0,0). |
dy | [out] The "left" and "right" sides of the box are in spanned by the vectors plane.zaxis and plane.xaxis. The left plane contains the point plane.PointAt(0,dx[0],0) and the back plane contains the point plane.PointAt(0,dy[1],0). |
dz | [out] The "top" and "bottom" sides of the box are in spanned by the vectors plane.xaxis and plane.yaxis. The bottom plane contains the point plane.PointAt(0,0,dz[0]) and the top plane contains the point plane.PointAt(0,0,dz[1]). |
Generally, GetMappingBox will not return the same parameters passed to SetBoxMapping. However, the location of the box will be the same.
bool ON_TextureMapping::GetMappingCylinder | ( | ON_Cylinder & | cylinder | ) | const |
Get a cylindrical projection parameters from this texture mapping.
cylinder | [out] |
Generally, GetMappingCylinder will not return the same parameters passed to SetCylinderMapping. However, the location of the cylinder will be the same. If this mapping is not cylindrical, the cylinder will approximate the actual mapping primitive.
bool ON_TextureMapping::GetMappingPlane | ( | ON_Plane & | plane, |
ON_Interval & | dx, | ||
ON_Interval & | dy, | ||
ON_Interval & | dz | ||
) | const |
Get plane mapping parameters from this texture mapping.
plane | [out] |
dx | [out] Portion of the plane's x axis that is mapped to [0,1] |
dy | [out] Portion of the plane's y axis that is mapped to [0,1] |
dz | [out] Portion of the plane's z axis that is mapped to [0,1] |
NOTE WELL: Generally, GetMappingPlane will not return the same parameters passed to SetPlaneMapping. However, the location of the plane will be the same.
bool ON_TextureMapping::GetMappingSphere | ( | ON_Sphere & | sphere | ) | const |
Get a spherical projection parameters from this texture mapping.
sphere | [out] |
Generally, GetMappingShere will not return the same parameters passed to SetSphereMapping. However, the location of the sphere will be the same. If this mapping is not cylindrical, the cylinder will approximate the actual mapping primitive.
bool ON_TextureMapping::GetTextureCoordinates | ( | const ON_Mesh & | mesh, |
ON_SimpleArray< ON_3fPoint > & | T, | ||
const ON_Xform * | mesh_xform = 0 , |
||
bool | bLazy = false , |
||
ON_SimpleArray< int > * | Tside = 0 |
||
) | const |
Get texture coordinates. This calculation is expensive. When possible, use a MappingMatch() query to avoid unnecessary calculations.
mesh | [in] |
T | [out] Texture coordinates returned here. |
mesh_xform | [in] (optional) If the mesh has been transformed since the texture mapping was set up, pass the transformation here. Typically this is the value of ON_Mesh::m_mapping_xform or ON_MappingRef::m_object_xform |
bLazy | [in] If true and the mesh.m_T[] values were calculated using this mapping, they are simply copied to the T[] array and no calculations are performed. If you are calling the 3d point version and you care about the z-coordinate, then do not use the lazy option (meshes only store 2d texture coordinates). |
Tside | [out] In the case of divided textures, side information is returned here if a lazy mapping is not done. Otherwise Tside->Count() will be zero. Cylinder mapping: 1 = cylinder wall, 2 = bottom cap, 3 = top cap Box mapping: 1 = front 2 = right 3 = back 4 = left 5 = bottom 6 = top |
bool ON_TextureMapping::GetTextureCoordinates | ( | const ON_Mesh & | mesh, |
ON_SimpleArray< ON_2fPoint > & | T, | ||
const ON_Xform * | mesh_xform = 0 , |
||
bool | bLazy = false , |
||
ON_SimpleArray< int > * | Tside = 0 |
||
) | const |
bool ON_TextureMapping::HasMatchingTextureCoordinates | ( | const ON_Mesh & | mesh, |
const ON_Xform * | object_xform = nullptr |
||
) | const |
Quickly check to see if a mesh or tag has texture coordinates set by this mapping.
mesh | [in] |
tag | [in] |
object_xform | [in] (optional) If this transform is not nullptr, then true will be returned only if the mapping function is the same and the tag's m_mesh_xform field is the same as mesh_xform. This parameter is typically nullptr or the value of ON_MappingRef::m_object_xform. |
bool ON_TextureMapping::HasMatchingTextureCoordinates | ( | const class ON_MappingTag & | tag, |
const ON_Xform * | object_xform = nullptr |
||
) | const |
bool ON_TextureMapping::IsPeriodic | ( | void | ) | const |
|
overridevirtual |
Tests an object to see if its data members are correctly initialized.
text_log | [in] if the object is not valid and text_log is not nullptr, then a brief englis description of the reason the object is not valid is appened to the log. The information appended to text_log is suitable for |
low | level debugging purposes by programmers and is not intended to be useful as a high level user interface tool. |
Reimplemented from ON_ModelComponent.
ON__UINT32 ON_TextureMapping::MappingCRC | ( | ) | const |
ON_TextureMapping& ON_TextureMapping::operator= | ( | const ON_TextureMapping & | src | ) |
|
static |
|
static |
|
overridevirtual |
Low level archive writing tool used by ON_BinaryArchive::ReadObject().
binary_archive | archive to read from |
Use ON_BinaryArchive::ReadObject() to read objects. This Read() function should read the objects definition back into its data members.
The default implementation of this virtual function returns false and does nothing.
Reimplemented from ON_Object.
bool ON_TextureMapping::RequiresVertexNormals | ( | ) | const |
bool ON_TextureMapping::ReverseTextureCoordinate | ( | int | dir | ) |
Reverses the texture in the specified direction.
dir | [in] 0 = reverse "u", 1 = reverse "v", 2 = reverse "w". |
Modies m_uvw so that the spedified direction transforms the texture coordinate t to 1-t.
bool ON_TextureMapping::SetBoxMapping | ( | const ON_Plane & | plane, |
ON_Interval | dx, | ||
ON_Interval | dy, | ||
ON_Interval | dz, | ||
bool | bIsCapped | ||
) |
Create a box projection texture mapping.
plane | [in] The sides of the box the box are parallel to the plane's coordinate planes. The dx, dy, dz intervals determine the location of the sides. |
dx | [in] Determines the location of the front and back planes. The vector plane.xaxis is perpendicular to these planes and they pass through plane.PointAt(dx[0],0,0) and plane.PointAt(dx[1],0,0), respectivly. |
dy | [in] Determines the location of the left and right planes. The vector plane.yaxis is perpendicular to these planes and they pass through plane.PointAt(0,dy[0],0) and plane.PointAt(0,dy[1],0), respectivly. |
dz | [in] Determines the location of the top and bottom planes. The vector plane.zaxis is perpendicular to these planes and they pass through plane.PointAt(0,0,dz[0]) and plane.PointAt(0,0,dz[1]), respectivly. |
bIsCapped | [in] If true, the box is treated as a finite capped box. |
When m_texture_space = divided, the box is mapped to texture space as follows:
If the box is not capped, then each side maps to 1/4 of the texture map.
v=1+---------+---------+---------+---------+ | x=dx[1] | y=dy[1] | x=dx[0] | y=dy[0] | | Front | Right | Back | Left | | --y-> | <-x-- | <-y-- | --x-> | v=0+---------+---------+---------+---------+ 0/4 <=u<= 1/4 <=u<= 2/4 <=u<= 3/4 <=u<= 4/4
If the box is capped, then each side and cap gets 1/6 of the texture map.
v=1+---------+---------+---------+---------+---------+---------+ | x=dx[1] | y=dy[1] | x=dx[0] | y=dy[0] | z=dx[1] | z=dz[0] | | Front | Right | Back | Left | Top | Bottom | | --y-> | <-x-- | <-y-- | --x-> | --x-> | --x-> | v=0+---------+---------+---------+---------+---------+---------+ 0/6 <=u<= 1/6 <=u<= 2/6 <=u<= 3/6 <=u<= 4/6 <=u<= 5/6 <=u<= 6/6
void ON_TextureMapping::SetCustomMappingPrimitive | ( | ON_Object * | ) |
bool ON_TextureMapping::SetCylinderMapping | ( | const ON_Cylinder & | cylinder, |
bool | bIsCapped | ||
) |
Create a cylindrical projection texture mapping.
cylinder | [in] cylinder in world space used to define a cylindrical coordinate system. The angular parameter maps (0,2pi) to texture "u" (0,1), The height parameter maps (height[0],height[1]) to texture "v" (0,1), and the radial parameter maps (0,r) to texture "w" (0,1). |
bIsCapped | [in] If true, the cylinder is treated as a finite capped cylinder. |
When the cylinder is capped and m_texture_space = divided, the cylinder is mapped to texture space as follows: The side is mapped to 0 <= "u" <= 2/3. The bottom is mapped to 2/3 <= "u" <= 5/6. The top is mapped to 5/6 <= "u" <= 5/6. This is the same convention box mapping uses.
bool ON_TextureMapping::SetPlaneMapping | ( | const ON_Plane & | plane, |
const ON_Interval & | dx, | ||
const ON_Interval & | dy, | ||
const ON_Interval & | dz | ||
) |
Create a planar projection texture mapping.
plane | [in] |
dx | [in] portion of the plane's x axis that is mapped to [0,1] (can be a decreasing interval) |
dy | [in] portion of the plane's x axis that is mapped to [0,1] (can be a decreasing interval) |
dz | [in] portion of the plane's x axis that is mapped to [0,1] (can be a decreasing interval) |
projection_method | [in] 1: Closest point mapping. A target point P is mapped to the point on the plane that is closest to P. The target normal is ignored. 2: Target line mapping. A target point-vector pair (P, N), are mapped to the point on the plane where the line through P, parallel to N, intersects the plane. If the line is parallel to the plane, the closest point mapping is used. |
bool ON_TextureMapping::SetSphereMapping | ( | const ON_Sphere & | sphere | ) |
Create a spherical projection texture mapping.
sphere | [in] sphere in world space used to define a spherical coordinate system. The longitude parameter maps (0,2pi) to texture "u" (0,1). The latitude paramter maps (-pi/2,+pi/2) to texture "v" (0,1). The radial parameter maps (0,r) to texture "w" (0,1). |
bool ON_TextureMapping::SetSurfaceParameterMapping | ( | void | ) |
Create a mapping that will convert surface parameters into normalized (0,1)x(0,1) texture coordinates.
|
overridevirtual |
Reimplemented from ON_ModelComponent.
|
static |
bool ON_TextureMapping::SwapTextureCoordinate | ( | int | i, |
int | j | ||
) |
Swaps the specified texture coordinates.
i | [in] |
j | [in] |
Modifies m_uvw so that the specified texture coordinates are swapped.
|
static |
bool ON_TextureMapping::TileTextureCoordinate | ( | int | dir, |
double | count, | ||
double | offset | ||
) |
Tiles the specified texture coordinates.
dir | [in] 0 = "u", 1 = "v", 2 = "w". |
count | [in] number of tiles |
offset | [in] offset of the tile |
Modies m_uvw so that the specified texture coordinate is tiled.
|
static |
|
static |
|
overridevirtual |
Low level archive writing tool used by ON_BinaryArchive::WriteObject().
binary_archive | archive to write to |
Use ON_BinaryArchive::WriteObject() to write objects. This Write() function should just write the specific definition of this object. It should not write and any chunk typecode or length information.
The default implementation of this virtual function returns false and does nothing.
Reimplemented from ON_Object.
bool ON_TextureMapping::m_bCapped = false |
ON_Xform ON_TextureMapping::m_Nxyz = ON_Xform::IdentityTransformation |
ON_TextureMapping::PROJECTION ON_TextureMapping::m_projection = ON_TextureMapping::PROJECTION::no_projection |
ON_Xform ON_TextureMapping::m_Pxyz = ON_Xform::IdentityTransformation |
ON_TextureMapping::TEXTURE_SPACE ON_TextureMapping::m_texture_space = ON_TextureMapping::TEXTURE_SPACE::single |
ON_TextureMapping::TYPE ON_TextureMapping::m_type = ON_TextureMapping::TYPE::no_mapping |
ON_Xform ON_TextureMapping::m_uvw = ON_Xform::IdentityTransformation |
|
static |
|
static |